edu.umd.cs.findbugs.ba
Class PostDominatorsAnalysis

java.lang.Object
  extended by edu.umd.cs.findbugs.ba.AbstractDominatorsAnalysis
      extended by edu.umd.cs.findbugs.ba.PostDominatorsAnalysis
All Implemented Interfaces:
DataflowAnalysis<java.util.BitSet>

public class PostDominatorsAnalysis
extends AbstractDominatorsAnalysis

Dataflow analysis to compute postdominator sets for a CFG.

Author:
David Hovemeyer
See Also:
CFG, AbstractDominatorsAnalysis

Constructor Summary
PostDominatorsAnalysis(CFG cfg, ReverseDepthFirstSearch rdfs, boolean ignoreExceptionEdges)
          Constructor.
PostDominatorsAnalysis(CFG cfg, ReverseDepthFirstSearch rdfs, EdgeChooser edgeChooser)
          Constructor.
 
Method Summary
 BlockOrder getBlockOrder(CFG cfg)
          Return the BlockOrder specifying the order in which BasicBlocks should be visited in the main dataflow loop.
 boolean isForwards()
          Returns true if the analysis is forwards, false if backwards.
 
Methods inherited from class edu.umd.cs.findbugs.ba.AbstractDominatorsAnalysis
copy, createFact, getAllDominatedBy, getAllDominatorsOf, getResultFact, getStartFact, initEntryFact, initResultFact, isTop, makeFactTop, meetInto, same, transfer
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PostDominatorsAnalysis

public PostDominatorsAnalysis(CFG cfg,
                              ReverseDepthFirstSearch rdfs,
                              EdgeChooser edgeChooser)
Constructor.

Parameters:
cfg - the CFG to compute dominator relationships for
rdfs - the ReverseDepthFirstSearch on the CFG
edgeChooser - EdgeChooser to choose which Edges to consider significant

PostDominatorsAnalysis

public PostDominatorsAnalysis(CFG cfg,
                              ReverseDepthFirstSearch rdfs,
                              boolean ignoreExceptionEdges)
Constructor.

Parameters:
cfg - the CFG to compute dominator relationships for
rdfs - the ReverseDepthFirstSearch on the CFG
ignoreExceptionEdges - true if exception edges should be ignored
Method Detail

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