Cours sur la chaine de compilation

icon

8

pages

icon

Français

icon

Documents

Le téléchargement nécessite un accès à la bibliothèque YouScribe Tout savoir sur nos offres

icon

8

pages

icon

Français

icon

Documents

Le téléchargement nécessite un accès à la bibliothèque YouScribe Tout savoir sur nos offres

Regards en aval et en amont de lacha^ ne de compilation.Didier Remy2000 - 2001http://cristal.inria.fr/~remy/poly/compil/9/http://w3.edu.polytechnique.fr/profs/informatique/Didier.Remy/compil/9/En avalLa cha^ ne de compilation du cours s’arr^ete a la production decode assembleur pour le MIPS.En aval de la cha^ ne de compilationOn pourrait considerer encore quelques etapes :{ L’assemblage.Slide 1{ L’edition de liens.{ L’ordonnancement des instructionsLa gestion memoireLes langages moderne o rent une gestion automatique de lamemoire. Un minimum d’interaction entre un gestionnairememoire et le compilateur est necessaire, ne serait-ce que larepresentation des donnees allouees.AssemblageAvant d’^etre execute, le code assembleur ( chier ASCII) doit ^etretraduit en code machine ( chier binaire) : il reste a eliminer lespseudo-instructions, a resoudre les etiquettes, generer le codepour le chargement des declarations de constantes, etc.(Dans certains cas, l’assemblage peut egalement comporter unepartie d’ordonnancement des instructions.)Slide 2En general, l’assemblage est un programme separe de lacompilation, parce qu’il ne depend que de la machine cible etpeut ^etre partage entre plusieurs compilateurs pour des langagessources di erents.Le programme d’assemblage est aussi, en general, fourni par leconstructeur.Edition de liensUn programme peut se composer de plusieurs morceaux, parceque le source est compose ...
Voir icon arrow

Publié par

Nombre de lectures

43

Langue

Français

Slide 1
Regards en aval chaıˆnede
etenamont compilation.
DidierR´emy 2000 - 2001
de
http://cristal.inria.fr/˜remy/poly/compil/9/ http://w3.edu.polytechnique.fr/profs/informatique/Didier.Remy/compil/9/
En aval
Lachaıˆnedecompilationducourssarreˆtea`laproductionde code assembleur pour le MIPS.
En aval de la chaˆıne de compilation Onpourraitconsid´ererencorequelquese´tapes: – L’assemblage. L´editiondeliens. – L’ordonnancement des instructions
Lagestionme´moire Les langages moderne offrent une gestion automatique de la m´emoire.Unminimumdinteractionentreungestionnaire m´emoireetlecompilateurestne´cessaire,neserait-cequela repr´esentationdesdonne´esalloue´es.
la
Slide 2
Slide 3
Assemblage
Avantdˆetreexe´cute´,lecodeassembleur(chierASCII)doiteˆtre traduitencodemachine(chierbinaire):ilrestea`e´liminerles pseudo-instructions,a`r´esoudreles´etiquettes,g´ene´rerlecode pourlechargementdesd´eclarationsdeconstantes,etc. (Danscertainscas,lassemblagepeute´galementcomporterune partie d’ordonnancement des instructions.) Eng´ene´ral,lassemblageestunprogrammes´epare´dela compilation,parcequilnede´pendquedelamachinecibleet peuteˆtrepartage´entreplusieurscompilateurspourdeslangages sourcesdi´erents. Leprogrammedassemblageestaussi,enge´ne´ral,fourniparle constructeur.
´ Edition de liens
Un programme peut se composer de plusieurs morceaux, parce quelesourceestcompose´deplusieurschiersouutilisedes librairiescompil´ess´epar´ement.
(Ilfautpourcelaavoirrespecterlesmeˆmeconventionsdappels, depr´ef´erencelesconventionsstandards,dansleslibrairies partag´ees.) L´editiondelienspeutrassemblerplusieurschierenunseul. Lesidenticateursd´eclar´esglobauxsontpartag´es.Les´etiquettes localesdoiventeˆtrerenomme´es.Lecodedoitaussieˆtrerelog´e (translat´e).Pourleslibrairiespartage´esentreplusieurs programme,chaqueprogrammeprocessusa`satabledindirection parrapportauxadressesdesfonctionsdelalibairiespartage´e.
2
Slide 4
Slide 5
Ordonnancement des instructions
Lesinstructionsmachinessede´composentendesop´erations encoreplus´ele´mentaires(micro-instructions)ex´ecut´eespardes unite´sdecalculduprocesseur. Parall`elisme Lesprocesseurspeuventexe´cuterplusieursmicro-instructions enparall`elesmaisaveccertainescontraintesderesource(par exemple un multiplicateur a aussi besoin de l’additionneur). Lorsquunedesunit´esdecalculestoccup´eeellevaaumieux bloquerled´eroulementdescalculsenparall`ele,aupire interfe´reraveclecalculenparalle`leetfournirunr´esultat errone´. – Pipelining Pourproteraumieuxdelapossibilit´edeectuerdescalculs enparalle`le,lesprocesseursmodernesutilisentlepipeliningdes instructions.Leprocesseurcommencelex´ecutiondune
instructionsi1au cyclekqui se poursuit sur plusieurs cycles, mais il entame l’instruction suivantei2dleycecsd`ek+ 1alors quelapremie`reinstructionnapasforc´ementnilecalcul. Par exemple, parce que l’instructionmul $t1,$t1,$t3est plus lente que l’addition, suivi de l’instructionadd $t1,$t1,$t4. La valeur de$t1prise par l’addition sera alors sa valeur avant sa multiplication par$t3. – Scheduling Lesinstructionssontr´eordonne´espour r´eduirelestempsdattentent,enlan¸cantcertainscalculs plustoˆt. e´viterdesincoh´erenceslie´saupipelining. (Parfois,ilestn´ecessairedesinstructionded´elai(quine calculent pas). Leschedulingpeutˆetreprisencompteparlassembleur (ordonnancement statique) ou directement par le processeurs (ordonnancement dynamique).
3
Slide 6
Slide 7
Eneet,lemeilleurordonnancementpeutde´pendrede parame`tresdynamiquestelsquelalocalisationducodedansle cache,cequunordonancementdynamiquenepeutpaspre´voir
Gestionm´emoire
Glanage des Cellulues (GC)messtteie´leamarorncppeaes.e Lam´emoiresepr´esentecommeungrapheoriente´doncles nœudssontdesblocsm´emoiredelongeurvariableetlesarcs sont des pointeurs d’un bloc vers un autre. ` Auninstantparticulierducalcul,lam´emoireestaccessibleparle processeur`apartirdunensembledepointsdentre´eappele´sles racines : ceux-ci incluent les registres du processeur, la pile de´x´ecution,etlesvariablesglobales.(Onneconnaitpastoujours l’ensemble exact des racines, mais mais un sur-emsemble qui contientaumoinstouslespointsdentr´eepossibles).
Lam´emoirevivante`auninstantdonne´estlapartiedela me´moireatteignable`apartirdesracinesensuivanttouslesarcs possibles.Lapartiequinapuˆetreatteinteestde´nitivement d´econnecte´edesracinesetpeutˆetrerecycl´ee.
4
Voir icon more
Alternate Text