LLVM 23.0.0git
llvm::LazyValueInfoImpl Class Reference

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)

Detailed Description

Definition at line 360 of file LazyValueInfo.cpp.

Constructor & Destructor Documentation

◆ LazyValueInfoImpl()

llvm::LazyValueInfoImpl::LazyValueInfoImpl ( AssumptionCache * AC,
const DataLayout & DL,
Function * GuardDecl )
inline

Definition at line 505 of file LazyValueInfo.cpp.

Member Function Documentation

◆ clear()

void llvm::LazyValueInfoImpl::clear ( )
inline

Complete flush all previously computed values.

Definition at line 481 of file LazyValueInfo.cpp.

◆ eraseBlock()

void llvm::LazyValueInfoImpl::eraseBlock ( BasicBlock * BB)
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.

◆ forgetValue()

void llvm::LazyValueInfoImpl::forgetValue ( Value * V)
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.

◆ getValueAt()

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 1810 of file LazyValueInfo.cpp.

References llvm::CallingConv::C, llvm::dbgs(), llvm::dyn_cast(), llvm::ValueLatticeElement::get(), getFromRangeMetadata(), llvm::Value::getName(), llvm::ValueLatticeElement::getOverdefined(), I, and LLVM_DEBUG.

◆ getValueAtUse()

◆ getValueInBlock()

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 1793 of file LazyValueInfo.cpp.

References assert(), llvm::dbgs(), llvm::Value::getName(), and LLVM_DEBUG.

Referenced by getValueAtUse().

◆ getValueOnEdge()

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 1826 of file LazyValueInfo.cpp.

References llvm::dbgs(), llvm::Value::getName(), and LLVM_DEBUG.

◆ printLVI()

void llvm::LazyValueInfoImpl::printLVI ( Function & F,
DominatorTree & DTree,
raw_ostream & OS )
inline

Printing the LazyValueInfo Analysis.

Definition at line 486 of file LazyValueInfo.cpp.

References F.

◆ threadEdge()

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 1899 of file LazyValueInfo.cpp.


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