LLVM: lib/Transforms/Utils/ScalarEvolutionExpander.cpp File Reference (original) (raw)
Go to the source code of this file.
| Macros | |
|---|---|
| #define | SCEV_DEBUG_WITH_TYPE(TYPE, X) |
| Functions | |
|---|---|
| static const Loop * | PickMostRelevantLoop (const Loop *A, const Loop *B, DominatorTree &DT) |
| PickMostRelevantLoop - Given two loops pick the one that's most relevant for SCEV expansion. | |
| static bool | canBeCheaplyTransformed (ScalarEvolution &SE, const SCEVAddRecExpr *Phi, const SCEVAddRecExpr *Requested, bool &InvertStep) |
| Check whether we can cheaply express the requested SCEV in terms of the available PHI SCEV by truncation and/or inversion of the step. | |
| static bool | IsIncrementNSW (ScalarEvolution &SE, const SCEVAddRecExpr *AR) |
| static bool | IsIncrementNUW (ScalarEvolution &SE, const SCEVAddRecExpr *AR) |
| template<typename T> | |
| static InstructionCost | costAndCollectOperands (const SCEVOperand &WorkItem, const TargetTransformInfo &TTI, TargetTransformInfo::TargetCostKind CostKind, SmallVectorImpl< SCEVOperand > &Worklist) |
◆ SCEV_DEBUG_WITH_TYPE
| #define SCEV_DEBUG_WITH_TYPE | ( | TYPE, |
|---|---|---|
| X ) |
◆ canBeCheaplyTransformed()
◆ costAndCollectOperands()
Definition at line 1908 of file ScalarEvolutionExpander.cpp.
References assert(), llvm::CmpInst::BAD_ICMP_PREDICATE, llvm::cast(), CostKind, llvm::dyn_cast(), llvm::SmallVectorImpl< T >::emplace_back(), llvm::enumerate(), llvm::isa(), llvm_unreachable, llvm::CmpInst::makeCmpResultType(), llvm::max(), llvm::TargetTransformInfo::None, Opc, OpIdx, llvm::scAddExpr, llvm::scAddRecExpr, llvm::scConstant, llvm::scCouldNotCompute, llvm::scMulExpr, llvm::scPtrToInt, llvm::scSequentialUMinExpr, llvm::scSignExtend, llvm::scSMaxExpr, llvm::scSMinExpr, llvm::scTruncate, llvm::scUDivExpr, llvm::scUMaxExpr, llvm::scUMinExpr, llvm::scUnknown, llvm::scVScale, llvm::scZeroExtend, and T.