Camil Demetrescu  over 8 years ago

Commit id: 687cb3125106299368428b4bcbc4a21a2f145395

deletions | additions      

       

%\item Guard computation in $f'$ can be rather expensive, as it may require checking many parameters.  %\end{enumerate}  Our approach combines the flexibility of OSR-based specialization with the efficiency of the  JIT-based specialization, method,  answering an open question raised by Lameed and Hendren~\cite{lameed2013feval}. Similarly to OSR-based specialization, it does not place restrictions on the functions that can be optimized. On the other hand, it works at IIR (rather than IR) level as in JIT-based specialization, which makes it possible to perform type inference on the specialized code. Working at IIR level eliminates the two main sources of inefficiency of OSR-based specialization: 1) we can replace generic istructions with specialized instructions, and 2) the types of $g$'s arguments do not need to be cached or guarded as they are statically inferred. %Furthermore, since the dynamic code optimization works at IIR (rather than IR) level, type inference can replace generic istructions with specialized instructions. %, removing the main source of inefficiency of OSR-based specialization.