LLVM 19.0.0git
|
Public Member Functions | |
ValueLatticeElement | getValueInBlock (Value *V, BasicBlock *BB, Instruction *CxtI=nullptr) |
This is the query interface to determine the lattice value for the specified Value* at the context instruction (if specified) or at the start of the block. | |
ValueLatticeElement | getValueAt (Value *V, Instruction *CxtI) |
This is the query interface to determine the lattice value for the specified Value* at the specified instruction using only information from assumes/guards and range metadata. | |
ValueLatticeElement | getValueOnEdge (Value *V, BasicBlock *FromBB, BasicBlock *ToBB, Instruction *CxtI=nullptr) |
This is the query interface to determine the lattice value for the specified Value* that is true on the specified edge. | |
ValueLatticeElement | getValueAtUse (const Use &U) |
void | clear () |
Complete flush all previously computed values. | |
void | printLVI (Function &F, DominatorTree &DTree, raw_ostream &OS) |
Printing the LazyValueInfo Analysis. | |
void | forgetValue (Value *V) |
This is part of the update interface to remove information related to this value from the cache. | |
void | eraseBlock (BasicBlock *BB) |
This is part of the update interface to inform the cache that a block has been deleted. | |
void | threadEdge (BasicBlock *PredBB, BasicBlock *OldSucc, BasicBlock *NewSucc) |
This is the update interface to inform the cache that an edge from PredBB to OldSucc has been threaded to be from PredBB to NewSucc. | |
LazyValueInfoImpl (AssumptionCache *AC, const DataLayout &DL, Function *GuardDecl) | |
Definition at line 364 of file LazyValueInfo.cpp.
|
inline |
Definition at line 505 of file LazyValueInfo.cpp.
References DL.
|
inline |
Complete flush all previously computed values.
Definition at line 481 of file LazyValueInfo.cpp.
|
inline |
This is part of the update interface to inform the cache that a block has been deleted.
Definition at line 497 of file LazyValueInfo.cpp.
|
inline |
This is part of the update interface to remove information related to this value from the cache.
Definition at line 493 of file LazyValueInfo.cpp.
ValueLatticeElement LazyValueInfoImpl::getValueAt | ( | Value * | V, |
Instruction * | CxtI | ||
) |
This is the query interface to determine the lattice value for the specified Value* at the specified instruction using only information from assumes/guards and range metadata.
Unlike getValueInBlock(), no recursive query is performed.
Definition at line 1538 of file LazyValueInfo.cpp.
References llvm::CallingConv::C, llvm::dbgs(), llvm::ValueLatticeElement::get(), getFromRangeMetadata(), llvm::Value::getName(), llvm::ValueLatticeElement::getOverdefined(), I, and LLVM_DEBUG.
ValueLatticeElement LazyValueInfoImpl::getValueAtUse | ( | const Use & | U | ) |
Definition at line 1575 of file LazyValueInfo.cpp.
References llvm::Instruction::getParent(), getValueInBlock(), I, intersect(), llvm::isGuaranteedNotToBeUndef(), llvm::isSafeToSpeculativelyExecute(), PHI, and llvm::Value::use_begin().
Referenced by llvm::LazyValueInfo::getConstantRangeAtUse().
ValueLatticeElement LazyValueInfoImpl::getValueInBlock | ( | Value * | V, |
BasicBlock * | BB, | ||
Instruction * | CxtI = nullptr |
||
) |
This is the query interface to determine the lattice value for the specified Value* at the context instruction (if specified) or at the start of the block.
Definition at line 1520 of file LazyValueInfo.cpp.
References assert(), llvm::dbgs(), llvm::Value::getName(), and LLVM_DEBUG.
Referenced by llvm::LazyValueInfo::getConstant(), llvm::LazyValueInfo::getConstantRange(), llvm::LazyValueInfo::getPredicateAt(), and getValueAtUse().
ValueLatticeElement LazyValueInfoImpl::getValueOnEdge | ( | Value * | V, |
BasicBlock * | FromBB, | ||
BasicBlock * | ToBB, | ||
Instruction * | CxtI = nullptr |
||
) |
This is the query interface to determine the lattice value for the specified Value* that is true on the specified edge.
Definition at line 1554 of file LazyValueInfo.cpp.
References llvm::dbgs(), llvm::Value::getName(), and LLVM_DEBUG.
Referenced by llvm::LazyValueInfo::getConstantOnEdge(), llvm::LazyValueInfo::getConstantRangeOnEdge(), and llvm::LazyValueInfo::getPredicateOnEdge().
|
inline |
Printing the LazyValueInfo Analysis.
Definition at line 486 of file LazyValueInfo.cpp.
void LazyValueInfoImpl::threadEdge | ( | BasicBlock * | PredBB, |
BasicBlock * | OldSucc, | ||
BasicBlock * | NewSucc | ||
) |
This is the update interface to inform the cache that an edge from PredBB to OldSucc has been threaded to be from PredBB to NewSucc.
Definition at line 1625 of file LazyValueInfo.cpp.