44 class AnalysisResolver;
90 explicit Pass(
PassKind K,
char &pid) : Resolver(0), PassID(&pid), Kind(K) { }
130 const std::string &Banner)
const = 0;
201 template<
typename AnalysisType> AnalysisType *
216 template<
typename AnalysisType>
219 template<
typename AnalysisType>
222 template<
typename AnalysisType>
225 template<
typename AnalysisType>
virtual Pass * createPrinterPass(raw_ostream &O, const std::string &Banner) const =0
virtual PMDataManager * getAsPMDataManager()
virtual void dumpPassStructure(unsigned Offset=0)
virtual bool runOnModule(Module &M)=0
AnalysisType & getAnalysisID(AnalysisID PI) const
The main container class for the LLVM Intermediate Representation.
AnalysisID getPassID() const
getPassID - Return the PassID number that corresponds to this pass.
virtual void releaseMemory()
virtual void verifyAnalysis() const
virtual void getAnalysisUsage(AnalysisUsage &) const
virtual bool doInitialization(Function &)
virtual const char * getPassName() const
Pass * createPrinterPass(raw_ostream &O, const std::string &Banner) const
createPrinterPass - Get a module printer pass.
virtual void preparePassManager(PMStack &)
Check if available pass managers are suitable for this pass or not.
virtual void initializePass()
void setResolver(AnalysisResolver *AR)
virtual ImmutablePass * getAsImmutablePass()
AnalysisType * getAnalysisIfAvailable() const
virtual bool doFinalization(Module &)
bool mustPreserveAnalysisID(char &AID) const
virtual PassManagerType getPotentialPassManagerType() const
Return what kind of Pass Manager can manage this pass.
ID
LLVM Calling Convention Representation.
PassKind getPassKind() const
virtual bool doFinalization(Function &)
virtual ImmutablePass * getAsImmutablePass()
static const PassInfo * lookupPassInfo(const void *TI)
virtual bool doInitialization(Module &)
LLVM Basic Block Representation.
AnalysisResolver * getResolver() const
virtual void assignPassManager(PMStack &PMS, PassManagerType T)
Pass * createPrinterPass(raw_ostream &O, const std::string &Banner) const
createPrinterPass - Get a basic block printer pass.
virtual PassManagerType getPotentialPassManagerType() const
Return what kind of Pass Manager can manage this pass.
AnalysisType & getAnalysis() const
bool runOnModule(Module &)
#define LLVM_DELETED_FUNCTION
Pass(PassKind K, char &pid)
BasicBlockPass(char &pid)
virtual void assignPassManager(PMStack &PMS, PassManagerType T)
virtual void assignPassManager(PMStack &PMS, PassManagerType T)
static Pass * createPass(AnalysisID ID)
virtual PassManagerType getPotentialPassManagerType() const
Return what kind of Pass Manager can manage this pass.
virtual bool runOnFunction(Function &F)=0
virtual bool runOnBasicBlock(BasicBlock &BB)=0
virtual void * getAdjustedAnalysisPointer(AnalysisID ID)
virtual void print(raw_ostream &O, const Module *M) const
bool TimePassesIsEnabled
This is the storage for the -time-passes option.
Pass * createPrinterPass(raw_ostream &O, const std::string &Banner) const
createPrinterPass - Get a function printer pass.
virtual PassManagerType getPotentialPassManagerType() const
Return what kind of Pass Manager can manage this pass.
virtual void assignPassManager(PMStack &, PassManagerType)