LLVM 18.0.0git
|
#include "llvm/Transforms/Scalar/LoopPassManager.h"
Static Public Member Functions | |
static bool | isRequired () |
![]() | |
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 69 of file LoopPassManager.h.
|
protected |
Definition at line 177 of file LoopPassManager.h.
|
protected |
Definition at line 174 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.
|
inline |
Definition at line 154 of file LoopPassManager.h.
|
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.
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().
|
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 397 of file LoopPassManager.h.
|
protected |
Definition at line 68 of file LoopPassManager.cpp.
References llvm::PreservedAnalyses::all(), assert(), E, 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 183 of file LoopPassManager.h.
|
protected |
Definition at line 185 of file LoopPassManager.h.
|
protected |
Definition at line 184 of file LoopPassManager.h.