Partial dead code elimination
- 1 June 1994
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGPLAN Notices
- Vol. 29 (6) , 147-158
- https://doi.org/10.1145/773473.178256
Abstract
A new aggressive algorithm for the elimination of partially dead code is presented, i.e., of code which is only dead on some program paths. Besides being more powerful than the usual approaches to dead code elimination, this algorithm is optimal in the following sense: partially dead code remaining in the resulting program cannot be eliminated without changing the branching structure or the semantics of the program, or without impairing some program executions.Our approach is based on techniques for partial redundancy elimination. Besides some new technical problems there is a significant difference here: partial dead code elimination introduces second order effects, which we overcome by means of exhaustive motion and elimination steps. The optimality and the uniqueness of the program obtained is proved by means of a new technique which is universally applicable and particularly useful in the case of mutually interdependent program optimizations.Keywords
This publication has 24 references indexed in Scilit:
- A variation of Knoop, Rüthing, and Steffen's Lazy Code MotionACM SIGPLAN Notices, 1993
- Practical adaption of the global optimization algorithm of Morel and RenvoiseACM Transactions on Programming Languages and Systems, 1991
- Constant propagation with conditional branchesACM Transactions on Programming Languages and Systems, 1991
- A usually linear algorithm for register assignment using edge placement of load and store instructionsComputer Languages, 1990
- Register assignment using code placement techniquesComputer Languages, 1988
- A solution to a problem with Morel and Renvoise's “Global optimization by suppression of partial redundancies”ACM Transactions on Programming Languages and Systems, 1988
- Global optimization by suppression of partial redundanciesCommunications of the ACM, 1979
- On Live-Dead Analysis for Global Data Flow ProblemsJournal of the ACM, 1977
- Code Generation for Expressions with Common SubexpressionsJournal of the ACM, 1977
- Global Data Flow Analysis and Iterative AlgorithmsJournal of the ACM, 1976