LLVM 19.0.0git
|
Produce an estimate of the unrolled cost of the specified loop. More...
#include "llvm/Transforms/Utils/UnrollLoop.h"
Public Member Functions | |
UnrollCostEstimator (const Loop *L, const TargetTransformInfo &TTI, const SmallPtrSetImpl< const Value * > &EphValues, unsigned BEInsns) | |
bool | canUnroll () const |
Whether it is legal to unroll this loop. | |
uint64_t | getRolledLoopSize () const |
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 |
bool | Convergent |
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 122 of file UnrollLoop.h.
UnrollCostEstimator::UnrollCostEstimator | ( | const Loop * | L, |
const TargetTransformInfo & | TTI, | ||
const SmallPtrSetImpl< const Value * > & | EphValues, | ||
unsigned | BEInsns | ||
) |
Definition at line 680 of file LoopUnrollPass.cpp.
References Convergent, llvm::InstructionCost::isValid(), Metrics, and NumInlineCandidates.
|
inline |
Whether it is legal to unroll this loop.
Definition at line 135 of file UnrollLoop.h.
References llvm::InstructionCost::isValid().
Referenced by computeHeuristicUnrollFactor(), tryToUnrollAndJamLoop(), and tryToUnrollLoop().
|
inline |
Definition at line 137 of file UnrollLoop.h.
References llvm::InstructionCost::getValue().
Referenced by computeHeuristicUnrollFactor(), computeUnrollAndJamCount(), llvm::computeUnrollCount(), tryToUnrollAndJamLoop(), and tryToUnrollLoop().
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 702 of file LoopUnrollPass.cpp.
References assert(), llvm::TargetTransformInfo::UnrollingPreferences::BEInsns, llvm::TargetTransformInfo::UnrollingPreferences::Count, and llvm::InstructionCost::getValue().
Referenced by llvm::computeUnrollCount(), shouldFullUnroll(), shouldPartialUnroll(), and shouldPragmaUnroll().
bool llvm::UnrollCostEstimator::Convergent |
Definition at line 128 of file UnrollLoop.h.
Referenced by computeHeuristicUnrollFactor(), tryToUnrollAndJamLoop(), tryToUnrollLoop(), and UnrollCostEstimator().
unsigned llvm::UnrollCostEstimator::NumInlineCandidates |
Definition at line 127 of file UnrollLoop.h.
Referenced by tryToUnrollAndJamLoop(), tryToUnrollLoop(), and UnrollCostEstimator().