Zur Hauptnavigation wechseln Zur Suche wechseln Zum Hauptinhalt wechseln

Escape Analysis in the Context of Dynamic Compilation and Deoptimization

Publikation: Beitrag in Buch/Bericht/KonferenzbandKonferenzbeitragBegutachtung

Abstract

In object-oriented programming languages, an object is said to escape the method or thread in which it was created if it can also be accessed by other methods or threads. Knowing which objects do not escape allows a compiler to perform aggressive optimizations. This paper presents a new intraprocedural and interprocedural algorithm for escape analysis in the context of dynamic compilation where the compiler has to cope with dynamic class loading and deoptimization. It was implemented for Sun Microsystems' Java HotSpot client compiler and operates on an intermediate representation in SSA form. We introduce equi-escape sets for the efficient propagation of escape information between related objects. The analysis is used for scalar replacement of fields and synchronization removal, as well as for stack allocation of objects and fixed-sized arrays. The results of the interprocedural analysis support the compiler in inlining decisions and allow actual parameters to be allocated on the caller stack. Under certain circumstances, the Java HotSpot VM is forced to stop executing a method's machine code and transfer control to the interpreter. This is called deoptimization. Since the interpreter does not know about the scalar replacement and synchronization removal performed by the compiler, the deoptimization framework was extended to reallocate and relock objects on demand.
OriginalspracheEnglisch
TitelProceedings of the First International Conference on Virtual Execution Environments VEE´05
Herausgeber*innen Assicioation for Computing Machinery
VerlagACM Press
Seiten111-120
Seitenumfang10
ISBN (Print)1595930477
DOIs
PublikationsstatusVeröffentlicht - Juni 2005

Publikationsreihe

NameProceedings of the First ACM/USENIX International Conference on Virual Execution Environments, VEE 05

Wissenschaftszweige

  • 102 Informatik
  • 102009 Computersimulation
  • 102011 Formale Sprachen
  • 102013 Human-Computer Interaction
  • 102029 Praktische Informatik
  • 102022 Softwareentwicklung
  • 102024 Usability Research

Dieses zitieren