LLVM
15.0.0git
|
#include "llvm/Transforms/Scalar/LoopPassManager.h"
Public Member Functions | |
PassManager ()=default | |
PassManager (PassManager &&Arg) | |
PassManager & | operator= (PassManager &&RHS) |
PreservedAnalyses | run (Loop &L, LoopAnalysisManager &AM, LoopStandardAnalysisResults &AR, LPMUpdater &U) |
Add either a loop pass or a loop-nest pass to the pass manager. More... | |
void | printPipeline (raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName) |
template<typename PassT > | |
LLVM_ATTRIBUTE_MINSIZE std::enable_if_t< is_detected< HasRunOnLoopT, PassT >::value > | addPass (PassT &&Pass) |
template<typename PassT > | |
LLVM_ATTRIBUTE_MINSIZE std::enable_if_t<!is_detected< HasRunOnLoopT, PassT >::value > | addPass (PassT &&Pass) |
template<typename PassT > | |
LLVM_ATTRIBUTE_MINSIZE std::enable_if_t< is_detected< HasRunOnLoopT, PassT >::value > | addPass (RepeatedPass< PassT > &&Pass) |
template<typename PassT > | |
LLVM_ATTRIBUTE_MINSIZE std::enable_if_t<!is_detected< HasRunOnLoopT, PassT >::value > | addPass (RepeatedPass< PassT > &&Pass) |
bool | isEmpty () const |
size_t | getNumLoopPasses () const |
size_t | getNumLoopNestPasses () const |
![]() | |
void | printPipeline (raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName) |
Static Public Member Functions | |
static bool | isRequired () |
![]() | |
static StringRef | name () |
Gets the name of the pass we are mixed into. More... | |
Protected Types | |
using | LoopPassConceptT = detail::PassConcept< Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & > |
using | LoopNestPassConceptT = detail::PassConcept< LoopNest, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & > |
Protected Member Functions | |
template<typename IRUnitT , typename PassT > | |
Optional< PreservedAnalyses > | runSinglePass (IRUnitT &IR, PassT &Pass, LoopAnalysisManager &AM, LoopStandardAnalysisResults &AR, LPMUpdater &U, PassInstrumentation &PI) |
Run either a loop pass or a loop-nest pass. More... | |
PreservedAnalyses | runWithLoopNestPasses (Loop &L, LoopAnalysisManager &AM, LoopStandardAnalysisResults &AR, LPMUpdater &U) |
PreservedAnalyses | runWithoutLoopNestPasses (Loop &L, LoopAnalysisManager &AM, LoopStandardAnalysisResults &AR, LPMUpdater &U) |
Protected Attributes | |
BitVector | IsLoopNestPass |
std::vector< std::unique_ptr< LoopPassConceptT > > | LoopPasses |
std::vector< std::unique_ptr< LoopNestPassConceptT > > | LoopNestPasses |
Definition at line 69 of file LoopPassManager.h.
protected |
Definition at line 179 of file LoopPassManager.h.
protected |
Definition at line 176 of file LoopPassManager.h.
|
explicitdefault |
|
inline |
Definition at line 81 of file LoopPassManager.h.
|
inline |
Definition at line 107 of file LoopPassManager.h.
Referenced by llvm::PassBuilder::buildFunctionSimplificationPipeline(), llvm::PassBuilder::buildLTODefaultPipeline(), llvm::PassBuilder::buildModuleOptimizationPipeline(), llvm::createFunctionToLoopPassAdaptor(), and llvm::HexagonTargetMachine::registerPassBuilderCallbacks().
|
inline |
Definition at line 121 of file LoopPassManager.h.
|
inline |
Definition at line 139 of file LoopPassManager.h.
References move.
|
inline |
Definition at line 154 of file LoopPassManager.h.
References move.
|
inline |
Definition at line 171 of file LoopPassManager.h.
|
inline |
Definition at line 170 of file LoopPassManager.h.
|
inline |
Definition at line 166 of file LoopPassManager.h.
Referenced by llvm::PassBuilder::buildO0DefaultPipeline().
|
inlinestatic |
Definition at line 168 of file LoopPassManager.h.
|
inline |
Definition at line 86 of file LoopPassManager.h.
void llvm::PassManager< Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & >::printPipeline | ( | raw_ostream & | OS, |
function_ref< StringRef(StringRef)> | MapClassName2PassName | ||
) |
Definition at line 47 of file LoopPassManager.cpp.
PreservedAnalyses llvm::PassManager< Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & >::run | ( | Loop & | L, |
LoopAnalysisManager & | AM, | ||
LoopStandardAnalysisResults & | AR, | ||
LPMUpdater & | U | ||
) |
Add either a loop pass or a loop-nest pass to the pass manager.
Explicitly specialize the pass manager's run method to handle loop nest structure updates.
Append Pass
to the list of loop passes if it has a dedicated loops and to the list of loop-nest passes if the
loop-nests instead. Also append whether Pass
is loop-nest pass or not to the end of
Definition at line 27 of file LoopPassManager.cpp.
References llvm::LoopBase< BlockT, LoopT >::isOutermost(), and llvm::PreservedAnalyses::preserveSet().
|
protected |
Run either a loop pass or a loop-nest pass.
Returns None
if PassInstrumentation's BeforePass returns false. Otherwise, returns the preserved analyses of the pass.
Definition at line 384 of file LoopPassManager.h.
References IR, llvm::None, Pass, and llvm::LPMUpdater::skipCurrentLoop().
|
protected |
Definition at line 68 of file LoopPassManager.cpp.
References llvm::PreservedAnalyses::all(), assert(), E, llvm::PreservedAnalyses::getChecker(), llvm::LoopNest::getLoopNest(), llvm::AnalysisManager< IRUnitT, ExtraArgTs >::getResult(), I, llvm::PreservedAnalyses::intersect(), llvm::AnalysisManager< IRUnitT, ExtraArgTs >::invalidate(), llvm::LoopBase< BlockT, LoopT >::isOutermost(), move, llvm::LoopStandardAnalysisResults::SE, llvm::LPMUpdater::setParentLoop(), and llvm::LPMUpdater::skipCurrentLoop().
|
protected |
Definition at line 142 of file LoopPassManager.cpp.
References llvm::PreservedAnalyses::all(), llvm::AnalysisManager< IRUnitT, ExtraArgTs >::getResult(), llvm::PreservedAnalyses::intersect(), llvm::AnalysisManager< IRUnitT, ExtraArgTs >::invalidate(), move, llvm::LPMUpdater::setParentLoop(), and llvm::LPMUpdater::skipCurrentLoop().
|
protected |
Definition at line 183 of file LoopPassManager.h.
|
protected |
Definition at line 185 of file LoopPassManager.h.
|
protected |
Definition at line 184 of file LoopPassManager.h.