LLVM API Documentation

llvm::PostDominatorTree Struct Reference

#include <PostDominators.h>

Inheritance diagram for llvm::PostDominatorTree:
[legend]
Collaboration diagram for llvm::PostDominatorTree:
[legend]

List of all members.

Public Member Functions

 PostDominatorTree ()
 ~PostDominatorTree ()
virtual bool runOnFunction (Function &F)
virtual void getAnalysisUsage (AnalysisUsage &AU) const
const std::vector< BasicBlock * > & getRoots () const
DomTreeNode * getRootNode () const
DomTreeNode * operator[] (BasicBlock *BB) const
bool properlyDominates (const DomTreeNode *A, DomTreeNode *B) const
bool properlyDominates (BasicBlock *A, BasicBlock *B) const
virtual void print (std::ostream &OS, const Module *M=0) const

Public Attributes

DominatorTreeBase< BasicBlock > * DT

Static Public Attributes

static char ID = 0


Detailed Description

PostDominatorTree Class - Concrete subclass of DominatorTree that is used to compute the a post-dominator tree.

Definition at line 24 of file PostDominators.h.


Constructor & Destructor Documentation

llvm::PostDominatorTree::PostDominatorTree (  )  [inline]

Definition at line 28 of file PostDominators.h.

References DT.

PostDominatorTree::~PostDominatorTree (  ) 

Definition at line 40 of file PostDominators.cpp.

References DT.


Member Function Documentation

bool PostDominatorTree::runOnFunction ( Function &  F  )  [virtual]

runOnFunction - Virtual method overriden by subclasses to do the per-function processing of the pass.

Implements llvm::FunctionPass.

Definition at line 34 of file PostDominators.cpp.

References DEBUG, and DT.

virtual void llvm::PostDominatorTree::getAnalysisUsage ( AnalysisUsage &   )  const [inline, virtual]

getAnalysisUsage - This function should be overriden by passes that need analysis information to do their job. If a pass specifies that it uses a particular analysis result to this function, it can then use the getAnalysis<AnalysisType>() function, below.

Reimplemented from llvm::Pass.

Definition at line 36 of file PostDominators.h.

References llvm::AnalysisUsage::setPreservesAll().

const std::vector<BasicBlock*>& llvm::PostDominatorTree::getRoots (  )  const [inline]

Definition at line 40 of file PostDominators.h.

References DT.

Referenced by llvm::PostDominanceFrontier::runOnFunction().

DomTreeNode* llvm::PostDominatorTree::getRootNode (  )  const [inline]

Definition at line 44 of file PostDominators.h.

References DT.

Referenced by llvm::PostDominanceFrontier::runOnFunction().

DomTreeNode* llvm::PostDominatorTree::operator[] ( BasicBlock *  BB  )  const [inline]

Definition at line 48 of file PostDominators.h.

References DT.

bool llvm::PostDominatorTree::properlyDominates ( const DomTreeNode *  A,
DomTreeNode *  B 
) const [inline]

Definition at line 52 of file PostDominators.h.

References DT.

bool llvm::PostDominatorTree::properlyDominates ( BasicBlock *  A,
BasicBlock *  B 
) const [inline]

Definition at line 56 of file PostDominators.h.

References DT.

virtual void llvm::PostDominatorTree::print ( std::ostream &  O,
const Module *  M = 0 
) const [inline, virtual]

print - Print out the internal state of the pass. This is called by Analyze to print out the contents of an analysis. Otherwise it is not necessary to implement this method. Beware that the module pointer MAY be null. This automatically forwards to a virtual function that does not provide the Module* in case the analysis doesn't need it it can just be ignored.

Reimplemented from llvm::Pass.

Definition at line 60 of file PostDominators.h.

References DT, and M.


Member Data Documentation

char PostDominatorTree::ID = 0 [static]

Definition at line 25 of file PostDominators.h.


The documentation for this struct was generated from the following files: