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