LLVM: llvm::LoopStructure Struct Reference (original) (raw)

#include "[llvm/Transforms/Utils/LoopConstrainer.h](LoopConstrainer%5F8h%5Fsource.html)"

Public Member Functions
LoopStructure ()=default
template
LoopStructure map (M Map) const
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.

llvm::LoopStructure::LoopStructure ( ) default

map()

Definition at line 65 of file LoopConstrainer.h.

References ExitCountTy, Header, IndVarBase, IndVarIncreasing, IndVarStart, IndVarStep, IsSignedPredicate, Latch, LatchBr, LatchBrExitIdx, LatchExit, LoopExitAt, and Tag.

parseLoopStructure()

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().

ExitCountTy

IntegerType* llvm::LoopStructure::ExitCountTy = nullptr

Header

IndVarBase

Value* llvm::LoopStructure::IndVarBase = nullptr

IndVarIncreasing

bool llvm::LoopStructure::IndVarIncreasing = false

IndVarStart

Value* llvm::LoopStructure::IndVarStart = nullptr

IndVarStep

Value* llvm::LoopStructure::IndVarStep = nullptr

IsSignedPredicate

bool llvm::LoopStructure::IsSignedPredicate = true

Latch

LatchBr

BranchInst* llvm::LoopStructure::LatchBr = nullptr

LatchBrExitIdx

LatchExit

BasicBlock* llvm::LoopStructure::LatchExit = nullptr

LoopExitAt

Value* llvm::LoopStructure::LoopExitAt = nullptr

Tag


The documentation for this struct was generated from the following files: