LLVM API Documentation
#include <LoopPass.h>
Public Member Functions | |
LPPassManager () | |
bool | runOnFunction (Function &F) override |
void | getAnalysisUsage (AnalysisUsage &Info) const override |
Pass Manager itself does not invalidate any analysis info. | |
const char * | getPassName () const override |
PMDataManager * | getAsPMDataManager () override |
Pass * | getAsPass () override |
void | dumpPassStructure (unsigned Offset) override |
Print passes managed by this manager. | |
LoopPass * | getContainedPass (unsigned N) |
PassManagerType | getPassManagerType () const override |
void | deleteLoopFromQueue (Loop *L) |
Delete loop from the loop queue and loop hierarchy (LoopInfo). | |
void | insertLoop (Loop *L, Loop *ParentLoop) |
void | insertLoopIntoQueue (Loop *L) |
void | redoLoop (Loop *L) |
void | cloneBasicBlockSimpleAnalysis (BasicBlock *From, BasicBlock *To, Loop *L) |
void | deleteSimpleAnalysisValue (Value *V, Loop *L) |
deleteSimpleAnalysisValue - Invoke deleteAnalysisValue hook for all passes. | |
Static Public Attributes | |
static char | ID = 0 |
Definition at line 91 of file LoopPass.h.
LPPassManager::LPPassManager | ( | ) | [explicit] |
Definition at line 66 of file LoopPass.cpp.
void LPPassManager::cloneBasicBlockSimpleAnalysis | ( | BasicBlock * | From, |
BasicBlock * | To, | ||
Loop * | L | ||
) |
SimpleAnalysis - Provides simple interface to update analysis info maintained by various passes. Note, if required this interface can be extracted into a separate abstract class but it would require additional use of multiple inheritance in Pass class hierarchy, something we are trying to avoid. cloneBasicBlockSimpleAnalysis - Invoke cloneBasicBlockAnalysis hook for all passes that implement simple analysis interface.
cloneBasicBlockSimpleAnalysis - Invoke cloneBasicBlockAnalysis hook for all loop passes.
Definition at line 144 of file LoopPass.cpp.
References llvm::LoopPass::cloneBasicBlockAnalysis(), getContainedPass(), and llvm::PMDataManager::getNumContainedPasses().
void LPPassManager::deleteLoopFromQueue | ( | Loop * | L | ) |
Delete loop from the loop queue and loop hierarchy (LoopInfo).
Definition at line 75 of file LoopPass.cpp.
References I, and llvm::LoopInfo::updateUnloop().
Referenced by llvm::UnrollLoop().
void LPPassManager::deleteSimpleAnalysisValue | ( | Value * | V, |
Loop * | L | ||
) |
deleteSimpleAnalysisValue - Invoke deleteAnalysisValue hook for all passes.
deleteSimpleAnalysisValue - Invoke deleteAnalysisValue hook for all passes that implement simple analysis interface.
Definition at line 153 of file LoopPass.cpp.
References llvm::LoopPass::deleteAnalysisValue(), getContainedPass(), llvm::PMDataManager::getNumContainedPasses(), and I.
Referenced by ReplaceUsesOfWith().
void LPPassManager::dumpPassStructure | ( | unsigned | Offset | ) | [override, virtual] |
Print passes managed by this manager.
Reimplemented from llvm::Pass.
Definition at line 302 of file LoopPass.cpp.
References llvm::PMDataManager::dumpLastUses(), llvm::Pass::dumpPassStructure(), llvm::errs(), getContainedPass(), llvm::PMDataManager::getNumContainedPasses(), llvm::raw_ostream::indent(), and P.
void LPPassManager::getAnalysisUsage | ( | AnalysisUsage & | Info | ) | const [override, virtual] |
Pass Manager itself does not invalidate any analysis info.
Reimplemented from llvm::Pass.
Definition at line 176 of file LoopPass.cpp.
References llvm::AnalysisUsage::addRequired(), and llvm::AnalysisUsage::setPreservesAll().
Pass* llvm::LPPassManager::getAsPass | ( | ) | [inline, override, virtual] |
Implements llvm::PMDataManager.
Definition at line 109 of file LoopPass.h.
Referenced by llvm::LoopPass::assignPassManager(), and llvm::UnrollRuntimeLoopProlog().
PMDataManager* llvm::LPPassManager::getAsPMDataManager | ( | ) | [inline, override, virtual] |
Reimplemented from llvm::Pass.
Definition at line 108 of file LoopPass.h.
LoopPass* llvm::LPPassManager::getContainedPass | ( | unsigned | N | ) | [inline] |
Definition at line 114 of file LoopPass.h.
References llvm::PMDataManager::PassVector, and llvm::SmallVectorTemplateCommon< T, typename >::size().
Referenced by cloneBasicBlockSimpleAnalysis(), deleteSimpleAnalysisValue(), dumpPassStructure(), and runOnFunction().
PassManagerType llvm::LPPassManager::getPassManagerType | ( | ) | const [inline, override, virtual] |
Reimplemented from llvm::PMDataManager.
Definition at line 120 of file LoopPass.h.
References llvm::PMT_LoopPassManager.
const char* llvm::LPPassManager::getPassName | ( | ) | const [inline, override, virtual] |
getPassName - Return a nice clean name for a pass. This usually implemented in terms of the name that is registered by one of the Registration templates, but can be overloaded directly.
Reimplemented from llvm::Pass.
Definition at line 104 of file LoopPass.h.
void LPPassManager::insertLoop | ( | Loop * | L, |
Loop * | ParentLoop | ||
) |
Definition at line 100 of file LoopPass.cpp.
References llvm::LoopBase< BlockT, LoopT >::addChildLoop(), llvm::LoopInfo::addTopLevelLoop(), and insertLoopIntoQueue().
Referenced by CloneLoop().
void LPPassManager::insertLoopIntoQueue | ( | Loop * | L | ) |
Definition at line 113 of file LoopPass.cpp.
References llvm::LoopBase< BlockT, LoopT >::getParentLoop(), I, and redoLoop().
Referenced by insertLoop().
void LPPassManager::redoLoop | ( | Loop * | L | ) |
Definition at line 137 of file LoopPass.cpp.
Referenced by insertLoopIntoQueue().
bool LPPassManager::runOnFunction | ( | Function & | F | ) | [override, virtual] |
run - Execute all of the passes scheduled for execution. Keep track of whether any of the passes modifies the module, and if so, return true.
run - Execute all of the passes scheduled for execution. Keep track of whether any of the passes modifies the function, and if so, return true.
Implements llvm::FunctionPass.
Definition at line 185 of file LoopPass.cpp.
References llvm::PMTopLevelManager::activeStack, addLoopIntoQueue(), llvm::LoopPass::doFinalization(), llvm::LoopPass::doInitialization(), llvm::PMDataManager::dumpPassInfo(), llvm::PMDataManager::dumpPreservedSet(), llvm::PMDataManager::dumpRequiredSet(), llvm::EXECUTION_MSG, llvm::PMDataManager::freePass(), getContainedPass(), llvm::Function::getContext(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::Value::getName(), llvm::PMDataManager::getNumContainedPasses(), llvm::getPassTimer(), I, llvm::PMDataManager::initializeAnalysisImpl(), llvm::MODIFICATION_MSG, llvm::ON_LOOP_MSG, P, llvm::PMDataManager::populateInheritedAnalysis(), llvm::LoopInfo::rbegin(), llvm::PMDataManager::recordAvailableAnalysis(), llvm::PMDataManager::removeDeadPasses(), llvm::PMDataManager::removeNotPreservedAnalysis(), llvm::LoopInfo::rend(), llvm::LoopPass::runOnLoop(), llvm::PMDataManager::TPM, llvm::LoopBase< BlockT, LoopT >::verifyLoop(), llvm::PMDataManager::verifyPreservedAnalysis(), llvm::X, and llvm::LLVMContext::yield().
char LPPassManager::ID = 0 [static] |
Definition at line 93 of file LoopPass.h.