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 ...
Lachaıˆnedecompilationducourss’arreˆ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.Unminimumd’interactionentreungestionnaire m´emoireetlecompilateurestne´cessaire,neserait-cequela repr´esentationdesdonne´esalloue´es.
la
Slide 2
Slide 3
Assemblage
Avantd’ˆetreexe´cute´,lecodeassembleur(fichierASCII)doiteˆtre traduitencodemachine(fichierbinaire):ilrestea`e´liminerles pseudo-instructions,a`r´esoudreles´etiquettes,g´ene´rerlecode pourlechargementdesd´eclarationsdeconstantes,etc. (Danscertainscas,l’assemblagepeute´galementcomporterune partie d’ordonnancement des instructions.) Eng´ene´ral,l’assemblageestunprogrammes´epare´dela compilation,parcequ’ilnede´pendquedelamachinecibleet peuteˆtrepartage´entreplusieurscompilateurspourdeslangages sourcesdiff´erents. Leprogrammed’assemblageestaussi,enge´ne´ral,fourniparle constructeur.
´ Edition de liens
Un programme peut se composer de plusieurs morceaux, parce quelesourceestcompose´deplusieursfichiersouutilisedes librairiescompil´ess´epar´ement.
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). Lorsqu’unedesunit´esdecalculestoccup´eeellevaaumieux bloquerled´eroulementdescalculsenparall`ele,aupire interfe´reraveclecalculenparalle`leetfournirunr´esultat errone´. – Pipelining Pourprofiteraumieuxdelapossibilit´ed’effectuerdescalculs enparalle`le,lesprocesseursmodernesutilisentlepipeliningdes instructions.Leprocesseurcommencel’ex´ecutiond’une
instructionsi1au cyclekqui se poursuit sur plusieurs cycles, mais il entame l’instruction suivantei2dleycecsd`ek+ 1alors quelapremie`reinstructionn’apasforc´ementfinilecalcul. 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´eduirelestempsd’attentent,enlan¸cantcertainscalculs plustoˆt. –e´viterdesincoh´erenceslie´saupipelining. (Parfois,ilestn´ecessairedesinstructionded´elai(quine calculent pas). Leschedulingpeutˆetreprisencompteparl’assembleur (ordonnancement statique) ou directement par le processeurs (ordonnancement dynamique).
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`apartird’unensembledepointsd’entre´eappele´sles racines : ceux-ci incluent les registres du processeur, la pile d’e´x´ecution,etlesvariablesglobales.(Onneconnaitpastoujours l’ensemble exact des racines, mais mais un sur-emsemble qui contientaumoinstouslespointsd’entr´eepossibles).