LLVM 20.0.0git
|
#include "llvm/Transforms/Utils/LoopConstrainer.h"
Public Member Functions | |
LoopStructure ()=default | |
template<typename M > | |
LoopStructure | map (M Map) const |
Static Public Member Functions | |
static std::optional< LoopStructure > | parseLoopStructure (ScalarEvolution &, Loop &, bool, const char *&) |
Public Attributes | |
const char * | Tag = "" |
BasicBlock * | Header = nullptr |
BasicBlock * | Latch = nullptr |
BranchInst * | LatchBr = nullptr |
BasicBlock * | LatchExit = nullptr |
unsigned | LatchBrExitIdx = std::numeric_limits<unsigned>::max() |
Value * | IndVarBase = nullptr |
Value * | IndVarStart = nullptr |
Value * | IndVarStep = nullptr |
Value * | LoopExitAt = nullptr |
bool | IndVarIncreasing = false |
bool | IsSignedPredicate = true |
IntegerType * | ExitCountTy = nullptr |
Definition at line 34 of file LoopConstrainer.h.
|
default |
|
inline |
Definition at line 65 of file LoopConstrainer.h.
References ExitCountTy, Header, IndVarBase, IndVarIncreasing, IndVarStart, IndVarStep, IsSignedPredicate, Latch, LatchBr, LatchBrExitIdx, LatchExit, LoopExitAt, and Tag.
|
static |
Definition at line 125 of file LoopConstrainer.cpp.
References assert(), llvm::cannotBeMaxInLoop(), llvm::cannotBeMinInLoop(), ClonedLoopTag, DL, llvm::SCEVExpander::expandCodeFor(), llvm::SCEV::FlagAnyWrap, llvm::SCEV::FlagNSW, llvm::SCEV::FlagNUW, llvm::IntegerType::get(), llvm::ScalarEvolution::getAddExpr(), llvm::IntegerType::getBitWidth(), llvm::BranchInst::getCondition(), llvm::Type::getContext(), llvm::BasicBlock::getDataLayout(), llvm::ScalarEvolution::getLoopDisposition(), llvm::Instruction::getMetadata(), llvm::ScalarEvolution::getMinusSCEV(), getNarrowestLatchMaxTakenCountEstimate(), llvm::ScalarEvolution::getNegativeSCEV(), llvm::ScalarEvolution::getOne(), llvm::User::getOperand(), llvm::CmpInst::getPredicate(), llvm::ScalarEvolution::getSCEV(), llvm::ScalarEvolution::getSignExtendExpr(), llvm::SCEVAddRecExpr::getStart(), llvm::SCEVAddRecExpr::getStepRecurrence(), llvm::BranchInst::getSuccessor(), llvm::CmpInst::getSwappedPredicate(), llvm::BasicBlock::getTerminator(), llvm::SCEV::getType(), llvm::Value::getType(), llvm::ConstantInt::getValue(), Header, I, llvm::CmpInst::ICMP_EQ, llvm::CmpInst::ICMP_NE, llvm::CmpInst::ICMP_SGT, llvm::CmpInst::ICMP_SLT, llvm::CmpInst::ICMP_UGT, llvm::CmpInst::ICMP_ULT, IndVarBase, IndVarStart, llvm::ICmpInst::isEquality(), llvm::isKnownNonNegativeInLoop(), llvm::ConstantInt::isMinusOne(), llvm::ConstantInt::isNegative(), llvm::ConstantInt::isOne(), isSafeDecreasingBound(), isSafeIncreasingBound(), llvm::CmpInst::isSigned(), IsSignedPredicate, llvm::BranchInst::isUnconditional(), llvm::ConstantInt::isZero(), Latch, LatchBr, LatchBrExitIdx, LatchExit, llvm::ScalarEvolution::LoopInvariant, llvm::Value::setName(), and std::swap().
IntegerType* llvm::LoopStructure::ExitCountTy = nullptr |
Definition at line 61 of file LoopConstrainer.h.
Referenced by calculateSubRanges(), and map().
BasicBlock* llvm::LoopStructure::Header = nullptr |
Definition at line 37 of file LoopConstrainer.h.
Referenced by map(), parseLoopStructure(), and llvm::LoopConstrainer::run().
Value* llvm::LoopStructure::IndVarBase = nullptr |
Definition at line 55 of file LoopConstrainer.h.
Referenced by map(), parseLoopStructure(), and llvm::LoopConstrainer::run().
bool llvm::LoopStructure::IndVarIncreasing = false |
Definition at line 59 of file LoopConstrainer.h.
Referenced by calculateSubRanges(), map(), and llvm::LoopConstrainer::run().
Value* llvm::LoopStructure::IndVarStart = nullptr |
Definition at line 56 of file LoopConstrainer.h.
Referenced by calculateSubRanges(), map(), and parseLoopStructure().
Value* llvm::LoopStructure::IndVarStep = nullptr |
Definition at line 57 of file LoopConstrainer.h.
Referenced by map().
Definition at line 60 of file LoopConstrainer.h.
Referenced by calculateSubRanges(), map(), parseLoopStructure(), and llvm::LoopConstrainer::run().
BasicBlock* llvm::LoopStructure::Latch = nullptr |
Definition at line 38 of file LoopConstrainer.h.
Referenced by map(), and parseLoopStructure().
BranchInst* llvm::LoopStructure::LatchBr = nullptr |
Definition at line 42 of file LoopConstrainer.h.
Referenced by map(), and parseLoopStructure().
Definition at line 44 of file LoopConstrainer.h.
Referenced by map(), and parseLoopStructure().
BasicBlock* llvm::LoopStructure::LatchExit = nullptr |
Definition at line 43 of file LoopConstrainer.h.
Referenced by map(), and parseLoopStructure().
Value* llvm::LoopStructure::LoopExitAt = nullptr |
Definition at line 58 of file LoopConstrainer.h.
Referenced by calculateSubRanges(), and map().
Definition at line 35 of file LoopConstrainer.h.
Referenced by map().