org.jikesrvm.compilers.opt.ssa
Class LiveRangeSplitting
java.lang.Object
org.jikesrvm.compilers.opt.driver.OptimizationPlanElement
org.jikesrvm.compilers.opt.driver.OptimizationPlanCompositeElement
org.jikesrvm.compilers.opt.ssa.LiveRangeSplitting
public class LiveRangeSplitting
- extends OptimizationPlanCompositeElement
Perform live-range splitting.
This pass splits live ranges where they enter and exit loop bodies
by normal (unexceptional) control flow.
It splits a live range for register r by inserting the instruction
r = SPLIT r . Then, SSA renaming will introduce a new
name for r. The SPLIT operator is later turned into a MOVE during
BURS.
This pass also splits live ranges on edges to and from infrequent code.
This composite phase should be performed at the end of SSA in LIR.
|
Method Summary |
boolean |
shouldPerform(OptOptions options)
Determine, possibly by consulting the passed options object,
if this optimization plan element should be performed. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
LiveRangeSplitting
public LiveRangeSplitting()
- Build this phase as a composite of others.
shouldPerform
public final boolean shouldPerform(OptOptions options)
- Description copied from class:
OptimizationPlanCompositeElement
- Determine, possibly by consulting the passed options object,
if this optimization plan element should be performed.
- Overrides:
shouldPerform in class OptimizationPlanCompositeElement
- Parameters:
options - The Options object for the current compilation.
- Returns:
- true if the plan element should be performed.