LLVM 20.0.0git
|
Loop unroll pass that will support both full and partial unrolling. More...
#include "llvm/Transforms/Scalar/LoopUnrollPass.h"
Public Member Functions | |
LoopUnrollPass (LoopUnrollOptions UnrollOpts={}) | |
This uses the target information (or flags) to control the thresholds for different unrolling stategies but supports all of them. | |
PreservedAnalyses | run (Function &F, FunctionAnalysisManager &AM) |
void | printPipeline (raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName) |
Public Member Functions inherited from llvm::PassInfoMixin< LoopUnrollPass > | |
void | printPipeline (raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName) |
Additional Inherited Members | |
Static Public Member Functions inherited from llvm::PassInfoMixin< LoopUnrollPass > | |
static StringRef | name () |
Gets the name of the pass we are mixed into. | |
Loop unroll pass that will support both full and partial unrolling.
It is a function pass to have access to function and module analyses. It will also put loops into canonical form (simplified and LCSSA).
Definition at line 133 of file LoopUnrollPass.h.
|
inlineexplicit |
This uses the target information (or flags) to control the thresholds for different unrolling stategies but supports all of them.
Definition at line 139 of file LoopUnrollPass.h.
void LoopUnrollPass::printPipeline | ( | raw_ostream & | OS, |
function_ref< StringRef(StringRef)> | MapClassName2PassName | ||
) |
Definition at line 1678 of file LoopUnrollPass.cpp.
References llvm::LoopUnrollOptions::AllowPartial, llvm::LoopUnrollOptions::AllowPeeling, llvm::LoopUnrollOptions::AllowProfileBasedPeeling, llvm::LoopUnrollOptions::AllowRuntime, llvm::LoopUnrollOptions::AllowUpperBound, llvm::LoopUnrollOptions::FullUnrollMaxCount, llvm::LoopUnrollOptions::OptLevel, OS, and printPipeline().
Referenced by printPipeline().
PreservedAnalyses LoopUnrollPass::run | ( | Function & | F, |
FunctionAnalysisManager & | AM | ||
) |
Definition at line 1589 of file LoopUnrollPass.cpp.
References llvm::PreservedAnalyses::all(), llvm::LoopUnrollOptions::AllowPartial, llvm::LoopUnrollOptions::AllowPeeling, llvm::LoopUnrollOptions::AllowProfileBasedPeeling, llvm::LoopUnrollOptions::AllowRuntime, llvm::LoopUnrollOptions::AllowUpperBound, llvm::appendLoopsToWorklist(), llvm::AnalysisManager< IRUnitT, ExtraArgTs >::clear(), llvm::PriorityWorklist< T, VectorT, MapT >::empty(), llvm::LoopInfoBase< BlockT, LoopT >::empty(), F, llvm::LoopUnrollOptions::ForgetSCEV, llvm::formLCSSARecursively(), llvm::LoopUnrollOptions::FullUnrollMaxCount, llvm::FullyUnrolled, llvm::AnalysisManager< IRUnitT, ExtraArgTs >::getCachedResult(), llvm::getLoopPassPreservedAnalyses(), llvm::AnalysisManager< IRUnitT, ExtraArgTs >::getResult(), LAM, llvm::LoopUnrollOptions::OnlyWhenForced, llvm::LoopUnrollOptions::OptLevel, llvm::PriorityWorklist< T, VectorT, MapT >::pop_back_val(), llvm::simplifyLoop(), tryToUnrollLoop(), llvm::Unmodified, and llvm::LoopBase< BlockT, LoopT >::verifyLoop().