LLVM 20.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. | |
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) |
bool | isEmpty () const |
size_t | getNumLoopPasses () const |
size_t | getNumLoopNestPasses () const |
Public Member Functions inherited from llvm::PassInfoMixin< PassManager< Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & > > | |
void | printPipeline (raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName) |
Static Public Member Functions | |
static bool | isRequired () |
Static Public Member Functions inherited from llvm::PassInfoMixin< PassManager< Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & > > | |
static StringRef | name () |
Gets the name of the pass we are mixed into. | |
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 > | |
std::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. | |
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 70 of file LoopPassManager.h.
|
protected |
Definition at line 144 of file LoopPassManager.h.
|
protected |
Definition at line 141 of file LoopPassManager.h.
|
explicitdefault |
|
inline |
Definition at line 82 of file LoopPassManager.h.
|
inline |
Definition at line 108 of file LoopPassManager.h.
Referenced by llvm::PassBuilder::buildFunctionSimplificationPipeline(), llvm::PassBuilder::buildLTODefaultPipeline(), llvm::PassBuilder::buildModuleOptimizationPipeline(), llvm::createFunctionToLoopPassAdaptor(), llvm::AArch64TargetMachine::registerPassBuilderCallbacks(), llvm::HexagonTargetMachine::registerPassBuilderCallbacks(), and llvm::RISCVTargetMachine::registerPassBuilderCallbacks().
|
inline |
Definition at line 122 of file LoopPassManager.h.
|
inline |
Definition at line 138 of file LoopPassManager.h.
|
inline |
Definition at line 137 of file LoopPassManager.h.
|
inline |
Definition at line 133 of file LoopPassManager.h.
Referenced by llvm::PassBuilder::buildO0DefaultPipeline().
|
inlinestatic |
Definition at line 135 of file LoopPassManager.h.
|
inline |
Definition at line 87 of file LoopPassManager.h.
References RHS.
void llvm::PassManager< Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & >::printPipeline | ( | raw_ostream & | OS, |
function_ref< StringRef(StringRef)> | MapClassName2PassName | ||
) |
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.
loop-nests instead.
Append Pass
to the list of loop passes if it has a dedicated loops and to the list of loop-nest passes if the
Also append whether Pass
is loop-nest pass or not to the end of
Definition at line 27 of file LoopPassManager.cpp.
References llvm::PreservedAnalyses::preserveSet().
Referenced by llvm::ExtraSimpleLoopUnswitchPassManager::run().
|
protected |
Run either a loop pass or a loop-nest pass.
Returns std::nullopt
if PassInstrumentation's BeforePass returns false. Otherwise, returns the preserved analyses of the pass.
Definition at line 364 of file LoopPassManager.h.
|
protected |
Definition at line 68 of file LoopPassManager.cpp.
References llvm::PreservedAnalyses::all(), assert(), llvm::LoopNest::getLoopNest(), llvm::LoopBase< BlockT, LoopT >::getParentLoop(), llvm::AnalysisManager< IRUnitT, ExtraArgTs >::getResult(), I, llvm::PreservedAnalyses::intersect(), llvm::AnalysisManager< IRUnitT, ExtraArgTs >::invalidate(), and llvm::LoopStandardAnalysisResults::SE.
|
protected |
Definition at line 151 of file LoopPassManager.cpp.
References llvm::PreservedAnalyses::all(), llvm::AnalysisManager< IRUnitT, ExtraArgTs >::getResult(), llvm::PreservedAnalyses::intersect(), and llvm::AnalysisManager< IRUnitT, ExtraArgTs >::invalidate().
|
protected |
Definition at line 150 of file LoopPassManager.h.
|
protected |
Definition at line 152 of file LoopPassManager.h.
|
protected |
Definition at line 151 of file LoopPassManager.h.