this is for holding javascript data
Daniele Cono D'Elia edited case-study.tex
over 8 years ago
Commit id: b560e699eecae9f7adb326fd1d123fdbb13a1240
deletions | additions
diff --git a/case-study.tex b/case-study.tex
index dd82a37..8f1633e 100644
--- a/case-study.tex
+++ b/case-study.tex
...
The source code of McVM is publicly available~\cite{mcvm}, and after porting it from the legacy LLVM JIT to MCJIT, we have extended it with the following components to enable the optimization of {\tt feval} instructions:
\begin{enumerate}
\item An analysis pass for {\tt feval} instructions in the IIR representation of a function
\item An extension for the IIR compiler to track the correspondence between IIR and
LLVM IR objects at {\tt feval} calls
\item A helper component to insert OSR points
in the IR at
IIR locations identified during the analysis pass
\item A
callback component invoked at OSR points, which in turns is made of:
\begin{enumerate}
\item A profile-driven
generator for IIR
code (to generator to replace {\tt feval} calls with direct
calls) calls
\item A
callback helper component
invoked at OSR points to
generate (or retrieve a cached version of) an lower the optimized
version IIR function to IR and construct a state mapping
\item A code caching mechanism to handle the compilation of the
\item continuation functions
\end{enumerate}
\end{enumerate}
...