LLVM  3.7.0
Public Attributes | List of all members
llvm::TargetTransformInfo::UnrollingPreferences Struct Reference

Parameters that control the generic loop unrolling transformation. More...

#include <TargetTransformInfo.h>

Collaboration diagram for llvm::TargetTransformInfo::UnrollingPreferences:
[legend]

Public Attributes

unsigned Threshold
 The cost threshold for the unrolled loop. More...
 
unsigned PercentDynamicCostSavedThreshold
 If complete unrolling will reduce the cost of the loop below its expected dynamic cost while rolled by this percentage, apply a discount (below) to its unrolled cost. More...
 
unsigned DynamicCostSavingsDiscount
 The discount applied to the unrolled cost when the dynamic cost savings of unrolling exceed the PercentDynamicCostSavedThreshold. More...
 
unsigned OptSizeThreshold
 The cost threshold for the unrolled loop when optimizing for size (set to UINT_MAX to disable). More...
 
unsigned PartialThreshold
 The cost threshold for the unrolled loop, like Threshold, but used for partial/runtime unrolling (set to UINT_MAX to disable). More...
 
unsigned PartialOptSizeThreshold
 The cost threshold for the unrolled loop when optimizing for size, like OptSizeThreshold, but used for partial/runtime unrolling (set to UINT_MAX to disable). More...
 
unsigned Count
 A forced unrolling factor (the number of concatenated bodies of the original loop in the unrolled loop body). More...
 
unsigned MaxCount
 
bool Partial
 Allow partial unrolling (unrolling of loops to expand the size of the loop body, not only to eliminate small constant-trip-count loops). More...
 
bool Runtime
 Allow runtime unrolling (unrolling of loops to expand the size of the loop body even when the number of loop iterations is not known at compile time). More...
 
bool AllowExpensiveTripCount
 Allow emitting expensive instructions (such as divisions) when computing the trip count of a loop for runtime unrolling. More...
 

Detailed Description

Parameters that control the generic loop unrolling transformation.

Definition at line 223 of file TargetTransformInfo.h.

Member Data Documentation

bool llvm::TargetTransformInfo::UnrollingPreferences::AllowExpensiveTripCount

Allow emitting expensive instructions (such as divisions) when computing the trip count of a loop for runtime unrolling.

Definition at line 268 of file TargetTransformInfo.h.

Referenced by llvm::PPCTTIImpl::getUnrollingPreferences().

unsigned llvm::TargetTransformInfo::UnrollingPreferences::Count

A forced unrolling factor (the number of concatenated bodies of the original loop in the unrolled loop body).

When set to 0, the unrolling transformation will select an unrolling factor based on the current cost threshold and other factors.

Definition at line 253 of file TargetTransformInfo.h.

unsigned llvm::TargetTransformInfo::UnrollingPreferences::DynamicCostSavingsDiscount

The discount applied to the unrolled cost when the dynamic cost savings of unrolling exceed the PercentDynamicCostSavedThreshold.

Definition at line 238 of file TargetTransformInfo.h.

unsigned llvm::TargetTransformInfo::UnrollingPreferences::MaxCount

Definition at line 258 of file TargetTransformInfo.h.

Referenced by llvm::AMDGPUTTIImpl::getUnrollingPreferences().

unsigned llvm::TargetTransformInfo::UnrollingPreferences::OptSizeThreshold

The cost threshold for the unrolled loop when optimizing for size (set to UINT_MAX to disable).

Definition at line 241 of file TargetTransformInfo.h.

bool llvm::TargetTransformInfo::UnrollingPreferences::Partial

Allow partial unrolling (unrolling of loops to expand the size of the loop body, not only to eliminate small constant-trip-count loops).

Definition at line 261 of file TargetTransformInfo.h.

Referenced by llvm::AMDGPUTTIImpl::getUnrollingPreferences(), llvm::NVPTXTTIImpl::getUnrollingPreferences(), llvm::PPCTTIImpl::getUnrollingPreferences(), and llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getUnrollingPreferences().

unsigned llvm::TargetTransformInfo::UnrollingPreferences::PartialOptSizeThreshold

The cost threshold for the unrolled loop when optimizing for size, like OptSizeThreshold, but used for partial/runtime unrolling (set to UINT_MAX to disable).

Definition at line 248 of file TargetTransformInfo.h.

Referenced by llvm::AArch64TTIImpl::getUnrollingPreferences(), and llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getUnrollingPreferences().

unsigned llvm::TargetTransformInfo::UnrollingPreferences::PartialThreshold

The cost threshold for the unrolled loop, like Threshold, but used for partial/runtime unrolling (set to UINT_MAX to disable).

Definition at line 244 of file TargetTransformInfo.h.

Referenced by llvm::NVPTXTTIImpl::getUnrollingPreferences(), llvm::AArch64TTIImpl::getUnrollingPreferences(), and llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getUnrollingPreferences().

unsigned llvm::TargetTransformInfo::UnrollingPreferences::PercentDynamicCostSavedThreshold

If complete unrolling will reduce the cost of the loop below its expected dynamic cost while rolled by this percentage, apply a discount (below) to its unrolled cost.

Definition at line 235 of file TargetTransformInfo.h.

bool llvm::TargetTransformInfo::UnrollingPreferences::Runtime

Allow runtime unrolling (unrolling of loops to expand the size of the loop body even when the number of loop iterations is not known at compile time).

Definition at line 265 of file TargetTransformInfo.h.

Referenced by llvm::NVPTXTTIImpl::getUnrollingPreferences(), llvm::PPCTTIImpl::getUnrollingPreferences(), and llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getUnrollingPreferences().

unsigned llvm::TargetTransformInfo::UnrollingPreferences::Threshold

The cost threshold for the unrolled loop.

Should be relative to the getUserCost values returned by this API, and the expectation is that the unrolled loop's instructions when run through that interface should not exceed this cost. However, this is only an estimate. Also, specific loops may be unrolled even with a cost above this threshold if deemed profitable. Set this to UINT_MAX to disable the loop body cost restriction.

Definition at line 231 of file TargetTransformInfo.h.

Referenced by llvm::AMDGPUTTIImpl::getUnrollingPreferences(), and llvm::NVPTXTTIImpl::getUnrollingPreferences().


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