LLVM 20.0.0git
|
A set of parameters used to control various transforms performed by the LoopUnroll pass. More...
#include "llvm/Transforms/Scalar/LoopUnrollPass.h"
Public Member Functions | |
LoopUnrollOptions (int OptLevel=2, bool OnlyWhenForced=false, bool ForgetSCEV=false) | |
LoopUnrollOptions & | setPartial (bool Partial) |
Enables or disables partial unrolling. | |
LoopUnrollOptions & | setRuntime (bool Runtime) |
Enables or disables unrolling of loops with runtime trip count. | |
LoopUnrollOptions & | setPeeling (bool Peeling) |
Enables or disables loop peeling. | |
LoopUnrollOptions & | setUpperBound (bool UpperBound) |
Enables or disables the use of trip count upper bound in loop unrolling. | |
LoopUnrollOptions & | setOptLevel (int O) |
LoopUnrollOptions & | setProfileBasedPeeling (int O) |
LoopUnrollOptions & | setFullUnrollMaxCount (unsigned O) |
Public Attributes | |
std::optional< bool > | AllowPartial |
std::optional< bool > | AllowPeeling |
std::optional< bool > | AllowRuntime |
std::optional< bool > | AllowUpperBound |
std::optional< bool > | AllowProfileBasedPeeling |
std::optional< unsigned > | FullUnrollMaxCount |
int | OptLevel |
bool | OnlyWhenForced |
If false, use a cost model to determine whether unrolling of a loop is profitable. | |
const bool | ForgetSCEV |
If true, forget all loops when unrolling. | |
A set of parameters used to control various transforms performed by the LoopUnroll pass.
Each of the boolean parameters can be set to: true - enabling the transformation. false - disabling the transformation. None - relying on a global default.
There is also OptLevel parameter, which is used for additional loop unroll tuning.
Intended use is to create a default object, modify parameters with additional setters and then pass it to LoopUnrollPass.
Definition at line 61 of file LoopUnrollPass.h.
|
inline |
Definition at line 80 of file LoopUnrollPass.h.
|
inline |
Definition at line 124 of file LoopUnrollPass.h.
References FullUnrollMaxCount.
|
inline |
Definition at line 112 of file LoopUnrollPass.h.
References OptLevel.
|
inline |
Enables or disables partial unrolling.
When disabled only full unrolling is allowed.
Definition at line 87 of file LoopUnrollPass.h.
References AllowPartial.
|
inline |
Enables or disables loop peeling.
Definition at line 99 of file LoopUnrollPass.h.
References AllowPeeling.
|
inline |
Definition at line 118 of file LoopUnrollPass.h.
References AllowProfileBasedPeeling.
|
inline |
Enables or disables unrolling of loops with runtime trip count.
Definition at line 93 of file LoopUnrollPass.h.
References AllowRuntime, and llvm::Runtime.
|
inline |
Enables or disables the use of trip count upper bound in loop unrolling.
Definition at line 106 of file LoopUnrollPass.h.
References AllowUpperBound.
std::optional<bool> llvm::LoopUnrollOptions::AllowPartial |
Definition at line 62 of file LoopUnrollPass.h.
Referenced by llvm::LoopUnrollPass::printPipeline(), llvm::LoopUnrollPass::run(), and setPartial().
std::optional<bool> llvm::LoopUnrollOptions::AllowPeeling |
Definition at line 63 of file LoopUnrollPass.h.
Referenced by llvm::LoopUnrollPass::printPipeline(), llvm::LoopUnrollPass::run(), and setPeeling().
std::optional<bool> llvm::LoopUnrollOptions::AllowProfileBasedPeeling |
Definition at line 66 of file LoopUnrollPass.h.
Referenced by llvm::LoopUnrollPass::printPipeline(), llvm::LoopUnrollPass::run(), and setProfileBasedPeeling().
std::optional<bool> llvm::LoopUnrollOptions::AllowRuntime |
Definition at line 64 of file LoopUnrollPass.h.
Referenced by llvm::LoopUnrollPass::printPipeline(), llvm::LoopUnrollPass::run(), and setRuntime().
std::optional<bool> llvm::LoopUnrollOptions::AllowUpperBound |
Definition at line 65 of file LoopUnrollPass.h.
Referenced by llvm::LoopUnrollPass::printPipeline(), llvm::LoopUnrollPass::run(), and setUpperBound().
If true, forget all loops when unrolling.
If false, forget top-most loop of the currently processed loops, which removes one entry at a time from the internal SCEV records. For large loops, the former is faster.
Definition at line 78 of file LoopUnrollPass.h.
Referenced by llvm::LoopUnrollPass::run().
std::optional<unsigned> llvm::LoopUnrollOptions::FullUnrollMaxCount |
Definition at line 67 of file LoopUnrollPass.h.
Referenced by llvm::LoopUnrollPass::printPipeline(), llvm::LoopUnrollPass::run(), and setFullUnrollMaxCount().
bool llvm::LoopUnrollOptions::OnlyWhenForced |
If false, use a cost model to determine whether unrolling of a loop is profitable.
If true, only loops that explicitly request unrolling via metadata are considered. All other loops are skipped.
Definition at line 73 of file LoopUnrollPass.h.
Referenced by llvm::LoopUnrollPass::run().
int llvm::LoopUnrollOptions::OptLevel |
Definition at line 68 of file LoopUnrollPass.h.
Referenced by llvm::LoopUnrollPass::printPipeline(), llvm::LoopUnrollPass::run(), and setOptLevel().