Abstrakt. Eftersom det mesta av körningstiden för ett program vanligtvis spenderas i slingor, är slingoptimering det huvudsakliga målet att optimera och omstrukturering kompilatorer. En exakt bestämning av induktionsvariabler och beroenden i loopar är av yttersta vikt för många loopopoptimering och parallellisering tekniker, såsom generaliserad loop styrka minskning, loop parallellisering genom induktion variabel substitution, och loop-invariant uttryck eliminering. I detta dokument presenterar vi en ny metod för induktionsvariabel igenkänning. Befintliga metoder är antingen ad-hoc och inte tillräckligt kraftfulla för att känna igen vissa typer av induktionsvariabler, eller befintliga metoder är kraftfulla men inte säkra. Den mest kraftfulla metoden känd är den symboliska skiljaktiga metoden som visas av Parafrase-2 kompilatorn på parallellisering Perfect Benchmarks (R). Men symbolisk skillnad är till sin natur osäker och en kompilator som använder denna metod kan producera felaktigt omvandlade program utan att utfärda en varning. Däremot är vår metod säker, enklare att implementera i en kompilator, bättre anpassningsbar för att styra loop transformationer, och känner igen en större klass av induktionsvariabler.
I REF introducerade vi en ny metod för induktionsvariabel igenkänning som en del av en algoritm för induktionsvariabel substitution.
Efficient symbolic analysis for optimizing compilers
{'venue': 'In Proceedings of the 10th International Conference on Compiler Construction', 'journal': None, 'mag_field_of_study': ['Computer Science']}