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

 BasicBlockPass (intptr_t pid)
 BasicBlockPass (const void *pid)
virtual bool doInitialization (Module &)
virtual bool doInitialization (Function &)
virtual bool runOnBasicBlock (BasicBlock &BB)=0
virtual bool doFinalization (Function &)
virtual bool doFinalization (Module &)
bool runOnFunction (Function &F)
virtual void assignPassManager (PMStack &PMS, PassManagerType T=PMT_BasicBlockPassManager)
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 326 of file Pass.h.


Constructor & Destructor Documentation

llvm::BasicBlockPass::BasicBlockPass ( intptr_t  pid  )  [inline, explicit]

Definition at line 328 of file Pass.h.

llvm::BasicBlockPass::BasicBlockPass ( const void *  pid  )  [inline, explicit]

Definition at line 329 of file Pass.h.


Member Function Documentation

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

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

Definition at line 334 of file Pass.h.

Referenced by runOnFunction().

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

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

Definition at line 339 of file Pass.h.

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

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

Referenced by runOnFunction().

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

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

Definition at line 349 of file Pass.h.

Referenced by runOnFunction().

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

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

Definition at line 354 of file Pass.h.

bool BasicBlockPass::runOnFunction ( Function F  ) 

void BasicBlockPass::assignPassManager ( PMStack PMS,
PassManagerType  PreferredType = PMT_BasicBlockPassManager 
) [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 1642 of file PassManager.cpp.

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

virtual PassManagerType llvm::BasicBlockPass::getPotentialPassManagerType (  )  const [inline, virtual]

Return what kind of Pass Manager can manage this pass.

Reimplemented from llvm::Pass.

Definition at line 366 of file Pass.h.

References llvm::PMT_BasicBlockPassManager.


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



This web site is hosted by the Computer Science Department at the University of Illinois at Urbana-Champaign.