|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.jikesrvm.compilers.opt.driver.CompilerPhase org.jikesrvm.compilers.opt.ssa.IndexPropagation
public final class IndexPropagation
Perform index propagation (see Fink, Knobe && Sarkar, SAS 2000)
This analysis computes for each Array SSA variable A, the set of value numbers V(k) such that location A[k] is "available" at def A, and thus at all uses of A
We formulate this as a data flow problem as described in the paper.
This class relies on Array SSA form, global value numbering, and the dataflow equation solver framework.
TODO: This implementation is not terribly efficient. Speed it up.
Nested Class Summary | |
---|---|
(package private) static class |
IndexPropagation.ArrayCell
An ArrayCell is a lattice cell for the index propagation problem, used in redundant load elimination for one-dimensional arrays. |
(package private) static class |
IndexPropagation.ObjectCell
An ObjectCell is a lattice cell for the index propagation problem, used in redundant load elimination for fields. |
Field Summary | |
---|---|
private static Constructor<CompilerPhase> |
constructor
Constructor for this compiler phase |
private static boolean |
DEBUG
Print verbose debugging messages? |
Fields inherited from class org.jikesrvm.compilers.opt.driver.CompilerPhase |
---|
container |
Constructor Summary | |
---|---|
IndexPropagation()
|
Method Summary | |
---|---|
Constructor<CompilerPhase> |
getClassConstructor()
Get a constructor object for this compiler phase |
String |
getName()
Return the name of this compiler phase. |
void |
perform(IR ir)
Perform the analysis. |
boolean |
shouldPerform(OptOptions options)
This method determines if the phase should be run, based on the Options object it is passed. |
Methods inherited from class org.jikesrvm.compilers.opt.driver.CompilerPhase |
---|
dumpIR, dumpIR, getCompilerPhaseConstructor, getCompilerPhaseConstructor, newExecution, performPhase, printingEnabled, reportAdditionalStats, setContainer, verify |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private static final Constructor<CompilerPhase> constructor
private static final boolean DEBUG
Constructor Detail |
---|
public IndexPropagation()
Method Detail |
---|
public Constructor<CompilerPhase> getClassConstructor()
getClassConstructor
in class CompilerPhase
public boolean shouldPerform(OptOptions options)
CompilerPhase
shouldPerform
in class CompilerPhase
options
- the compiler options for the compilation
true
iff SSA is constructed on the HIRpublic String getName()
getName
in class CompilerPhase
public void perform(IR ir)
Pre-condition: The IR is in Array SSA form and global value numbers have been computed.
perform
in class CompilerPhase
ir
- the IR to optimize
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |