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

Commit id: 5630944bfd805440bd2661dc297967bc58693d36

deletions | additions      

       

\newcommand{\feval}[1]{{\mbox{{\tt feval}}}}  \section{Introduction}  \label{se:intro} 

%\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}  Our implementation is shipped 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 then 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 \feval\ {\tt feval}  construct - a source of bottlenecks in many MATLAB programs - 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 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.