ISBN: 3-540-65510-7
TITLE: Interacting Code Motion Transformations: Their Impact and Their Complexity
AUTHOR: Rthing, Oliver
TOC:

1. Introduction 1 
1.1 Interacting Program Optimisations 2 
1.2 Interacting Code Motion Transformations 3 
1.2.1 Interactions in Expression Motion 4 
1.2.2 Interactions in Assignment Motion 5 
1.3 Code Motion in the Presence of Critical Edges 6 
1.4 Structure of the Monograph 7 
2. Basic Formalisms and Definitions 9 
2.1 Graph Theoretical Foundations 9 
2.1.1 Undirected Graphs 9 
2.1.2 Directed Graphs 10 
2.2 Programs and Flow Graphs 10 
2.2.1 Expressions 10 
2.2.2 Statements 11 
2.2.3 Flow Graphs 12 
2.2.4 Program Points 12 
2.2.5 Code Patterns 13 
2.2.6 Critical Edges 14 
2.3 Program Transformations 15 
2.3.1 Admissibility 15 
2.3.2 Optimality 15 
Part I. Expression Motion 
3. Optimal Expression Motion: The Single-Expression View 21 
3.1 Expression Motion 22 
3.1.1 Safety and Correctness 22 
3.2 Busy Expression Motion 24 
3.2.1 Computational Optimality 24 
3.2.2 The Transformation 25 
3.3 Lazy Expression Motion 26 
3.3.1 Lifetime Optimality 26 
3.3.2 The Transformation 27 
3.4 A Classification of COEM_phi 30 
3.5 Computing BEM_phi and LEM_phi 31 
3.6 The Complexity 35 
4. Optimal Expression Motion: The Multiple-Expression View 37 
4.1 Flat Expression Motion 37 
4.1.1 Flat Busy and Lazy Expression Motion 38 
4.2 Structured Expression Motion 39 
4.2.1 Defining Structured Expression Motion 40 
4.2.2 Computationally Optimal Structured Expression Motion 41 
4.2.3 Lifetime Optimal Structured Expression Motion 46 
4.3 A Graph Theoretical View on Trade-Offs between Lifetimes 50 
4.3.1 Motivation 50 
4.3.2 Tight Sets in Bipartite Graphs 51 
4.3.3 An Efficient Decision Procedure 51 
4.3.4 Efficient Computation of Tight Sets 53 
4.4 Levelwise Flexible Expression Motion 59 
4.4.1 Defining LFEM_Phi 60 
4.4.2 Proving Admissibility 62 
4.4.3 Proving Computational Optimality 67 
4.4.4 Proving Inductive Lifetime Optimality 70 
4.4.5 Computing LFEM_Phi 83 
4.5 Fully Flexible Expression Motion 84 
4.5.1 A Classification of Expressions 85 
4.5.2 Limitations of Inductive Lifetime Optimality 88 
4.5.3 General Trade-Offs 88 
4.5.4 Defining FFEM_Phi 93 
4.5.5 Proving Admissibility 95 
4.5.6 Proving Computational Optimality 98 
4.5.7 Proving Lifetime Optimality 98 
4.5.8 Computing FFEM_Phi 105 
4.6 The Complexity 109 
4.6.1 The Complexity of BEM_Phi and LEM_Phi 109 
4.6.2 The Complexity of LFEM_Phi 109 
4.6.3 The Complexity of FFEM_Phi 110 
4.6.4 Bit-Vector Complexity of BEM_Phi, LEM_Phi, LFEM_Phi and FFEM_Phi 111 
5. Expression Motion in the Presence of Critical Edges 113 
5.1 The Single-Expression View 113 
5.1.1 Computational Optimal Expression Motion 114 
5.1.2 Busy Expression Motion 115 
5.1.3 Lazy Expression Motion 117 
5.1.4 Computing CBEM_Phi and CLEM_Phi 118 
5.1.5 The Complexity 122 
5.2 The Multiple-Expression View 126 
5.2.1 Flat Expression Motion 126 
5.2.2 Structured Expression Motion 126 
5.2.3 The Complexity 128 
Part II. Assignment Motion 
6. Program Transformations Based on Assignment Motion 137 
6.1 Assignment Motion 137 
6.1.1 Admissibility 138 
6.2 Partial Dead Code Elimination 140 
6.2.1 Motivation 140 
6.2.2 Defining Partial Dead Code Elimination 141 
6.2.3 Second Order Effects in Partial Dead Code Elimination 142 
6.3 Partial Faint Code Elimination 145 
6.4 Partially Redundant Assignment Elimination 146 
6.5 The Uniform Elim. of Part. Redundant Assignments and 
Expressions 147 
7. A Framework for Assignment Motion Based Program 
Transformations 153 
7.1 The Setting 153 
7.1.1 Motion-Elimination Couples 153 
7.1.2 A Note on the Correctness of Motion-Elimination 
Couples 154 
7.1.3 Notational Conventions 155 
7.1.4 Uniform Motion-Elimination Couples 156 
7.2 Confluence of Uniform Motion-Elimination Couples 157 
7.2.1 The General Case 157 
7.2.2 Consistent Motion-Elimination Couples 157 
7.2.3 Confluence of Consistent Motion-Elimination Couples 166 
7.2.4 The Applications 169 
7.3 The Complexity of Exhaustive Iterations 171 
7.3.1 Simultaneous Iteration Steps 173 
7.3.2 Conventions 175 
7.3.3 The General Case: Weakly Consistent UMECs 175 
7.3.4 Consistent UMECs 178 
7.4 UPRE as an Advanced Application of MECs 187 
7.4.1 Computationally Optimal UPRE 188 
7.4.2 UPRE and Code Decomposition 194 
7.4.3 UPRE with Trade-Offs between Lifetimes of Variables 194 
8. Assignment Motion in the Presence of Critical Edges 199 
8.1 Straightforward Adaption of MECs 199 
8.1.1 Adequacy 199 
8.1.2 Confluence 200 
8.1.3 Efficiency 201 
8.2 Enhanced UMECs 202 
8.2.1 Adequacy 203 
8.2.2 Confluence 204 
8.2.3 Efficiency 205 
9. Conclusions and Perspectives 211 
9.1 Summary of the Main Results 211 
9.2 Perspectives 212 
References 214 
Index 221 
Index 221 
Index of Symbols 224 
END
