struct LoopUnrollOptions
Declaration
struct LoopUnrollOptions { /* full declaration omitted */ };
Description
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.
Declared at: llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h:61
Member Variables
- public Optional<bool> AllowPartial
- public Optional<bool> AllowPeeling
- public Optional<bool> AllowRuntime
- public Optional<bool> AllowUpperBound
- public Optional<bool> AllowProfileBasedPeeling
- public Optional<unsigned int> FullUnrollMaxCount
- public int OptLevel
- public bool 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.
- public const bool ForgetSCEV
- 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.
Method Overview
- public LoopUnrollOptions(int OptLevel = 2, bool OnlyWhenForced = false, bool ForgetSCEV = false)
- public llvm::LoopUnrollOptions & setFullUnrollMaxCount(unsigned int O)
- public llvm::LoopUnrollOptions & setOptLevel(int O)
- public llvm::LoopUnrollOptions & setPartial(bool Partial)
- public llvm::LoopUnrollOptions & setPeeling(bool Peeling)
- public llvm::LoopUnrollOptions & setProfileBasedPeeling(int O)
- public llvm::LoopUnrollOptions & setRuntime(bool Runtime)
- public llvm::LoopUnrollOptions & setUpperBound(bool UpperBound)
Methods
¶LoopUnrollOptions(int OptLevel = 2,
bool OnlyWhenForced = false,
bool ForgetSCEV = false)
LoopUnrollOptions(int OptLevel = 2,
bool OnlyWhenForced = false,
bool ForgetSCEV = false)
Declared at: llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h:80
Parameters
- int OptLevel = 2
- bool OnlyWhenForced = false
- bool ForgetSCEV = false
¶llvm::LoopUnrollOptions& setFullUnrollMaxCount(
unsigned int O)
llvm::LoopUnrollOptions& setFullUnrollMaxCount(
unsigned int O)
Declared at: llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h:124
Parameters
- unsigned int O
¶llvm::LoopUnrollOptions& setOptLevel(int O)
llvm::LoopUnrollOptions& setOptLevel(int O)
Declared at: llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h:112
Parameters
- int O
¶llvm::LoopUnrollOptions& setPartial(bool Partial)
llvm::LoopUnrollOptions& setPartial(bool Partial)
Description
Enables or disables partial unrolling. When disabled only full unrolling is allowed.
Declared at: llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h:87
Parameters
- bool Partial
¶llvm::LoopUnrollOptions& setPeeling(bool Peeling)
llvm::LoopUnrollOptions& setPeeling(bool Peeling)
Description
Enables or disables loop peeling.
Declared at: llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h:99
Parameters
- bool Peeling
¶llvm::LoopUnrollOptions& setProfileBasedPeeling(
int O)
llvm::LoopUnrollOptions& setProfileBasedPeeling(
int O)
Declared at: llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h:118
Parameters
- int O
¶llvm::LoopUnrollOptions& setRuntime(bool Runtime)
llvm::LoopUnrollOptions& setRuntime(bool Runtime)
Description
Enables or disables unrolling of loops with runtime trip count.
Declared at: llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h:93
Parameters
- bool Runtime
¶llvm::LoopUnrollOptions& setUpperBound(
bool UpperBound)
llvm::LoopUnrollOptions& setUpperBound(
bool UpperBound)
Description
Enables or disables the use of trip count upper bound in loop unrolling.
Declared at: llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h:106
Parameters
- bool UpperBound