Camil Demetrescu edited abstract.tex  over 8 years ago

Commit id: 479f075f801175340348669f76d84419ed752d62

deletions | additions      

       

%suspending the execution of a function and continuing with a different version of the code.   OSR is typically 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 framework for OSR that introduces novel ideas and combines features of extant existing  techniques that no previous solution provided simultaneously. New features include OSR with compensation code to adjust the program state during a transition and the ability to fire an OSR from arbitrary locations in the code. Our approach is platform-independent as the OSR machinery is entirely encoded at a compiler's intermediate representation level. %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,