|
|||||||||||
| 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.IndexPropagation
public final class IndexPropagation
IndexPropagation.java
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 vervose 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)
Should this phase be performed? |
| 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 CompilerPhasepublic boolean shouldPerform(OptOptions options)
shouldPerform in class CompilerPhaseoptions - controlling compiler options
public String getName()
getName in class CompilerPhasepublic void perform(IR ir)
Pre-condition: The ir is in Array SSA form and global value numbers have been computed.
perform in class CompilerPhaseir - the IR to optimize
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||