Deoptless: Speculation with Dispatched On-Stack Replacement and Specialized Continuations
Abstract
Just-in-time compilation provides significant performance improvements for programs written in dynamic languages. These benefits come from the ability of the compiler to speculate about likely cases and generate optimized code for these. Unavoidably, speculations sometimes fail and the optimizations must be reverted. In some pathological cases, this can leave the program stuck with suboptimal code. In this paper we propose deoptless, a technique that replaces deoptimization points with dispatched specialized continuations. The goal of deoptless is to take a step towards providing users with a more transparent performance model in which mysterious slowdowns are less frequent and grave.
- Publication:
-
arXiv e-prints
- Pub Date:
- March 2022
- DOI:
- 10.48550/arXiv.2203.02340
- arXiv:
- arXiv:2203.02340
- Bibcode:
- 2022arXiv220302340F
- Keywords:
-
- Computer Science - Programming Languages
- E-Print:
- 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI 2022)