I objektorienterade programmeringsspråk sägs ett objekt fly från metoden eller tråden där det skapades om det också kan nås med andra metoder eller trådar. Att veta vilka objekt som inte undgår tillåter en kompilator att utföra aggressiva optimeringar. Detta dokument presenterar en ny intraprocedural och interprocedural algoritm för flyktanalys i samband med dynamisk sammanställning där kompilatorn måste hantera dynamisk klass lastning och deoptimering. Det genomfördes för Sun Microsystems Java HotSpot TM klient kompilator och fungerar på en mellanliggande representation i SSA form. Vi inför equi-escape uppsättningar för effektiv spridning av utrymningsinformation mellan relaterade objekt. Analysen används för skalära utbyte av fält och synkronisering borttagning, samt för stack allokering av objekt och fasta matriser. Resultaten av den interprocedurala analysen stöder kompilatorn i inlineing beslut och gör det möjligt att fördela faktiska parametrar på anropsstacken. Under vissa omständigheter tvingas Java HotSpot TM VM att sluta köra en metods maskinkod och överföra kontrollen till tolken. Detta kallas deoptimering. Eftersom tolken inte känner till den skalära ersättning och synkronisering borttagning som utförs av kompilatorn, deoptimering ramverket utökades till att omfördela och återlåsa objekt på begäran.
Kotzmann implementerade en ny flyktanalysalgoritm för Java HotSpot TM VM REF.
Escape analysis in the context of dynamic compilation and deoptimization
{'venue': "VEE '05", 'journal': None, 'mag_field_of_study': ['Computer Science']}