16 #ifndef LLVM_ANALYSIS_REGIONPASS_H
17 #define LLVM_ANALYSIS_REGIONPASS_H
84 std::deque<Region*> RQ;
104 return "Region Pass Manager";
115 assert(N <
PassVector.size() &&
"Pass number out of range!");
void getAnalysisUsage(AnalysisUsage &Info) const
Pass Manager itself does not invalidate any analysis info.
The pass manager to schedule RegionPasses.
virtual bool doInitialization(Region *R, RGPassManager &RGM)
virtual bool doFinalization(Module &)
virtual PassManagerType getPotentialPassManagerType() const
Return what kind of Pass Manager can manage this pass.
virtual void assignPassManager(PMStack &PMS, PassManagerType PMT=PMT_RegionPassManager)
Assign pass manager to manage this pass.
virtual const char * getPassName() const
virtual bool doFinalization()
virtual bool doInitialization(Module &)
A pass that runs on each Region in a function.
virtual PassManagerType getPassManagerType() const
A single entry single exit Region.
Pass * getContainedPass(unsigned N)
Get passes contained by this manager.
void dumpPassStructure(unsigned Offset)
Print passes managed by this manager.
virtual Pass * getAsPass()
virtual PMDataManager * getAsPMDataManager()
bool runOnFunction(Function &F)
Execute all of the passes scheduled for execution.
SmallVector< Pass *, 16 > PassVector
virtual bool runOnRegion(Region *R, RGPassManager &RGM)=0
Run the pass on a specific Region.
Pass * createPrinterPass(raw_ostream &O, const std::string &Banner) const
Get a pass to print the LLVM IR in the region.
void preparePassManager(PMStack &PMS)
Check if available pass managers are suitable for this pass or not.
Analysis that detects all canonical Regions.