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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
T = conditional True, F = conditional False and U = Unconditional.
References
Aho, A.V., Lam, M.S., Sethi, R., Ullman, J.D.: Compilers: Principles, Techniques, & Tools. Pearson Education (2006)
Allen, F.E.: Control flow analysis. In: Proceedings of a Symposium on Compiler Optimization, pp. 1–19. Urbana-Champaign, Illinois (1970)
Axelsen, H.B., Glück, R., Yokoyama, T.: Reversible machine code and its abstract processor architecture. In: Computer Science – Theory and Applications, pp. 56–69. Ekaterinburg, Russia (2007)
Bennett, C.H.: Logical reversibility of computation. IBM J. Res. Dev. 17(6), 525–532 (1973)
Deworetzki, N., Kutrib, M., Meyer, U., Ritzke, P.D.: Optimizing reversible programs. In: Reversible Computation, pp. 224–238. Urbino, Italy (2022)
Deworetzki, N., Meyer, U.: Program analysis for reversible languages. In: Proceedings of the 10th ACM SIGPLAN International Workshop on the State Of the Art in Program Analysis, pp. 13–18. Virtual, Canada (2021)
Frank, M.P.: The future of computing depends on making it reversible. IEEE Spectrum (2017)
Glück, R., Yokoyama, T.: Reversible computing from a programming language perspective. Theoretical Comput. Sci. (2023)
Haulund, T.: Design and implementation of a reversible object-oriented programming language. arXiv preprint arXiv:1707.07845 (2017)
Kaarsgaard, R., Axelsen, H.B., Glück, R.: Join Inverse categories and reversible recursion. J. Logical Algebraic Methods Program. 87, 33–50 (2017)
Landauer, R.: Irreversibility and heat generation in the computing process. IBM J. Res. Dev. 5(3), 183–191 (1961)
Mogensen, T.Æ.: RSSA: a reversible SSA form. In: Mazzara, M., Voronkov, A. (eds.) PSI 2015. LNCS, vol. 9609, pp. 203–217. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-41579-6_16
Storrs Hall, J.: A reversible instruction set architecture and algorithms. In: Proceedings Workshop on Physics and Computation. PhysComp ’94, pp. 128–134 (1994)
Vieri, C.J.: Pendulum: a reversible computer architecture. Ph.D. thesis, Massachusetts Institute of Technology (1995)
Yokoyama, T., Axelsen, H.B., Glück, R.: Principles of a reversible programming language. In: Proceedings of the 5th Conference on Computing Frontiers, pp. 43–54 (2008)
Yokoyama, T., Axelsen, H.B., Glück, R.: Towards a reversible functional language. In: International Workshop on Reversible Computation, pp. 14–29 (2011)
Yokoyama, T., Axelsen, H.B., Glück, R.: Fundamentals of Reversible Flowchart Languages. Theoret. Comput. Sci. 611, 87–115 (2016)
Author information
Authors and Affiliations
Corresponding authors
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Deworetzki, N., Gail, L. (2023). Optimization of Reversible Control Flow Graphs. In: Kutrib, M., Meyer, U. (eds) Reversible Computation. RC 2023. Lecture Notes in Computer Science, vol 13960. Springer, Cham. https://doi.org/10.1007/978-3-031-38100-3_5
Download citation
DOI: https://doi.org/10.1007/978-3-031-38100-3_5
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-38099-0
Online ISBN: 978-3-031-38100-3
eBook Packages: Computer ScienceComputer Science (R0)