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

Methods

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)

Declared at: llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h:124

Parameters

unsigned 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)

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)

Description

Enables or disables loop peeling.

Declared at: llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h:99

Parameters

bool Peeling

llvm::LoopUnrollOptions& setProfileBasedPeeling(
    int O)

Declared at: llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h:118

Parameters

int O

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)

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