Affiliation:
1. Sapienza University of Rome, Italy
Abstract
On-stack replacement (OSR) is essential technology for adaptive optimization, allowing changes to code actively executing in a managed runtime. The engineering aspects of OSR are well-known among VM architects, with several implementations available to date. However, OSR is yet to be explored as a general means to transfer execution between related program versions, which can pave the road to unprecedented applications that stretch beyond VMs. We aim at filling this gap with a constructive and provably correct OSR framework, allowing a class of general-purpose transformation functions to yield a special-purpose replacement. We describe and evaluate an implementation of our technique in LLVM. As a novel application of OSR, we present a feasibility study on debugging of optimized code, showing how our techniques can be used to fix variables holding incorrect values at breakpoints due to optimizations.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference51 articles.
1. Ali-Reza Adl-Tabatabai. 1996. Source-Level Debugging of Globally Optimized Code. Ph.D. Dissertation. Carnegie Mellon University Pittsburgh PA USA. Advisor(s) Gross Thomas. URL http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.73.5762. Accessed: 2016-06-18. Ali-Reza Adl-Tabatabai. 1996. Source-Level Debugging of Globally Optimized Code . Ph.D. Dissertation. Carnegie Mellon University Pittsburgh PA USA. Advisor(s) Gross Thomas. URL http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.73.5762. Accessed: 2016-06-18.
2. Source-level debugging of scalar optimized code
3. Dynamo
4. Roberto Baldoni Emilio Coppa Daniele Cono D'Elia Camil Demetrescu and Irene Finocchi. 2018. A Survey of Symbolic Execution Techniques. ACM Comput. Surv. 51 3 (2018). Roberto Baldoni Emilio Coppa Daniele Cono D'Elia Camil Demetrescu and Irene Finocchi. 2018. A Survey of Symbolic Execution Techniques. ACM Comput. Surv. 51 3 (2018).