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

Kategori:Kompilatorer