ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Optimization Under the Perspective of Soundness, Completeness, and Reusability
Correct System Design, Recent Insight and Advances, (to Hans Langmaack on the occasion of his retirement from his professorship at the University of Kiel)
Bidirectional Data Flow Analysis in Code Motion: Myth and Reality
SAS '98 Proceedings of the 5th International Symposium on Static Analysis
Interacting code motion transformations: their impact and their complexity
Interacting code motion transformations: their impact and their complexity
Hi-index | 0.00 |
Common algorithms for partial redundancy elimination that are sensitive to register pressure are designed from a single-expression point of view. For each computation under investigation unnecessary code motion is avoided as far as possible. Unfortunately, such a view is only adequate when dealing with a flat universe of expressions. In a more realistic setting where both composite expressions and their subexpressions are subjected to code motion trade-offs among the lifetimes of symbolic registers have to be taken into account. In this paper we present a polynomial time algorithm for the elimination of partially redundant computations that uniformly minimizes the total number of lifetime ranges at each program point. This is achieved by a refinement of our algorithm for lazy code motion that incorporates optimal register trade-offs being computed by means of maximum bipartite graph matchings.