LLVM: lib/Transforms/Utils/LoopConstrainer.cpp File Reference (original) (raw)
Go to the source code of this file.
Functions | |
---|---|
static bool | isSafeDecreasingBound (const SCEV *Start, const SCEV *BoundSCEV, const SCEV *Step, ICmpInst::Predicate Pred, unsigned LatchBrExitIdx, Loop *L, ScalarEvolution &SE) |
Given a loop with an deccreasing induction variable, is it possible to safely calculate the bounds of a new loop using the given Predicate. | |
static bool | isSafeIncreasingBound (const SCEV *Start, const SCEV *BoundSCEV, const SCEV *Step, ICmpInst::Predicate Pred, unsigned LatchBrExitIdx, Loop *L, ScalarEvolution &SE) |
Given a loop with an increasing induction variable, is it possible to safely calculate the bounds of a new loop using the given Predicate. | |
static const SCEV * | getNarrowestLatchMaxTakenCountEstimate (ScalarEvolution &SE, const Loop &L) |
Returns estimate for max latch taken count of the loop of the narrowest available type. | |
static void | DisableAllLoopOptsOnLoop (Loop &L) |
◆ DEBUG_TYPE
#define DEBUG_TYPE "loop-constrainer"
◆ DisableAllLoopOptsOnLoop()
static void DisableAllLoopOptsOnLoop ( Loop & L) | static |
---|
◆ getNarrowestLatchMaxTakenCountEstimate()
◆ isSafeDecreasingBound()
Given a loop with an deccreasing induction variable, is it possible to safely calculate the bounds of a new loop using the given Predicate.
Definition at line 19 of file LoopConstrainer.cpp.
References llvm::ScalarEvolution::applyLoopGuards(), assert(), llvm::BitWidth, llvm::dbgs(), llvm::ScalarEvolution::getAddExpr(), llvm::ScalarEvolution::getConstant(), llvm::ScalarEvolution::getMinusSCEV(), llvm::APInt::getMinValue(), llvm::ScalarEvolution::getOne(), llvm::APInt::getSignedMinValue(), llvm::SCEV::getType(), llvm::CmpInst::ICMP_SGT, llvm::CmpInst::ICMP_UGT, llvm::ScalarEvolution::isAvailableAtLoopEntry(), llvm::ScalarEvolution::isKnownNegative(), llvm::ScalarEvolution::isLoopEntryGuardedByCond(), and LLVM_DEBUG.
Referenced by llvm::LoopStructure::parseLoopStructure().
◆ isSafeIncreasingBound()
Given a loop with an increasing induction variable, is it possible to safely calculate the bounds of a new loop using the given Predicate.
Definition at line 68 of file LoopConstrainer.cpp.
References llvm::ScalarEvolution::applyLoopGuards(), assert(), llvm::BitWidth, llvm::dbgs(), llvm::ScalarEvolution::getAddExpr(), llvm::ScalarEvolution::getConstant(), llvm::APInt::getMaxValue(), llvm::ScalarEvolution::getMinusSCEV(), llvm::ScalarEvolution::getOne(), llvm::APInt::getSignedMaxValue(), llvm::SCEV::getType(), llvm::CmpInst::ICMP_SLT, llvm::CmpInst::ICMP_ULT, llvm::ScalarEvolution::isAvailableAtLoopEntry(), llvm::ScalarEvolution::isLoopEntryGuardedByCond(), and LLVM_DEBUG.
Referenced by llvm::LoopStructure::parseLoopStructure().
◆ ClonedLoopTag
const char* ClonedLoopTag = "loop_constrainer.loop.clone" | static |
---|