LLVM: llvm::LazyValueInfo Class Reference (original) (raw)

This pass computes, caches, and vends lazy value constraint information. More...

#include "[llvm/Analysis/LazyValueInfo.h](LazyValueInfo%5F8h%5Fsource.html)"

Public Member Functions
~LazyValueInfo ()
LazyValueInfo ()=default
LazyValueInfo (AssumptionCache *AC_, const DataLayout *DL_)
LazyValueInfo (LazyValueInfo &&Arg)
LazyValueInfo & operator= (LazyValueInfo &&Arg)
Constant * getPredicateOnEdge (CmpInst::Predicate Pred, Value *V, Constant *C, BasicBlock *FromBB, BasicBlock *ToBB, Instruction *CxtI=nullptr)
Determine whether the specified value comparison with a constant is known to be true or false on the specified CFG edge.
Constant * getPredicateAt (CmpInst::Predicate Pred, Value *V, Constant *C, Instruction *CxtI, bool UseBlockValue)
Determine whether the specified value comparison with a constant is known to be true or false at the specified instruction.
Constant * getPredicateAt (CmpInst::Predicate Pred, Value *LHS, Value *RHS, Instruction *CxtI, bool UseBlockValue)
Determine whether the specified value comparison is known to be true or false at the specified instruction.
Constant * getConstant (Value *V, Instruction *CxtI)
Determine whether the specified value is known to be a constant at the specified instruction.
ConstantRange getConstantRange (Value *V, Instruction *CxtI, bool UndefAllowed)
Return the ConstantRange constraint that is known to hold for the specified value at the specified instruction.
ConstantRange getConstantRangeAtUse (const Use &U, bool UndefAllowed)
Return the ConstantRange constraint that is known to hold for the value at a specific use-site.
Constant * getConstantOnEdge (Value *V, BasicBlock *FromBB, BasicBlock *ToBB, Instruction *CxtI=nullptr)
Determine whether the specified value is known to be a constant on the specified edge.
ConstantRange getConstantRangeOnEdge (Value *V, BasicBlock *FromBB, BasicBlock *ToBB, Instruction *CxtI=nullptr)
Return the ConstantRage constraint that is known to hold for the specified value on the specified edge.
void threadEdge (BasicBlock *PredBB, BasicBlock *OldSucc, BasicBlock *NewSucc)
Inform the analysis cache that we have threaded an edge from PredBB to OldSucc to be from PredBB to NewSucc instead.
void forgetValue (Value *V)
Remove information related to this value from the cache.
void eraseBlock (BasicBlock *BB)
Inform the analysis cache that we have erased a block.
void clear ()
Complete flush all previously computed values.
void printLVI (Function &F, DominatorTree &DTree, raw_ostream &OS)
Print the \LazyValueInfo Analysis.
void releaseMemory ()
bool invalidate (Function &F, const PreservedAnalyses &PA, FunctionAnalysisManager::Invalidator &Inv)
Handle invalidation events in the new pass manager.
Friends
class LazyValueInfoWrapperPass

This pass computes, caches, and vends lazy value constraint information.

Definition at line 32 of file LazyValueInfo.h.

LazyValueInfo::~LazyValueInfo ( )

LazyValueInfo() [1/3]

llvm::LazyValueInfo::LazyValueInfo ( ) default

LazyValueInfo() [2/3]

LazyValueInfo() [3/3]

llvm::LazyValueInfo::LazyValueInfo ( LazyValueInfo && Arg) inline

clear()

void LazyValueInfo::clear ( )

eraseBlock()

Inform the analysis cache that we have erased a block.

Definition at line 2221 of file LazyValueInfo.cpp.

forgetValue()

void LazyValueInfo::forgetValue ( Value * V )

Remove information related to this value from the cache.

Definition at line 2216 of file LazyValueInfo.cpp.

getConstant()

getConstantOnEdge()

getConstantRange()

getConstantRangeAtUse()

Return the ConstantRange constraint that is known to hold for the value at a specific use-site.

Definition at line 1985 of file LazyValueInfo.cpp.

References llvm::cast().

Referenced by processAbsIntrinsic(), processAnd(), processAShr(), processBinOp(), processCmpIntrinsic(), processICmp(), processMinMaxIntrinsic(), processPossibleNonNeg(), processSDivOrSRem(), processSExt(), processSIToFP(), processSwitch(), processTrunc(), processUDivOrURem(), and willNotOverflow().

getConstantRangeOnEdge()

getPredicateAt() [1/2]

getPredicateAt() [2/2]

Determine whether the specified value comparison with a constant is known to be true or false at the specified instruction.

Pred is a CmpInst predicate. If UseBlockValue is true, the block value is also taken into account.

Definition at line 2076 of file LazyValueInfo.cpp.

References llvm::CallingConv::C, llvm::cast(), llvm::dyn_cast(), llvm::ConstantInt::getFalse(), llvm::Instruction::getModule(), getParent(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), getPredicateOnEdge(), getPredicateResult(), llvm::ConstantInt::getTrue(), llvm::CmpInst::ICMP_EQ, llvm::CmpInst::ICMP_NE, llvm::isa(), llvm::isKnownNonZero(), llvm::CmpInst::makeCmpResultType(), PHI, llvm::pred_begin(), and llvm::pred_end().

Referenced by constantFoldCmp(), getConstantAt(), getPredicateAt(), processCallSite(), and processSwitch().

getPredicateOnEdge()

invalidate()

operator=()

printLVI()

Print the \LazyValueInfo Analysis.

We pass in the DTree that is required for identifying which basic blocks we can solve/print for, in the LVIPrinter.

Definition at line 2231 of file LazyValueInfo.cpp.

References F.

releaseMemory()

void LazyValueInfo::releaseMemory ( )

threadEdge()

Inform the analysis cache that we have threaded an edge from PredBB to OldSucc to be from PredBB to NewSucc instead.

Definition at line 2210 of file LazyValueInfo.cpp.

LazyValueInfoWrapperPass


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