Dagens kompilatorer har en uppsjö av optimeringar att välja mellan, och rätt val av optimeringar kan ha en betydande inverkan på prestandan hos den kod som optimeras. Dessutom har valet av rätt ordning för att tillämpa dessa optimeringar varit ett långvarigt problem i sammanställningsforskningen. Var och en av dessa optimeringar samverkar med koden och i sin tur med alla andra optimeringar på komplicerade sätt. Traditionella kompilatorer tillämpar vanligtvis samma uppsättning av optimering i en fast ordning på alla funktioner i ett program, utan hänsyn till att koden är optimerad. Att förstå samverkan mellan optimeringar är mycket viktigt för att bestämma en bra lösning på fasordningsproblemet. Detta dokument utvecklar ett nytt tillvägagångssätt som automatiskt väljer bra optimeringsbeställningar per metod inom en dynamisk kompilator. Vår strategi formulerar fas-ordering problem som en Markov process och använder en karakterisering av nuvarande tillstånd av koden som optimeras för att skapa en bättre lösning på fas beställning problem. Vår teknik använder neuro-evolution för att konstruera ett artificiellt neuralt nätverk som kan förutsäga fördelaktig optimering beställning för en kod som optimeras. Vi implementerade vår teknik i Jikes RVM och uppnådde betydande förbättringar på en uppsättning standard Java-riktmärken över en välkonstruerad fast order.
Kulkarni och Cavazos REF använder ett artificiellt neuralt nätverk för att förutsäga den bästa omvandlingen (från en given uppsättning) som bör tillämpas baserat på egenskaperna hos koden.
Mitigating the compiler optimization phase-ordering problem using machine learning
{'venue': "OOPSLA '12", 'journal': None, 'mag_field_of_study': ['Computer Science']}