Proceedings of the 9th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments 2013
DOI: 10.1145/2451512.2451541
|View full text |Cite
|
Sign up to set email alerts
|

A modular approach to on-stack replacement in LLVM

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
6
0

Year Published

2013
2013
2019
2019

Publication Types

Select...
4
3

Relationship

1
6

Authors

Journals

citations
Cited by 14 publications
(6 citation statements)
references
References 16 publications
0
6
0
Order By: Relevance
“…D'Elia and Demetrescu [4] developed OSRKit, a library built on LLVM for 'dynamically transferring execution between different versions of a function at run time', which they define as 'OSR'. It is an improvement over its predecessor in McJIT by Lameed and Hendren [15]. In OSRKit, the old version of a function tail-calls a stub which recompiles the function and then tail-calls the new version.…”
Section: Related Workmentioning
confidence: 99%
“…D'Elia and Demetrescu [4] developed OSRKit, a library built on LLVM for 'dynamically transferring execution between different versions of a function at run time', which they define as 'OSR'. It is an improvement over its predecessor in McJIT by Lameed and Hendren [15]. In OSRKit, the old version of a function tail-calls a stub which recompiles the function and then tail-calls the new version.…”
Section: Related Workmentioning
confidence: 99%
“…We have discussed OSR in LLVM in Section 5.4. Also, an earlier work [29] provides support in the legacy JIT for transitions at loop headers when no state adjustment is required.…”
Section: Related Workmentioning
confidence: 99%
“…As speculative optimizations are essential for high performance, deoptimization may become necessary: it can be supported either by reconstructing a frame for the interpreter or the baseline compiled code, which both have a fixed stack layout, or by performing OSR into dynamically generated code as in Jikes RVM [15]. Following the classification proposed in [29], we use OSR to refer to both optimizing and deoptimizing transitions.…”
Section: Introductionmentioning
confidence: 99%
“…Reference [14] proposes a modular approach to LLVM developers to facilitate the use of OSR by others through a well defined API. OSR points are restricted to beginning of loop bodies.…”
Section: A On-stack Replacementmentioning
confidence: 99%
“…On-stack replacement technology depends on extracting context from a suspended program, changing stack and code as needed, and then switching [5]. However, current dynamic on stack replacement depends on previously known, inserted in code, safe points [2] [14]. While safe points make the task easier, it limits the possible frequency of recompilations, as well as randomness, which hurts required security.…”
Section: Introductionmentioning
confidence: 99%