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

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

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 llvm::cast(), ExitCountTy, Header, IndVarBase, IndVarIncreasing, IndVarStart, IndVarStep, IsSignedPredicate, Latch, LatchBr, LatchBrExitIdx, LatchExit, LoopExitAt, LoopStructure(), and Tag.

parseLoopStructure()

Definition at line 125 of file LoopConstrainer.cpp.

References assert(), llvm::cannotBeMaxInLoop(), llvm::cannotBeMinInLoop(), llvm::cast(), ClonedLoopTag, DL, llvm::dyn_cast(), llvm::SCEVExpander::expandCodeFor(), llvm::SCEV::FlagAnyWrap, llvm::SCEV::FlagNSW, llvm::SCEV::FlagNUW, llvm::IntegerType::get(), llvm::ScalarEvolution::getAddExpr(), llvm::BasicBlock::getDataLayout(), llvm::ScalarEvolution::getLoopDisposition(), 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::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::isa(), llvm::ICmpInst::isEquality(), llvm::isKnownNonNegativeInLoop(), llvm::ConstantInt::isMinusOne(), llvm::ConstantInt::isNegative(), llvm::ConstantInt::isOne(), isSafeDecreasingBound(), isSafeIncreasingBound(), llvm::CmpInst::isSigned(), IsSignedPredicate, llvm::ConstantInt::isZero(), Latch, LatchBr, LatchBrExitIdx, LatchExit, llvm::ScalarEvolution::LoopInvariant, LoopStructure(), 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: