Conclusions

\label{se:conclusions}

In this paper, we have presented an OSR framework that introduces novel ideas and combines features of extant techniques that no previous solution provided simultaneously. Relevant aspects include platform independence \cite{lameed2013modular}, generation of highly optimized continuation functions \cite{fink2003design}, and performing deoptimization without the need for an interpreter \cite{bebenita2010spur}. Two novel features we propose are OSR with compensation code, which allows extending the range of points where OSR transitions can be fired, and the ability to inject OSR points at arbitrary locations. Using these features, we have shown how to improve the state of the art of feval optimization in MATLAB virtual machines. We have also investigated the feasibility of our approach in LLVM, showing that it is efficient in practice.

Acknowledgements.

We wish to thank Jan Vitek, Petr Maj, Karl Millar, and Olivier Flückiger for many enlightening discussions. We are especially grateful to Jan for sparking our interest in this exciting line of research.

Live Version of this Paper.

We complement the traditional scholarly article publication model by maintaining a live version of this paper at https://www.authorea.com/users/55853/articles/66046 and https://github.com/camild/article-llvm-osr. The live version incorporates continuous feedback by the community, providing post-publication fixes, improvements, and extensions.