Kikkehulloptimalisering
Kikkehulloptimalisering (engelsk: Peephole optimization) er innenfor kompilatorteori en form for kodeoptimalisering som utføres på et lite sett med instruksjoner i et segment med generert kode. Dette settet blir i metaforisk forstand kalt et «kikkehull» eller et «vindu» inn i koden. Optimaliseringen består i å gjenkjenne mønstre av instruksjoner som kan erstattes av kortere eller raskere mønstre av instruksjoner.
Fjerning av redundant kode
Her er et eksempel på eliminering av redundante lagringer av verdier.
a = b + c; d = a + e;
kan implementeres som;
d = b + c + e;
eller overført til assemblerspråk:
MOV b, R0 # Kopier b til registeret ADD c, R0 # Tiføy c til registeret, som nå er b+c MOV R0, a # Kopier registeret til a MOV a, R0 # Kopier a til regsteret ADD e, R0 # tilføy e til registeret, som nå er a+e [(b+c)+e] MOV R0, d # Kopier registeret til d
blir erstattet av og optimalisert til
MOV b, R0 # Kopier b til registeret ADD c, R0 # Tilføy c to til registeret, som nå er b+c (a) MOV R0, a # Kopier registeret til a ADD e, R0 # Tilføy e til registeret, som nå er b+c+e [(a)+e] MOV R0, d # Kopier registeret til d
Litteratur
- Aho, Alfred Vaino; Ullman, Jeffrey David (1977). Principles of Compiler Design. Addison-Wesley, august 1977. ISBN 0-201-00022-9. CS1-vedlikehold: Flere navn: forfatterliste (link)
- McKeeman, W. M. (1965). Peephole optimization. Stanford University, California, Communications of the ACM, Volume 8, Issue 7, juli 1965. s. 443-444.
Denne artikkelen er en spire. Du kan hjelpe Wikipedia ved å utvide den.
Autoritetsdata