LLVM API Documentation

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

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)
virtual bool runPass (Module &M)
virtual bool runPass (BasicBlock &BB)

Friends

class PassManagerT
class FunctionPassManagerT
class BasicBlockPassManager

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 314 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::BasicBlockPassManager.

Definition at line 339 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::BasicBlockPassManager.

Definition at line 334 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::BasicBlockPassManager.

Definition at line 324 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::BasicBlockPassManager.

Definition at line 319 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::BasicBlockPassManager.

Referenced by runOnFunction(), llvm::BasicBlockPassManager::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 284 of file Pass.cpp.

References Changed, doFinalization(), doInitialization(), E, F, I, and runOnBasicBlock().

bool BasicBlockPass::runPass ( BasicBlock BB  )  [virtual]

Reimplemented from llvm::ModulePass.

Definition at line 294 of file Pass.cpp.

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

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

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

Reimplemented from llvm::ModulePass.

Definition at line 350 of file Pass.h.


Friends And Related Function Documentation

friend class BasicBlockPassManager [friend]

Reimplemented from llvm::FunctionPass.

Definition at line 356 of file Pass.h.

friend class FunctionPassManagerT [friend]

Reimplemented from llvm::FunctionPass.

Definition at line 355 of file Pass.h.

friend class PassManagerT [friend]

Reimplemented from llvm::FunctionPass.

Definition at line 354 of file Pass.h.


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