Proceedings of the 2016 International Symposium on Code Generation and Optimization 2016
DOI: 10.1145/2854038.2854061
|View full text |Cite
|
Sign up to set email alerts
|

Flexible on-stack replacement in LLVM

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
15
0

Year Published

2017
2017
2021
2021

Publication Types

Select...
3
2
2

Relationship

0
7

Authors

Journals

citations
Cited by 16 publications
(15 citation statements)
references
References 13 publications
0
15
0
Order By: Relevance
“…To support compilers in applying OSR for unstructured languages we proposed reconstructing and extracting loops. D'Elia and Demetrescu [3] conducted a case study on how to implement function-level on-stack replacement for LLVM at arbitrary points, by using glue code to facilitate a smooth transition between the two versions of a function. In their recent work they focused on a more abstract view on OSR in the context of code transformation [4].…”
Section: Related Workmentioning
confidence: 99%
“…To support compilers in applying OSR for unstructured languages we proposed reconstructing and extracting loops. D'Elia and Demetrescu [3] conducted a case study on how to implement function-level on-stack replacement for LLVM at arbitrary points, by using glue code to facilitate a smooth transition between the two versions of a function. In their recent work they focused on a more abstract view on OSR in the context of code transformation [4].…”
Section: Related Workmentioning
confidence: 99%
“…Another usage of OSR is for obfuscation [13]. Some work are made to introduce frameworks with well defined APIs for OSR [7,2].…”
Section: Related Workmentioning
confidence: 99%
“…Consider V8. During de-optimization, V8 first generates the contents of new stack frames in temporary buffers in the 4 Following the convention of Dolan et al [5], we use Swapstack (Small Caps) to denote the abstract operation, and use SWAPSTACK (ALL CAPS) for the concrete instruction in the Mu instruction set. 5 Therefore, in our terminology, the Boost.Context library [14], the (deprecated) swapcontext POSIX function, as well as the LLVM primitive created by Dolan et al [5], are all implementations of Swapstack, although the work of Dolan et al [5] usually out-performs others because it only saves as many registers as necessary.…”
Section: Osr Without Swapstackmentioning
confidence: 99%
“…However, in the typical runtime re-compilation scenario, the new frame must resume at the program counter equivalent to where the old frame stopped. Fink and Qian [7] solved this problem by inserting assignments and a jump instruction at the beginning of the new function, as follows: [4] call these instructions 'compensation code'. The assignments set local variables of the new frame to their values in the old frame, and the jump instruction jumps to the equivalent PC.…”
Section: Creating New Frames Using Return-orientedmentioning
confidence: 99%
See 1 more Smart Citation