| Package | Description |
|---|---|
| cetus.analysis | |
| cetus.application |
| Modifier and Type | Class and Description |
|---|---|
class |
IPANode
Class IPANode represents workspace for a procedure, used in interprocedural
analysis.
|
| Modifier and Type | Method and Description |
|---|---|
DFANode |
CFGraph.getCallNode(FunctionCall fc)
Returns the DFANode object that contains the given function call.
|
DFANode |
CFGraph.getEntry() |
DFANode |
DFAGraph.getFirst()
Returns the first node in the node list.
|
DFANode |
DFAGraph.getLast()
Returns the last node in the node list.
|
DFANode |
DFAGraph.getNode(int id)
Returns the node indexed by the specified id in the node list.
|
DFANode |
DFAGraph.getNode(java.lang.String key,
java.lang.Object data)
Returns the node that contains the specified key/data pair.
|
DFANode |
DFAGraph.getNodeWith(java.lang.String key,
java.lang.Object data)
Returns the node that contains the specified key/data pair.
|
DFANode |
DFAGraph.TopIterator.next() |
| Modifier and Type | Method and Description |
|---|---|
java.util.List<DFANode> |
DFAGraph.getEntryNodes()
Returns the list of the nodes that have no predecessors.
|
java.util.List<DFANode> |
DFAGraph.getExitNodes()
Returns the list of the nodes that have no successors.
|
java.util.Set<DFANode> |
DFANode.getPreds()
Returns the set of predecessor nodes.
|
java.util.Set<DFANode> |
DFANode.getSuccs()
Returns the set of successor nodes.
|
java.util.Iterator<DFANode> |
DFAGraph.iterator()
Returns an iterator of the nodes.
|
| Modifier and Type | Method and Description |
|---|---|
void |
DFAGraph.addEdge(DFANode from,
DFANode to)
Adds a directed edge from a node to the other.
|
void |
DFAGraph.addNode(DFANode node)
Adds a node to the graph if the node does not exist in the graph.
|
void |
DFANode.addPred(DFANode pred)
Adds a predecessor node.
|
void |
DFANode.addSucc(DFANode succ)
Adds a successor node.
|
static java.lang.Object |
CFGraph.getIR(DFANode node)
Returns the corresponding IR object for the specified node.
|
<T> T |
DFANode.getPredData(DFANode key)
Returns the predecessor data associated with the specified predecessor
key.
|
java.util.List |
DFAGraph.getSCC(DFANode root)
Returns a strongly-connected components (SCC) forest in the graph
computed by the Tarjan's algorithm.
|
<T> T |
DFANode.getSuccData(DFANode key)
Returns the successor data associated with the specified successor key.
|
boolean |
DFAGraph.isReachable(DFANode from,
DFANode to)
Checks if the "to" node is reachable from the "from" node by performing
a depth-first-search.
|
void |
DFANode.putPredData(DFANode pred,
java.lang.Object value)
Adds data associated with the incoming edge from the predecessor node to
this node.
|
void |
DFANode.putSuccData(DFANode succ,
java.lang.Object value)
Adds data associated with the outgoing edge from this node to the
successor node.
|
void |
DFAGraph.removeEdge(DFANode from,
DFANode to)
Removes an edge from the graph.
|
void |
DFAGraph.removeNode(DFANode node)
Removes a node and its associated edges from the graph.
|
void |
DFANode.removePred(DFANode pred)
Removes a predecessor node.
|
void |
DFANode.removeSucc(DFANode succ)
Removes a successor node.
|
int |
DFAGraph.topologicalSort(DFANode root)
Computes and records the topological ordering of each node starting from
the root node.
|
int |
DFAGraph.topologicalSortOptimized(DFANode root)
Uses the same reverse-post ordering algorithm as simple topological
sort.
|
| Modifier and Type | Method and Description |
|---|---|
void |
DFAGraph.removeNodes(java.util.List<DFANode> nodes)
Removes the specified nodes and their associated edges from the graph.
|
| Constructor and Description |
|---|
DFAGraph.TopIterator(DFANode root) |
| Modifier and Type | Method and Description |
|---|---|
DFANode |
AnalysisTarget.getDFANode() |
| Modifier and Type | Method and Description |
|---|---|
java.util.Set<DFANode> |
UseDefChain.getDefDFANodeSet(Expression use)
Returns interprocedural definition list as list of DFANode in the control flow graph
|
java.util.Set<DFANode> |
IPChainAnalysis.getDefDFANodeSet(Expression use) |
| Modifier and Type | Method and Description |
|---|---|
void |
ProgramSlicer.addSlicingCriteria(DFANode dfaNode,
java.util.List<Expression> exprList,
Procedure proc)
Add program slice criteria
Traversable in the DFANode is only added to the slice criteria
|
void |
ProgramSlicer.addSlicingCriteria(DFANode dfaNode,
Procedure proc)
Add program slice criteria
Whole DFANode is added to the slice criteria
|
static DFAGraph |
SlicingTools.buildImmediateDominanceTree(DFAGraph reversedCFG,
java.util.BitSet[] immediateDom,
DFANode[] nodeArray,
java.util.List<DFANode> nodeList) |
static java.util.BitSet[] |
SlicingTools.getImmediateDominator(java.util.BitSet[] dominator,
java.util.Set<java.lang.Integer> entryIdxSet,
java.util.List<DFANode> entryNodeList,
DFANode[] nodeArray) |
static boolean |
ChainTools.isDefInItself(DFANode defNode,
Expression defEx,
Expression useEx) |
static boolean |
ChainTools.isEntryNode(DFANode node,
CFGraph cfg) |
static boolean |
ChainTools.isExitNode(DFANode node,
CFGraph cfg) |
static boolean |
ChainTools.isNestedDefInItself(DFANode defNode,
Expression defEx,
Expression useEx) |
static void |
SlicingTools.printDominator(java.util.BitSet[] dominator,
DFANode[] nodeArray,
Procedure proc) |
static void |
ChainTools.setGenBit(DFANode cfgNode,
AnalysisTarget[] defMapEntry,
Expression currentEx) |
static void |
ChainTools.setInBit(DFANode cfgNode,
int idx) |
static void |
ChainTools.setKillBit(DFANode cfgNode,
AnalysisTarget[] defMapEntry,
Expression currentEx,
Procedure proc) |
static void |
ChainTools.setKillBitForAlias(DFANode cfgNode,
AnalysisTarget[] defMapEntry,
Expression currentEx,
Statement currentStmt,
Procedure proc) |
static void |
ChainTools.setOutBit(DFANode cfgNode,
int idx) |
| Modifier and Type | Method and Description |
|---|---|
static DFAGraph |
SlicingTools.buildImmediateDominanceTree(DFAGraph reversedCFG,
java.util.BitSet[] immediateDom,
DFANode[] nodeArray,
java.util.List<DFANode> nodeList) |
static java.util.BitSet[] |
SlicingTools.getDominators(DFAGraph graph,
java.util.ArrayList<DFANode> nodeList) |
static java.util.Set<java.lang.Integer> |
SlicingTools.getEntryIdxSet(DFAGraph graph,
java.util.List<DFANode> nodeList) |
static java.util.BitSet[] |
SlicingTools.getImmediateDominator(java.util.BitSet[] dominator,
java.util.Set<java.lang.Integer> entryIdxSet,
java.util.List<DFANode> entryNodeList,
DFANode[] nodeArray) |
| Constructor and Description |
|---|
AnalysisTarget(Expression expression,
DFANode cfgNode,
Procedure proc) |
AnalysisTarget(FunctionCall fc,
DFANode cfgNode,
Procedure proc) |