LLVM  8.0.1
Public Member Functions | Public Attributes | List of all members
llvm::LoopUnrollOptions Struct Reference

A set of parameters used to control various transforms performed by the LoopUnroll pass. More...

#include "llvm/Transforms/Scalar/LoopUnrollPass.h"

Collaboration diagram for llvm::LoopUnrollOptions:
Collaboration graph
[legend]

Public Member Functions

 LoopUnrollOptions (int OptLevel=2, bool OnlyWhenForced=false)
 
LoopUnrollOptionssetPartial (bool Partial)
 Enables or disables partial unrolling. More...
 
LoopUnrollOptionssetRuntime (bool Runtime)
 Enables or disables unrolling of loops with runtime trip count. More...
 
LoopUnrollOptionssetPeeling (bool Peeling)
 Enables or disables loop peeling. More...
 
LoopUnrollOptionssetUpperBound (bool UpperBound)
 Enables or disables the use of trip count upper bound in loop unrolling. More...
 
LoopUnrollOptionssetOptLevel (int O)
 

Public Attributes

Optional< boolAllowPartial
 
Optional< boolAllowPeeling
 
Optional< boolAllowRuntime
 
Optional< boolAllowUpperBound
 
int OptLevel
 
bool OnlyWhenForced
 If false, use a cost model to determine whether unrolling of a loop is profitable. More...
 

Detailed 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.

Definition at line 52 of file LoopUnrollPass.h.

Constructor & Destructor Documentation

◆ LoopUnrollOptions()

llvm::LoopUnrollOptions::LoopUnrollOptions ( int  OptLevel = 2,
bool  OnlyWhenForced = false 
)
inline

Definition at line 64 of file LoopUnrollPass.h.

Member Function Documentation

◆ setOptLevel()

LoopUnrollOptions& llvm::LoopUnrollOptions::setOptLevel ( int  O)
inline

Definition at line 94 of file LoopUnrollPass.h.

References llvm::RISCVFenceField::O.

Referenced by checkParametrizedPassName().

◆ setPartial()

LoopUnrollOptions& llvm::LoopUnrollOptions::setPartial ( bool  Partial)
inline

Enables or disables partial unrolling.

When disabled only full unrolling is allowed.

Definition at line 69 of file LoopUnrollPass.h.

Referenced by checkParametrizedPassName().

◆ setPeeling()

LoopUnrollOptions& llvm::LoopUnrollOptions::setPeeling ( bool  Peeling)
inline

Enables or disables loop peeling.

Definition at line 81 of file LoopUnrollPass.h.

Referenced by checkParametrizedPassName().

◆ setRuntime()

LoopUnrollOptions& llvm::LoopUnrollOptions::setRuntime ( bool  Runtime)
inline

Enables or disables unrolling of loops with runtime trip count.

Definition at line 75 of file LoopUnrollPass.h.

Referenced by checkParametrizedPassName().

◆ setUpperBound()

LoopUnrollOptions& llvm::LoopUnrollOptions::setUpperBound ( bool  UpperBound)
inline

Enables or disables the use of trip count upper bound in loop unrolling.

Definition at line 88 of file LoopUnrollPass.h.

Referenced by checkParametrizedPassName().

Member Data Documentation

◆ AllowPartial

Optional<bool> llvm::LoopUnrollOptions::AllowPartial

Definition at line 53 of file LoopUnrollPass.h.

◆ AllowPeeling

Optional<bool> llvm::LoopUnrollOptions::AllowPeeling

Definition at line 54 of file LoopUnrollPass.h.

◆ AllowRuntime

Optional<bool> llvm::LoopUnrollOptions::AllowRuntime

Definition at line 55 of file LoopUnrollPass.h.

◆ AllowUpperBound

Optional<bool> llvm::LoopUnrollOptions::AllowUpperBound

Definition at line 56 of file LoopUnrollPass.h.

◆ OnlyWhenForced

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 62 of file LoopUnrollPass.h.

◆ OptLevel

int llvm::LoopUnrollOptions::OptLevel

Definition at line 57 of file LoopUnrollPass.h.


The documentation for this struct was generated from the following file: