LLVM API Documentation

Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

llvm::BasicBlockPass Struct Reference

#include <Pass.h>

Inheritance diagram for llvm::BasicBlockPass:

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

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual bool doInitialization (Module &M)
virtual bool doInitialization (Function &F)
virtual bool runOnBasicBlock (BasicBlock &BB)=0
virtual bool doFinalization (Function &F)
virtual bool doFinalization (Module &M)
bool runOnFunction (Function &F)
bool runPass (BasicBlock &BB)

Friends

class PassManagerT< Function >
class PassManagerT< BasicBlock >

Detailed Description

BasicBlockPass class - This class is used to implement most local optimizations. Optimizations should subclass this class if they meet the following constraints: 1. Optimizations are local, operating on either a basic block or instruction at a time. 2. Optimizations do not modify the CFG of the contained function, or any other basic block in the function. 3. Optimizations conform to all of the constraints of FunctionPass's.

Definition at line 307 of file Pass.h.


Member Function Documentation

virtual bool llvm::BasicBlockPass::doFinalization Module M  )  [inline, virtual]
 

doFinalization - Virtual method overriden by subclasses to do any post processing needed after all passes have run.

Reimplemented from llvm::FunctionPass.

Reimplemented in llvm::PassManagerTraits< BasicBlock >.

Definition at line 331 of file Pass.h.

virtual bool llvm::BasicBlockPass::doFinalization Function F  )  [inline, virtual]
 

doFinalization - Virtual method overriden by BasicBlockPass subclasses to do any post processing needed after all passes have run.

Reimplemented in llvm::PassManagerTraits< BasicBlock >.

Definition at line 326 of file Pass.h.

Referenced by runOnFunction(), and runPass().

virtual bool llvm::BasicBlockPass::doInitialization Function F  )  [inline, virtual]
 

doInitialization - Virtual method overridden by BasicBlockPass subclasses to do any necessary per-function initialization.

Reimplemented in llvm::PassManagerTraits< BasicBlock >.

Definition at line 316 of file Pass.h.

virtual bool llvm::BasicBlockPass::doInitialization Module M  )  [inline, virtual]
 

doInitialization - Virtual method overridden by subclasses to do any necessary per-module initialization.

Reimplemented from llvm::FunctionPass.

Reimplemented in llvm::PassManagerTraits< BasicBlock >.

Definition at line 311 of file Pass.h.

Referenced by runOnFunction(), and runPass().

virtual bool llvm::BasicBlockPass::runOnBasicBlock BasicBlock BB  )  [pure virtual]
 

runOnBasicBlock - Virtual method overriden by subclasses to do the per-basicblock processing of the pass.

Implemented in llvm::PeepholeOpts, and llvm::PassManagerTraits< BasicBlock >.

Referenced by runOnFunction(), llvm::PassManagerTraits< BasicBlock >::runPass(), and runPass().

bool BasicBlockPass::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 282 of file Pass.cpp.

References llvm::Function::begin(), doFinalization(), doInitialization(), E, llvm::Function::end(), I, and runOnBasicBlock().

bool BasicBlockPass::runPass BasicBlock BB  ) 
 

To run directly on the basic block, we initialize, runOnBasicBlock, then finalize.

Definition at line 292 of file Pass.cpp.

References doFinalization(), doInitialization(), F, llvm::GlobalValue::getParent(), llvm::BasicBlock::getParent(), M, and runOnBasicBlock().


Friends And Related Function Documentation

friend class PassManagerT< BasicBlock > [friend]
 

Reimplemented from llvm::FunctionPass.

Definition at line 346 of file Pass.h.

friend class PassManagerT< Function > [friend]
 

Reimplemented from llvm::FunctionPass.

Definition at line 345 of file Pass.h.


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