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 rediger
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 rediger
- Aho, Alfred Vaino; Ullman, Jeffrey David (1977). Principles of Compiler Design. Addison-Wesley, august 1977. ISBN 0-201-00022-9.
- 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.