LLVM API Documentation

Public Types | Public Member Functions | Static Public Attributes
llvm::MachineDominanceFrontier Class Reference

#include <MachineDominanceFrontier.h>

Inheritance diagram for llvm::MachineDominanceFrontier:
Inheritance graph
[legend]
Collaboration diagram for llvm::MachineDominanceFrontier:
Collaboration graph
[legend]

List of all members.

Public Types

typedef DominatorTreeBase
< MachineBasicBlock
DomTreeT
typedef DomTreeNodeBase
< MachineBasicBlock
DomTreeNodeT
typedef DominanceFrontierBase
< MachineBasicBlock >
::DomSetType 
DomSetType
typedef DominanceFrontierBase
< MachineBasicBlock >
::iterator 
iterator
typedef DominanceFrontierBase
< MachineBasicBlock >
::const_iterator 
const_iterator

Public Member Functions

void operator= (const MachineDominanceFrontier &) LLVM_DELETED_FUNCTION
 MachineDominanceFrontier (const MachineDominanceFrontier &) LLVM_DELETED_FUNCTION
 MachineDominanceFrontier ()
DominanceFrontierBase
< MachineBasicBlock > & 
getBase ()
const std::vector
< MachineBasicBlock * > & 
getRoots () const
MachineBasicBlockgetRoot () const
bool isPostDominator () const
iterator begin ()
const_iterator begin () const
iterator end ()
const_iterator end () const
iterator find (MachineBasicBlock *B)
const_iterator find (MachineBasicBlock *B) const
iterator addBasicBlock (MachineBasicBlock *BB, const DomSetType &frontier)
void removeBlock (MachineBasicBlock *BB)
void addToFrontier (iterator I, MachineBasicBlock *Node)
void removeFromFrontier (iterator I, MachineBasicBlock *Node)
bool compareDomSet (DomSetType &DS1, const DomSetType &DS2) const
bool compare (DominanceFrontierBase< MachineBasicBlock > &Other) const
bool runOnMachineFunction (MachineFunction &F) override
void releaseMemory () override
void getAnalysisUsage (AnalysisUsage &AU) const override

Static Public Attributes

static char ID = 0

Detailed Description

Definition at line 20 of file MachineDominanceFrontier.h.


Member Typedef Documentation

Definition at line 27 of file MachineDominanceFrontier.h.

Definition at line 25 of file MachineDominanceFrontier.h.

Definition at line 24 of file MachineDominanceFrontier.h.

Definition at line 23 of file MachineDominanceFrontier.h.

Definition at line 26 of file MachineDominanceFrontier.h.


Constructor & Destructor Documentation


Member Function Documentation

void MachineDominanceFrontier::getAnalysisUsage ( AnalysisUsage AU) const [override, virtual]

getAnalysisUsage - Subclasses that override getAnalysisUsage must call this.

For MachineFunctionPasses, calling AU.preservesCFG() indicates that the pass does not modify the MachineBasicBlock CFG.

Reimplemented from llvm::MachineFunctionPass.

Definition at line 50 of file MachineDominanceFrontier.cpp.

References llvm::AnalysisUsage::addRequired(), and llvm::AnalysisUsage::setPreservesAll().

Definition at line 36 of file MachineDominanceFrontier.h.

Referenced by runOnMachineFunction().

void llvm::MachineDominanceFrontier::operator= ( const MachineDominanceFrontier )
void MachineDominanceFrontier::releaseMemory ( ) [override, virtual]

releaseMemory() - This member can be implemented by a pass if it wants to be able to release its memory when it is no longer needed. The default behavior of passes is to hold onto memory for the entire duration of their lifetime (which is the entire compile time). For pipelined passes, this is not a big deal because that memory gets recycled every time the pass is invoked on another program unit. For IP passes, it is more important to free memory when it is unused.

Optionally implement this function to release pass memory when it is no longer used.

Reimplemented from llvm::Pass.

Definition at line 46 of file MachineDominanceFrontier.cpp.

References llvm::DominanceFrontierBase< BlockT >::releaseMemory().

Referenced by runOnMachineFunction().

runOnMachineFunction - This method must be overloaded to perform the desired machine code transformation or analysis.

Implements llvm::MachineFunctionPass.

Definition at line 40 of file MachineDominanceFrontier.cpp.

References llvm::ForwardDominanceFrontierBase< BlockT >::analyze(), getBase(), and releaseMemory().


Member Data Documentation

char MachineDominanceFrontier::ID = 0 [static]

Definition at line 32 of file MachineDominanceFrontier.h.


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