Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 CS 201 Compiler Construction Lecture 7 Code Optimizations: Partial Redundancy Elimination.

Similar presentations


Presentation on theme: "1 CS 201 Compiler Construction Lecture 7 Code Optimizations: Partial Redundancy Elimination."— Presentation transcript:

1 1 CS 201 Compiler Construction Lecture 7 Code Optimizations: Partial Redundancy Elimination

2 Redundancy Elimination The goal of redundancy elimination is to eliminate unnecessary reevaluations of the same computation. Global Common Sub-expression Elimination Loop Invariant Code Motion Partial Redundancy Elimination – this is the most general and thus it subsumes the above two optimizations. 2

3 3 Global Common Sub-expression Elimination Analysis Required 1.Available Expressions 2.Reaching Definitions

4 Transformation Algorithm For each statement S: A = B op C st B op C is available at entry of S’s basic block and neither B or C are redefined prior to S do the following: 1.Find definitions that reach S’s block that have B op C on the right hand side. 2.Create a new name T. 3.Replace each statement D = B op C found in step 1 by: T = B op C; D = T; 4.Replace statement S by A = T. 4

5 Loop Invariant Code Motion Loop Invariant: A statement that performs the same computation over and over again during multiple iterations of a loop’s execution. To detect invariant statements in a loop L: 1.Mark invariant statements whose operands are either constants or variables with ALL reaching definitions outside the loop. 2.Mark invariant statements whose operands satisfy conditions in step 1 or have exactly one reaching definition that is from inside the loop and has already been marked invariant. 3.Repeat step 2 till no more invariants are identified. 5

6 Transformation For each statement S (A=B, A=op B, A=B op C) that is marked invariant wrt L, check the following: 1.S is in a block that dominates all exits of L; 2.A is not defined elsewhere in L; and. 3.All uses of A in L can only be reached by the definition of A in S. Move in the order identified as invariant, each invariant statement S found to satisfy the above conditions to a newly created pre-header. 6

7 Why Conditions are Needed? 7

8 Limitations of… 8 X+Y is not Available here Global Common Sub-expression Elim. Loop Invariant Code Motion

9 Partial Redundancy Elimination 9 Use code motionMove expressions

10 Algorithm for PRE Before performing PRE, split critical edges to create suitable placement points. 10

11 Algorithm for PRE Key Idea: Move expression evaluations back through the control flow graph and place them at the earliest possible points in the control flow graph.  This process eliminates full and partial redundancy. 11

12 Algorithm for PRE 12

13 Algorithm Steps 1.Down-Safety Analysis  backward analysis that determines to where all expressions can be “safely” moved. 2.Earliestness Analysis  forward analysis that determines the earliest points to where an expression can be safely moved. 3.Perform transformation by placing expression evaluations at earliest points and eliminating them from other points. 13

14 Down-Safety Analysis Used(n) is tre if n evaluates the expression. Transp(n) is true if n does not modify any operands of the expression (i.e., n is transparent, it does not kill the expression) 14

15 Earliestness Analysis Forward analysis that finds the earliest nodes that are down-safe. A node n is an earliest node if there is a path from start node to n such that along this path n is the first node that is down-safe for the current value of the expression. 15

16 Transformation Step 1.Introduce a new auxiliary variable h for expression exp. 2.Insert at the entry of every node n for which D-Safe(n) ∧ Earliest(n) is true, the assignment: h = exp. 3.Replace every original computation of exp by h. 16

17 Example 17

18 Optional Step Suppressing unnecessary code motion using Delayability Analaysis - reduces register usage. 18


Download ppt "1 CS 201 Compiler Construction Lecture 7 Code Optimizations: Partial Redundancy Elimination."

Similar presentations


Ads by Google