Title:
Source-code Transformations for Efficient Reversibility
Source-code Transformations for Efficient Reversibility
Author(s)
Perumalla, Kalyan S.
Fujimoto, Richard M.
Fujimoto, Richard M.
Advisor(s)
Editor(s)
Collections
Supplementary to
Permanent Link
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