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

Commit id: f96bfe4405337b989338e3a126730c1875b3b196

deletions | additions      

       

McVM implements a function versioning mechanism based on type specialization: for each IIR representation of a function, different IR versions are generated according to the types of the arguments at each call site. The number of generated versions per function is on average small (i.e., less than two), as in most cases functions are always called with the same argument types. Type specialization is the main driver for generating efficient code in McVM~\cite{chevalier2010mcvm}.  The source code of McVM is publicly available~\cite{mcvm}; after porting it from thelegacy  LLVM legacy  JIT to MCJIT, we have extended it with the following components to enable the optimization of \feval\ instructions: \begin{enumerate}  \item An analysis pass for \feval\ instructions in the IIR representation of a function  \item An extension for the IIR compiler to track the correspondence between IIR and IR objects at \feval\ calls