Class 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
    • 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
    • Constructor Detail

      • ControlDependenceGraph

        public ControlDependenceGraph​(com.ensoftcorp.atlas.core.db.graph.Graph cfg)
    • Method Detail

      • getControlFlowGraph

        public com.ensoftcorp.atlas.core.query.Q getControlFlowGraph()