LLVM API Documentation

Public Member Functions
llvm::BasicBlockPass Class 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

 BasicBlockPass (char &pid)
PasscreatePrinterPass (raw_ostream &O, const std::string &Banner) const
 createPrinterPass - Get a basic block printer pass.
virtual bool doInitialization (Function &)
virtual bool runOnBasicBlock (BasicBlock &BB)=0
virtual bool doFinalization (Function &)
virtual void assignPassManager (PMStack &PMS, PassManagerType T)
virtual PassManagerType getPotentialPassManagerType () const
 Return what kind of Pass Manager can manage this pass.

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 FunctionPasses.

Definition at line 324 of file Pass.h.


Constructor & Destructor Documentation

llvm::BasicBlockPass::BasicBlockPass ( char &  pid) [inline, explicit]

Definition at line 326 of file Pass.h.


Member Function Documentation

void BasicBlockPass::assignPassManager ( PMStack PMS,
PassManagerType  PreferredType 
) [virtual]

Find appropriate Basic Pass Manager or Call Graph Pass Manager in the PM Stack and add self into that manager.

Reimplemented from llvm::Pass.

Definition at line 1877 of file PassManager.cpp.

References llvm::PMTopLevelManager::addIndirectPassManager(), llvm::PMStack::empty(), llvm::PMDataManager::getPassManagerType(), llvm::PMT_BasicBlockPassManager, llvm::PMStack::push(), and llvm::PMStack::top().

Pass * BasicBlockPass::createPrinterPass ( raw_ostream O,
const std::string &  Banner 
) const [virtual]

createPrinterPass - Get a basic block printer pass.

Implements llvm::Pass.

Definition at line 144 of file Pass.cpp.

References llvm::createPrintBasicBlockPass().

bool BasicBlockPass::doFinalization ( Function ) [virtual]

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

Definition at line 154 of file Pass.cpp.

bool BasicBlockPass::doInitialization ( Function ) [virtual]

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

Definition at line 149 of file Pass.cpp.

PassManagerType BasicBlockPass::getPotentialPassManagerType ( ) const [virtual]

Return what kind of Pass Manager can manage this pass.

Reimplemented from llvm::Pass.

Definition at line 159 of file Pass.cpp.

References llvm::PMT_BasicBlockPassManager.

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

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


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