next up previous
Next: Schedule Up: Implementation Previous: Partially Available Expressions and

Control Flow Graph Transformation

When an expression is locally anticipated within a block, and is partially available at the entry to the block, the following graph transformation is performed:

  1. Introduce a new temporary
  2. Duplicate the block to produce two identical blocks.
  3. Replace the expression computation with the new temporary in the first block.
  4. Introduce new edges from the duplicated blocks to the orignial successors of the block. Update the dataflow equations for the new edges created.
  5. For each incoming path where the expression is partially available, change the current control transfer predicate to account for the predicate associated with the expression. If this predicate is true, then the expression has been computed before. Introduce two new edges directed to the duplicated blocks. At each instance where the expression was computed along these paths, assign the expression to the new temporary.



Girish Venkataramani 2003-04-14