this is for holding javascript data
Camil Demetrescu edited intro.tex
over 8 years ago
Commit id: 8e7cc76d3f645afb90f8189e655f55a21dc03be0
deletions | additions
diff --git a/intro.tex b/intro.tex
index 65a756d..b2dfd03 100644
--- a/intro.tex
+++ b/intro.tex
...
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}
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.
...
The remainder of this paper is organized as follows. In Section~\ref{se:approach}, we present our OSR technique and outline its implementation and Application Program Interface (API) for VM builders. Section~\ref{case-study} illustrates a case study in McVM. In Section~\ref{se:experiments}, we present the experimental study in TinyVM and discuss implications of inserting OSR points in a LLVM function, while in In Section~\ref{se:related} we discuss the state of the art of OSR in the literature and discuss related work. Section~\ref{se:conclusions} concludes the paper and presents some ideas for future research directions.