Camil Demetrescu edited intro.tex  over 8 years ago

Commit id: c3bfd7017dc7ac4dad7ecc574bc391c0f41f12c0

deletions | additions      

       

  In a 2013 paper Lameed and Hendren propose McOSR~\cite{lameed2013modular}, a technique for OSR that essentially stores the live values in a global buffer, recompiles the current function and then loads in it the saved state when the execution is resumed. Their approach shows a few limitations that we discuss later in this paper, and because of some relevant design choices it can work only with the legacy JIT which has been dropped from recent LLVM releases.  \paragraph{Contributions of this Paper.} \paragraph{Contributions.}  In this paper we present our novel, platform-independent framework for LLVM to enable switching between different versions of a function at run-time. Specific goals include:  \begin{itemize}  \item The ability for a function reached via OSR to fire an OSR itself: this would allow switching from a base function $f_0$ to an optimized function $f_1$, and later on to a further optimized version $f_2$, etc.