public class IPChainAnalysis extends AnalysisPass implements DefUseChain, UseDefChain
ProgramSummaryGraph.| Constructor and Description |
|---|
IPChainAnalysis(Program program)
Constructs a IPChainAnalysis object which can perform the def-use/use-def chain computation.
|
| Modifier and Type | Method and Description |
|---|---|
void |
computeChainsForAllProcs() |
void |
computeChainsForAllProcsWithThreads() |
java.util.Map<Procedure,CFGraph> |
getCfgMap() |
java.util.Set<DFANode> |
getDefDFANodeSet(Expression use)
Returns interprocedural definition list as list of DFANode in the control flow graph
|
java.util.List<Traversable> |
getDefList(Expression use)
Returns interprocedural definition list.
|
AnalysisTarget[] |
getDefTargetArray(Procedure proc) |
java.util.LinkedHashSet<AnalysisTarget> |
getGlobalDefSet() |
java.util.List<Traversable> |
getLocalDefList(Expression use)
Returns intraprocedural defintion list
|
java.util.List<Traversable> |
getLocalUseList(Expression def)
Returns intraprocedural use list.
|
java.lang.String |
getPassName() |
java.util.List<Traversable> |
getUseList(Expression def)
Returns interprocedural use list.
|
AnalysisTarget[] |
getUseTargetArray(Procedure proc) |
boolean |
isReachable(Expression def,
Expression use)
Returns if the given definition reaches the given use interprocedurally
|
void |
printDefUseChain() |
void |
printUseDefChain() |
void |
setProcList(java.util.Set<Procedure> procList) |
void |
start() |
runpublic IPChainAnalysis(Program program)
program - program IR to analyzepublic java.lang.String getPassName()
getPassName in class AnalysisPasspublic void start()
start in class AnalysisPasspublic void setProcList(java.util.Set<Procedure> procList)
public void computeChainsForAllProcs()
public void computeChainsForAllProcsWithThreads()
public AnalysisTarget[] getDefTargetArray(Procedure proc)
public AnalysisTarget[] getUseTargetArray(Procedure proc)
public void printDefUseChain()
public void printUseDefChain()
public java.util.List<Traversable> getUseList(Expression def)
DefUseChaingetUseList in interface DefUseChaindef - definition expression for def-use chainpublic java.util.List<Traversable> getLocalUseList(Expression def)
DefUseChaingetLocalUseList in interface DefUseChaindef - definition expression for def-use chainpublic boolean isReachable(Expression def, Expression use)
DefUseChainisReachable in interface DefUseChaindef - definition expressionuse - use expressionpublic java.util.List<Traversable> getDefList(Expression use)
UseDefChaingetDefList in interface UseDefChainuse - use expression for use-def chainpublic java.util.Set<DFANode> getDefDFANodeSet(Expression use)
UseDefChaingetDefDFANodeSet in interface UseDefChainuse - use expression for use-def chainpublic java.util.List<Traversable> getLocalDefList(Expression use)
UseDefChaingetLocalDefList in interface UseDefChainuse - use expression for use-def chainpublic java.util.LinkedHashSet<AnalysisTarget> getGlobalDefSet()