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, reportStatsprettyPrintTimepublic LiveRangeSplitting()
public final boolean shouldPerform(OptOptions options)
OptimizationPlanElementshouldPerform in class OptimizationPlanCompositeElementoptions - The Options object for the current compilation.true if the plan element should be performed.