Class DominatorsAnalysis

All Implemented Interfaces:
DataflowAnalysis<BitSet>
Direct Known Subclasses:
NonExceptionDominatorsAnalysis, NonImplicitExceptionDominatorsAnalysis

public class DominatorsAnalysis extends AbstractDominatorsAnalysis
Dataflow analysis to compute dominator sets for a CFG.
Author:
David Hovemeyer
See Also:
  • Constructor Details

    • DominatorsAnalysis

      public DominatorsAnalysis(CFG cfg, DepthFirstSearch dfs, EdgeChooser edgeChooser)
      Constructor.
      Parameters:
      cfg - the CFG to compute dominator relationships for
      dfs - the DepthFirstSearch on the CFG
      edgeChooser - EdgeChooser to choose which Edges to consider significant
    • DominatorsAnalysis

      public DominatorsAnalysis(CFG cfg, DepthFirstSearch dfs, boolean ignoreExceptionEdges)
      Constructor.
      Parameters:
      cfg - the CFG to compute dominator relationships for
      dfs - the DepthFirstSearch on the CFG
      ignoreExceptionEdges - true if exception edges should be ignored
  • Method Details

    • isForwards

      public boolean isForwards()
      Description copied from interface: DataflowAnalysis
      Returns true if the analysis is forwards, false if backwards.
    • getBlockOrder

      public BlockOrder getBlockOrder(CFG cfg)
      Description copied from interface: DataflowAnalysis
      Return the BlockOrder specifying the order in which BasicBlocks should be visited in the main dataflow loop.
      Parameters:
      cfg - the CFG upon which we're performing dataflow analysis