A New Method for Program Inversion

被引:0
|
作者
Hou, Cong [1 ]
Vulov, George [1 ]
Quinlan, Daniel [2 ]
Jefferson, David [2 ]
Fujimoto, Richard [1 ]
Vuduc, Richard [1 ]
机构
[1] Georgia Inst Technol, Atlanta, GA 30332 USA
[2] Lawrence Livermore Natl Lab, Livermore, CA 94551 USA
来源
关键词
Program inversion; SSA; SSA graph; reverse computation; state saving; ROSE; REVERSE EXECUTION; DEPENDENCE GRAPH; INVERTER;
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页码:81 / 100
页数:20
相关论文
共 50 条