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

Field Summary
private  ReverseDepthFirstSearch rdfs
           
 
Constructor Summary
PostDominatorsAnalysis(CFG cfg, ReverseDepthFirstSearch rdfs, boolean ignoreExceptionEdges)
          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, 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
 

Field Detail

rdfs

private ReverseDepthFirstSearch rdfs
Constructor Detail

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