Class ControlDependenceGraph
- java.lang.Object
-
- com.ensoftcorp.open.slice.analysis.DependenceGraph
-
- com.ensoftcorp.open.slice.analysis.ControlDependenceGraph
-
public class ControlDependenceGraph extends DependenceGraph
Constructs the Control Dependence Graph (CGD) from a given Control Flow Graph (CFG) Instead of computing control dependence using the Ferrante, Ottenstein, and Warren algorithm this uses the post-dominance frontier to compute the dominance edges. Reference: 1) http://www.cc.gatech.edu/~harrold/6340/cs6340_fall2009/Slides/BasicAnalysis4.pdf 2) https://www.cc.gatech.edu/~harrold/6340/cs6340_fall2009/Slides/BasicAnalysis5.pdf 3) http://www.cs.utexas.edu/~pingali/CS380C/2016-fall/lectures/Dominators.pdf- Author:
- Ben Holland
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.ensoftcorp.open.slice.analysis.DependenceGraph
DependenceGraph.Factory, DependenceGraph.SliceDirection
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
CONTROL_DEPENDENCE_EDGE
Used to tag the edges between nodes that contain a control dependence
-
Constructor Summary
Constructors Constructor Description ControlDependenceGraph(com.ensoftcorp.atlas.core.db.graph.Graph cfg)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description com.ensoftcorp.atlas.core.query.Q
getControlFlowGraph()
com.ensoftcorp.atlas.core.query.Q
getGraph()
-
Methods inherited from class com.ensoftcorp.open.slice.analysis.DependenceGraph
getSlice, getStatement, getStatements
-
-
-
-
Field Detail
-
CONTROL_DEPENDENCE_EDGE
public static final java.lang.String CONTROL_DEPENDENCE_EDGE
Used to tag the edges between nodes that contain a control dependence- See Also:
- Constant Field Values
-
-
Method Detail
-
getControlFlowGraph
public com.ensoftcorp.atlas.core.query.Q getControlFlowGraph()
-
getGraph
public com.ensoftcorp.atlas.core.query.Q getGraph()
- Specified by:
getGraph
in classDependenceGraph
-
-