A new method for program inversion
Cong Hou,George Vulov,Daniel J. Quinlan,David Jefferson,Richard M. Fujimoto,Richard Vuduc +5 more
- 24 Mar 2012
- pp 81-100
TL;DR: A new program inversion algorithm for imperative languages, and focuses on handling arbitrary control flows and basic operations, by building a value search graph that represents recoverability relationships between variable values, which produces better performance than previously proposed methods.
read more
Abstract: Program inversion has been successfully applied to several areas such as optimistic parallel discrete event simulation (OPDES) and reverse debugging. This paper introduces a new program inversion algorithm for imperative languages, and focuses on handling arbitrary control flows and basic operations. By building a value search graph that represents recoverability relationships between variable values, we turn the problem of recovering previous values into a graph search one. Forward and reverse code is generated according to the search results. We have implemented our algorithm as part of a compiler framework named Backstroke, a C++ source-to-source translator based on ROSE compiler. Backstroke targets optimistic simulation codes and automatically generates a reverse function to recover values modified by a target function. Experimental results show that our method is effective and produces better performance than previously proposed methods.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
•Proceedings Article
Postmortem Program Analysis with Hardware-Enhanced Post-Crash Artifacts.
Jun Xu,Dongliang Mu,Xinyu Xing,Peng Liu,Ping Chen,Bing Mao +5 more
- 01 Jan 2017
TL;DR: It is shown that, POMP can accurately and efficiently pinpoint program statements that truly pertain to the crashes, making failure diagnosis significantly convenient.
Transparently Mixing Undo Logs and Software Reversibility for State Recovery in Optimistic PDES
TL;DR: The practical design and implementation of a fully new approach based on the runtime generation of so-called undo code blocks, which are blocks of instructions implementing the reverse memory side effects generated by the forward execution of the events, which can be combined with classical checkpointing to further improve the runtime behavior of the state recoverability support as a function of the workload.
LORAIN: a step closer to the PDES 'holy grail'
Justin M. LaPre,Elsa Gonsiorowski,Christopher D. Carothers +2 more
- 18 May 2014
TL;DR: The results demonstrate that LORAIN-generated models are able to execute at a rate that is over 97% of hand-written, parallel model code performance.
POMP++: Facilitating Postmortem Program Diagnosis with Value-Set Analysis
TL;DR: POMP++ can accurately and efficiently pinpoint program statements that truly contribute to the crashes, making failure diagnosis significantly convenient and reducing the execution time by 60% compared with existing reverse execution.
•Journal Article
Towards Inverse Execution of Constraint Handling Rules.
TL;DR: This paper deals with the inverse execution of Constraint Handling Rules (CHR), and a simple inversion technique is proposed, which produces a reverse program consisting of rules with exchanged left and right hand sides.
References
The program dependence graph and its use in optimization
TL;DR: An intermediate program representation, called the program dependence graph (PDG), that makes explicit both the data and control dependences for each operation in a program, allowing transformations to be triggered by one another and applied only to affected dependences.
•Book
Advanced Compiler Design and Implementation
Steven S. Muchnick
- 01 Jan 1997
TL;DR: Advanced Compiler Design and Implementation by Steven Muchnick Preface to Advanced Topics
2.6K
Efficiently computing static single assignment form and the control dependence graph
TL;DR: In this article, the authors present new algorithms that efficiently compute static single assignment forms and control dependence graphs for arbitrary control flow graphs using the concept of {\em dominance frontiers} and give analytical and experimental evidence that these data structures are usually linear in the size of the original program.
Virtual time
TL;DR: Virtual time is a new paradigm for organizing and synchronizing distributed systems which can be applied to such problems as distributed discrete event simulation and distributed database concurrency control.
2.3K
The program Dependence Graph and its Use in Optimization
Jeanne Ferrante,Karl J. Ottenstein,Joe D. Warren +2 more
- 17 Apr 1984
TL;DR: An intermediate program representation, called a program dependence graph or PDG, which summarizes not only the data dependences of each operation but also summarizes the control dependence of the operations, which allows transformations such as vectorization to be performed in a manner which is uniform for both data and control dependence.