LLVM: lib/Transforms/Utils/LoopConstrainer.cpp File Reference (original) (raw)
Go to the source code of this file.
| Macros | |
|---|---|
| #define | DEBUG_TYPE "loop-constrainer" |
| 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) |
| Variables | |
|---|---|
| static const char * | ClonedLoopTag = "loop_constrainer.loop.clone" |
◆ DEBUG_TYPE
#define DEBUG_TYPE "loop-constrainer"
◆ DisableAllLoopOptsOnLoop()
| 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::cast(), 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_SLT, llvm::CmpInst::ICMP_UGT, llvm::CmpInst::ICMP_ULT, llvm::ScalarEvolution::isAvailableAtLoopEntry(), llvm::ScalarEvolution::isKnownNegative(), llvm::ScalarEvolution::isLoopEntryGuardedByCond(), llvm::CmpInst::isSigned(), 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::cast(), 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_SGT, llvm::CmpInst::ICMP_SLT, llvm::CmpInst::ICMP_UGT, llvm::CmpInst::ICMP_ULT, llvm::ScalarEvolution::isAvailableAtLoopEntry(), llvm::ScalarEvolution::isLoopEntryGuardedByCond(), llvm::CmpInst::isSigned(), and LLVM_DEBUG.
Referenced by llvm::LoopStructure::parseLoopStructure().
◆ ClonedLoopTag
| const char* ClonedLoopTag = "loop_constrainer.loop.clone" | static |
|---|