- " When -fgcse-lm is enabled, global common subexpression elimination
will attempt to move loads which are only killed by stores into themselves "
Quand \fB-fgcse-lm\fR est activé, l'élimination des sous-expressions communes globales essaiera de déplacer les load qui sont ONLY KILLED BY STORES INTO THEMSELVES. rem : apparemment, load et store sont des noms d'instruction.
Oui, enfin ce sont des insn, des pseudo-instructions utilisées dans le backend de gcc. Je propose : «...essaiera de déplacer les chargements (insn load) qui ne sont invalidés que part des affectations (insn store) dans eux-mêmes.»
- "After register allocation and post-register allocation instruction
splitting, <...> " Après l'allocation des registres et ???, <...>
Après l'allocation des registres et le découpage des instructions subséquent, ...
- As a special kludge, <...>
Différentes traductions possible selon ce qui suit. Par exemple, «À titre d'exception utile»
- Générer du code pour un système WITH SPLIT I&D.
Pour un système dont les caches d'instructions et de données sont distincts.
- " The assembler attempts to widen density instructions to align
branch targets and the instructions following call instructions. If there are not enough preceding safe density instructions to align a target, no widening will be performed. The default is \fB-mtarget-align\fR. These options do not affect the treatment of auto-aligned instructions like \f(CW*(C`LOOP*(C'\fR, which the assembler will always align, either by widening density instructions or by inserting no-op instructions."
Pff, pas une facile celle-là. «L'assembleur essaie d'étendre la taille des instructions «denses» afin d'aligner les cibles de branchements et les instructions subséquentes aux appels de sous-routines. S'il n'y a pas assez d'instructions «denses» sûres précédant une cible pour permettre de l'aligner, aucune extension n'aura lieu. La valeur par défaut est -mtarget-align. Ces options n'affectent pas le traitement des instructions auto-alignées comme «LOOP», qui seront toujours alignées par l'assembleur, soit en étendant des instructions «denses», soit en insérant des instructions no-op.»
Les instructions denses, ce sont celles dont différent encodages sont possible, de tailles différentes; plutôt que d'insérer des nop qui prennent un cycle ou plus, on gagne de la place sans (trop) perdre de temps d'exécution. Exemple simple : chargement d'une constante 32 bits dans un registre 64 bits. On peut soit demander le chargement des 32 bits dans la partie de poids faible du registre, ce qui occupe, disons, 6 à 8 octets selon les processeurs, ou un chargement des 64 bits, ce qui occupera 10 à 12 octets...
Je suppose que ce sera décrit en note où dans un glossaire du document que tu traduis...
- Texte de BACK-COVER : couverture arrière, dos de couverture ???
Quatrième de couverture.
EUR .02
Miod