Niklas Deworetzki Software, Science & More!

Optimization of Reversible Control Flow Graphs

Abstract

Growing interest in reversible computation has led to an accelerated development of reversible programming languages and software, which reinforces the need for optimizing compilers. In this paper, we report on our recent progress on optimizing reversible intraprocedural control flow. Like previous work on the optimization of reversible programs, the techniques in this paper are based on the reversible intermediate language RSSA. A formalization of RSSA’s control flow as an extended directed multigraph is introduced. This serves as a basis for three analysis and optimization techniques for reversible control flow, which enable the identification and removal of a) unreachable code, b) branches between strictly consecutive code sequences, and c) immediately redirected branches. To our knowledge, this is the first work being done to investigate the optimization of reversible control flow.