public class LiveRangeSplitting extends OptimizationPlanCompositeElement
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.
Modifier and Type | Class and Description |
---|---|
private static class |
LiveRangeSplitting.LiveRangeSplittingPhase |
private static class |
LiveRangeSplitting.RenamePreparation
This class sets up the IR state prior to entering SSA.
|
Constructor and Description |
---|
LiveRangeSplitting()
Build this phase as a composite of others.
|
Modifier and Type | Method and Description |
---|---|
boolean |
shouldPerform(OptOptions options)
Determine, possibly by consulting the passed options object,
if this optimization plan element should be performed.
|
compose, elapsedTime, getName, initializeForMeasureCompilation, perform, printingEnabled, reportStats
prettyPrintTime
public LiveRangeSplitting()
public final boolean shouldPerform(OptOptions options)
OptimizationPlanElement
shouldPerform
in class OptimizationPlanCompositeElement
options
- The Options object for the current compilation.true
if the plan element should be performed.