Title:
Source-code Transformations for Efficient Reversibility

Thumbnail Image
Author(s)
Perumalla, Kalyan S.
Fujimoto, Richard M.
Authors
Advisor(s)
Advisor(s)
Editor(s)
Associated Organization(s)
Organizational Unit
Supplementary to
Abstract
An approach based on source-to-source compilation is presented for efficiently realizing reversibility of programs, in the context of the C language. The implementation of this approach in a portable "reverse C compiler" called rcc is described. The compiler takes arbitrary C functions as input, and renders them reversible, and, in addition, automatically generates their reverse functions. The system is sufficiently general to correctly handle complex data types and to handle complex control flow such as recursion and inter-mixing jump instructions. The compiler is designed to be general-purpose, to be used in any application requiring efficient reverse execution capability. A simple macro interface is used to help retarget the compiler to different application domains. As a case study, the application of rcc to optimistic parallel simulation is presented. Optimizations, such as "message-send slicing", are presented that help in reducing the overheads that may be added for achieving reversibility.
Sponsor
Date Issued
1999
Extent
272858 bytes
Resource Type
Text
Resource Subtype
Technical Report
Rights Statement
Rights URI