|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectorg.jikesrvm.compilers.opt.driver.CompilerPhase
org.jikesrvm.compilers.opt.ssa.LiveRangeSplitting.LiveRangeSplittingPhase
private static class LiveRangeSplitting.LiveRangeSplittingPhase
| Nested Class Summary | |
|---|---|
private static class |
LiveRangeSplitting.LiveRangeSplittingPhase.BasicBlockPair
A utility class to represent an edge in the CFG. |
| Field Summary |
|---|
| Fields inherited from class org.jikesrvm.compilers.opt.driver.CompilerPhase |
|---|
container |
| Constructor Summary | |
|---|---|
private |
LiveRangeSplitting.LiveRangeSplittingPhase()
|
| Method Summary | |
|---|---|
private static void |
addEntriesForInfrequentBlocks(IR ir,
LiveAnalysis live,
HashMap<LiveRangeSplitting.LiveRangeSplittingPhase.BasicBlockPair,HashSet<Register>> result)
Split live ranges on entry and exit to infrequent regions. |
private static HashSet<Register> |
findOrCreateSplitSet(HashMap<LiveRangeSplitting.LiveRangeSplittingPhase.BasicBlockPair,HashSet<Register>> map,
BasicBlock b1,
BasicBlock b2)
Given a mapping from BasicBlockPair -> HashSet, find or create the hash set corresponding to a given basic block pair |
private static HashMap<LiveRangeSplitting.LiveRangeSplittingPhase.BasicBlockPair,HashSet<Register>> |
findSplitPoints(IR ir,
LiveAnalysis live,
LSTGraph lst)
Find the points the IR where live ranges should be split. |
String |
getName()
|
CompilerPhase |
newExecution(IR ir)
Return this instance of this phase. |
void |
perform(IR ir)
The main entrypoint for this pass. |
boolean |
shouldPerform(OptOptions options)
This method determines if the phase should be run, based on the Options object it is passed. |
private static void |
transform(IR ir,
HashMap<LiveRangeSplitting.LiveRangeSplittingPhase.BasicBlockPair,HashSet<Register>> xform)
Perform the transformation |
| Methods inherited from class org.jikesrvm.compilers.opt.driver.CompilerPhase |
|---|
dumpIR, dumpIR, getClassConstructor, getCompilerPhaseConstructor, getCompilerPhaseConstructor, performPhase, printingEnabled, reportAdditionalStats, setContainer, verify |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
private LiveRangeSplitting.LiveRangeSplittingPhase()
| Method Detail |
|---|
public CompilerPhase newExecution(IR ir)
newExecution in class CompilerPhaseir - not used
public final boolean shouldPerform(OptOptions options)
CompilerPhase
shouldPerform in class CompilerPhaseoptions - the compiler options for the compilation
public final String getName()
getName in class CompilerPhasepublic final void perform(IR ir)
perform in class CompilerPhaseir - the IR on which to apply the phase
private static HashMap<LiveRangeSplitting.LiveRangeSplittingPhase.BasicBlockPair,HashSet<Register>> findSplitPoints(IR ir,
LiveAnalysis live,
LSTGraph lst)
ir - the governing IRlive - valid liveness informationlst - a valid loop structure tree
private static void addEntriesForInfrequentBlocks(IR ir,
LiveAnalysis live,
HashMap<LiveRangeSplitting.LiveRangeSplittingPhase.BasicBlockPair,HashSet<Register>> result)
ir - the governing IRlive - valid liveness informationresult - mapping from BasicBlockPair to a set of registers
private static HashSet<Register> findOrCreateSplitSet(HashMap<LiveRangeSplitting.LiveRangeSplittingPhase.BasicBlockPair,HashSet<Register>> map,
BasicBlock b1,
BasicBlock b2)
map - the mapping to searchb1 - the first basic block in the pairb2 - the second basic block in the pair
private static void transform(IR ir,
HashMap<LiveRangeSplitting.LiveRangeSplittingPhase.BasicBlockPair,HashSet<Register>> xform)
ir - the governing IRxform - a mapping from BasicBlockPair to the set of registers
to split
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||