Daniele Cono D'Elia edited intro.tex  over 8 years ago

Commit id: 461b9c8f4b6582600e1e6367fc2ca4b8898f6c1e

deletions | additions      

       

%\item Providing support for the redirection of future invocations of a function to the latest compiled version without recompiling the callers or performing linking again.  \end{itemize}  \noindent Our implementation ships as a library for IR manipulation, and we present a preliminary experimental study of our technique in \tinyvm\, a proof-of-concept virtual machine for run-time IR manipulation and compilation based on MCJIT. We also present a case study on the integration of our technique in McVM~\cite{chevalier2010mcvm}: we show the potential of our approach by enabling an aggressive specialization mechanism for the {\tt feval} construct\ - a source of bottlenecks in many MATLAB programs~\cite{radpour2013refactoring, lameed2013feval} programs~\cite{lameed2013feval, radpour2013refactoring}  - that could not have been implemented using extant OSR techniques. \paragraph{Structure of the paper.}  The remainder of this paper is organized as follows. In \mysection\ref{se:overview} we present our OSR technique and in \mysection\ref{se:osr-llvm} we outline its implementation and Application Program Interface (API) in LLVM. \mysection\ref{case-study} illustrates a case study in McVM. In \mysection\ref{se:experiments}, we present our experimental study and discuss implications of inserting OSR points in a LLVM function, while \mysection\ref{se:related} addresses related work. \mysection\ref{se:conclusions} concludes the paper and presents some ideas for future research directions.