Camil Demetrescu edited intro.tex  over 8 years ago

Commit id: 746262f987463fd962c3eb1f1e720489527a1f6c

deletions | additions      

       

%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.  \noindent To show the potential of our approach, we extend the MATLAB  McVM~\cite{chevalier2010mcvm} virtual machine runtime to enable aggressive specialization mechanisms  for MATLAB, the {\tt feval} construct\ - a source of bottlenecks in many MATLAB programs~\cite{lameed2013feval, radpour2013refactoring}, overcoming some of the limitations of extant techniques\cite{lameed2013feval}. We present an experimental evaluation of our technique, analyzing the performance implication of the OSR machinery injected with \osrkit\ and showing that it supports aggressive optimizations that yield significant speeedups in practical scenarios.  %we extended McVM~\cite{chevalier2010mcvm},  showing how to enable aggressive specialization mechanism for the {\tt feval} construct\ - a source of bottlenecks in many MATLAB programs~\cite{lameed2013feval, radpour2013refactoring} - that could not have been implemented using extant OSR techniques. %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{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{se:case-study} illustrates a case study in McVM. In \mysection\ref{se:experiments}, we present our experimental study and discuss implications of inserting injecting  OSR points ina  LLVM function, IR programs,  while \mysection\ref{se:related} addresses related work. \mysection\ref{se:conclusions} concludes the paper and presents some ideas for future research directions.