LLVM 22.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.
References ForgetSCEV, OnlyWhenForced, and OptLevel.
Referenced by setFullUnrollMaxCount(), setOptLevel(), setPartial(), setPeeling(), setProfileBasedPeeling(), setRuntime(), and setUpperBound().
|
inline |
Definition at line 124 of file LoopUnrollPass.h.
References FullUnrollMaxCount, and LoopUnrollOptions().
|
inline |
Definition at line 112 of file LoopUnrollPass.h.
References LoopUnrollOptions(), and OptLevel.
|
inline |
Enables or disables partial unrolling.
When disabled only full unrolling is allowed.
Definition at line 87 of file LoopUnrollPass.h.
References AllowPartial, and LoopUnrollOptions().
|
inline |
Enables or disables loop peeling.
Definition at line 99 of file LoopUnrollPass.h.
References AllowPeeling, and LoopUnrollOptions().
|
inline |
Definition at line 118 of file LoopUnrollPass.h.
References AllowProfileBasedPeeling, and LoopUnrollOptions().
|
inline |
Enables or disables unrolling of loops with runtime trip count.
Definition at line 93 of file LoopUnrollPass.h.
References AllowRuntime, LoopUnrollOptions(), 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, and LoopUnrollOptions().
std::optional<bool> llvm::LoopUnrollOptions::AllowPartial |
Definition at line 62 of file LoopUnrollPass.h.
Referenced by setPartial().
std::optional<bool> llvm::LoopUnrollOptions::AllowPeeling |
Definition at line 63 of file LoopUnrollPass.h.
Referenced by setPeeling().
std::optional<bool> llvm::LoopUnrollOptions::AllowProfileBasedPeeling |
Definition at line 66 of file LoopUnrollPass.h.
Referenced by setProfileBasedPeeling().
std::optional<bool> llvm::LoopUnrollOptions::AllowRuntime |
Definition at line 64 of file LoopUnrollPass.h.
Referenced by setRuntime().
std::optional<bool> llvm::LoopUnrollOptions::AllowUpperBound |
Definition at line 65 of file LoopUnrollPass.h.
Referenced by 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 LoopUnrollOptions().
std::optional<unsigned> llvm::LoopUnrollOptions::FullUnrollMaxCount |
Definition at line 67 of file LoopUnrollPass.h.
Referenced by 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 LoopUnrollOptions().
int llvm::LoopUnrollOptions::OptLevel |
Definition at line 68 of file LoopUnrollPass.h.
Referenced by LoopUnrollOptions(), and setOptLevel().