|
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object dk.brics.xact.analysis.transformations.ReachingDefinitionsAnalysis
public class ReachingDefinitionsAnalysis
Lattice and transfer functions for reaching definitions analysis. Maps each variable to a set of all statements that may assign to that variable.
Constructor Summary | |
---|---|
ReachingDefinitionsAnalysis()
Constructs a new analysis object. |
Method Summary | |
---|---|
Set<Statement> |
getInitial(FlowGraph g)
Returns the set of statements to start the analysis at. |
boolean |
isForward()
Returns true if this is a forwards analysis, and false if it is a backwards analysis. |
boolean |
merge(Map<Variable,Set<Assignment>> source,
VariableFilter filter,
Map<Variable,Set<Assignment>> dest)
Computes the least upper bound of two lattice elements. |
Map<Variable,Set<Assignment>> |
newBottomElement()
Constructs a new lattice bottom element. |
boolean |
transfer(Map<Variable,Set<Assignment>> in,
Statement s,
Map<Variable,Set<Assignment>> out)
Computes the lattice element resulting from flowing through the given statement. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public ReachingDefinitionsAnalysis()
Method Detail |
---|
public Set<Statement> getInitial(FlowGraph g)
AnalysisInterface
getInitial
in interface AnalysisInterface<Map<Variable,Set<Assignment>>>
g
- the flow graph about to be analyzed
public boolean isForward()
AnalysisInterface
isForward
in interface AnalysisInterface<Map<Variable,Set<Assignment>>>
public boolean merge(Map<Variable,Set<Assignment>> source, VariableFilter filter, Map<Variable,Set<Assignment>> dest)
AnalysisInterface
merge
in interface AnalysisInterface<Map<Variable,Set<Assignment>>>
source
- the first elementfilter
- the filter to merge throughdest
- the second element and destination for the result
true
if the new value of dest
is changedpublic Map<Variable,Set<Assignment>> newBottomElement()
AnalysisInterface
newBottomElement
in interface AnalysisInterface<Map<Variable,Set<Assignment>>>
public boolean transfer(Map<Variable,Set<Assignment>> in, Statement s, Map<Variable,Set<Assignment>> out)
AnalysisInterface
transfer
in interface AnalysisInterface<Map<Variable,Set<Assignment>>>
in
- the flow before the statementout
- destination for the result
true
if the new value of out
is changed
|
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |