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:
OptimizationPlanElement
- 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.