|
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().