Daniele Cono D'Elia edited case-study.tex  over 8 years ago

Commit id: b560e699eecae9f7adb326fd1d123fdbb13a1240

deletions | additions      

       

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 andLLVM  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-drivengenerator for  IIR code (to generator to  replace {\tt feval} calls with direct calls) calls  \item A callback helper  componentinvoked 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}