Next: Schedule
Up: Implementation
Previous: Partially Available Expressions and
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:
- Introduce a new temporary
- Duplicate the block to produce two identical blocks.
- Replace the expression computation with the new temporary in the
first block.
- Introduce new edges from the duplicated blocks to the orignial
successors of the block. Update the dataflow equations for the new
edges created.
- 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