Thanks to visit codestin.com
Credit goes to llvm.org

LLVM 22.0.0git
llvm::UnrollCostEstimator Class Reference

Produce an estimate of the unrolled cost of the specified loop. More...

#include "llvm/Transforms/Utils/UnrollLoop.h"

Public Member Functions

LLVM_ABI UnrollCostEstimator (const Loop *L, const TargetTransformInfo &TTI, const SmallPtrSetImpl< const Value * > &EphValues, unsigned BEInsns)
LLVM_ABI bool canUnroll () const
 Whether it is legal to unroll this loop.
uint64_t getRolledLoopSize () const
LLVM_ABI uint64_t getUnrolledLoopSize (const TargetTransformInfo::UnrollingPreferences &UP, unsigned CountOverwrite=0) const
 Returns loop size estimation for unrolled loop, given the unrolling configuration specified by UP.

Public Attributes

unsigned NumInlineCandidates
ConvergenceKind Convergence
bool ConvergenceAllowsRuntime

Detailed Description

Produce an estimate of the unrolled cost of the specified loop.

This is used to a) produce a cost estimate for partial unrolling and b) to cheaply estimate cost for full unrolling when we don't want to symbolically evaluate all iterations.

Definition at line 133 of file UnrollLoop.h.

Constructor & Destructor Documentation

◆ UnrollCostEstimator()

UnrollCostEstimator::UnrollCostEstimator ( const Loop * L,
const TargetTransformInfo & TTI,
const SmallPtrSetImpl< const Value * > & EphValues,
unsigned BEInsns )

Member Function Documentation

◆ canUnroll()

bool UnrollCostEstimator::canUnroll ( ) const

Whether it is legal to unroll this loop.

Definition at line 710 of file LoopUnrollPass.cpp.

References Convergence, llvm::dbgs(), llvm::ExtendedLoop, and LLVM_DEBUG.

Referenced by computeHeuristicUnrollFactor(), tryToUnrollAndJamLoop(), and tryToUnrollLoop().

◆ getRolledLoopSize()

uint64_t llvm::UnrollCostEstimator::getRolledLoopSize ( ) const
inline

◆ getUnrolledLoopSize()

uint64_t UnrollCostEstimator::getUnrolledLoopSize ( const TargetTransformInfo::UnrollingPreferences & UP,
unsigned CountOverwrite = 0 ) const

Returns loop size estimation for unrolled loop, given the unrolling configuration specified by UP.

Definition at line 729 of file LoopUnrollPass.cpp.

References assert(), llvm::TargetTransformInfo::UnrollingPreferences::BEInsns, and llvm::TargetTransformInfo::UnrollingPreferences::Count.

Referenced by llvm::computeUnrollCount(), shouldFullUnroll(), shouldPartialUnroll(), and shouldPragmaUnroll().

Member Data Documentation

◆ Convergence

ConvergenceKind llvm::UnrollCostEstimator::Convergence

Definition at line 139 of file UnrollLoop.h.

Referenced by canUnroll(), tryToUnrollAndJamLoop(), and UnrollCostEstimator().

◆ ConvergenceAllowsRuntime

bool llvm::UnrollCostEstimator::ConvergenceAllowsRuntime

Definition at line 140 of file UnrollLoop.h.

Referenced by tryToUnrollLoop(), and UnrollCostEstimator().

◆ NumInlineCandidates

unsigned llvm::UnrollCostEstimator::NumInlineCandidates

Definition at line 138 of file UnrollLoop.h.

Referenced by tryToUnrollAndJamLoop(), tryToUnrollLoop(), and UnrollCostEstimator().


The documentation for this class was generated from the following files: