Camil Demetrescu edited abstract.tex  over 8 years ago

Commit id: f3eb5e8941862266e2725fb643ce30af18115c88

deletions | additions      

       

On-Stack Replacement (OSR) is a technique that allows makes it possible  to suspend the execution of a function and continue from the same program state with a different version of the function. OSR is often used in virtual machines to interrupt a long-running function and recompile it at a higher optimization level, or to replace it with a different one when a speculative assumption made during its compilation no longer holds. In this paper we present a novel framework to perform OSR transitions. Compared to extant OSR techniques, our approach is platform-independent as transitions are encoded entirely at the Intermediate Representation (IR) level; it supports OSR-point insertion at arbitrary locations in a function, and it allows a function version reached via OSR to fire an OSR itself, either to a more optimized version or to a less optimized one from which it was derived.