LLVM 22.0.0git
llvm::GVNPass::ValueTable Class Reference

This class holds the mapping between values and value numbers. More...

#include "llvm/Transforms/Scalar/GVN.h"

Public Member Functions

LLVM_ABI ValueTable ()
LLVM_ABI ValueTable (const ValueTable &Arg)
LLVM_ABI ValueTable (ValueTable &&Arg)
LLVM_ABI ~ValueTable ()
LLVM_ABI ValueTableoperator= (const ValueTable &Arg)
LLVM_ABI uint32_t lookupOrAdd (MemoryAccess *MA)
LLVM_ABI uint32_t lookupOrAdd (Value *V)
 lookupOrAdd - Returns the value number for the specified value, assigning it a new number if it did not have one before.
LLVM_ABI uint32_t lookup (Value *V, bool Verify=true) const
 Returns the value number of the specified value.
LLVM_ABI uint32_t lookupOrAddCmp (unsigned Opcode, CmpInst::Predicate Pred, Value *LHS, Value *RHS)
 Returns the value number of the given comparison, assigning it a new number if it did not have one before.
LLVM_ABI uint32_t phiTranslate (const BasicBlock *BB, const BasicBlock *PhiBlock, uint32_t Num, GVNPass &GVN)
 Wrap phiTranslateImpl to provide caching functionality.
LLVM_ABI void eraseTranslateCacheEntry (uint32_t Num, const BasicBlock &CurrBlock)
 Erase stale entry from phiTranslate cache so phiTranslate can be computed again.
LLVM_ABI bool exists (Value *V) const
 Returns true if a value number exists for the specified value.
LLVM_ABI void add (Value *V, uint32_t Num)
 add - Insert a value into the table with a specified value number.
LLVM_ABI void clear ()
 Remove all entries from the ValueTable.
LLVM_ABI void erase (Value *V)
 Remove a value from the value numbering.
void setAliasAnalysis (AAResults *A)
AAResultsgetAliasAnalysis () const
void setMemDep (MemoryDependenceResults *M, bool MDEnabled=true)
void setMemorySSA (MemorySSA *M, bool MSSAEnabled=false)
void setDomTree (DominatorTree *D)
uint32_t getNextUnusedValueNumber ()
LLVM_ABI void verifyRemoved (const Value *) const
 verifyRemoved - Verify that the value is removed from all internal data structures.

Detailed Description

This class holds the mapping between values and value numbers.

It is used as an efficient mechanism to determine the expression-wise equivalence of two values.

Definition at line 159 of file GVN.h.

Constructor & Destructor Documentation

◆ ValueTable() [1/3]

GVNPass::ValueTable::ValueTable ( )
default

References LLVM_ABI.

Referenced by operator=(), ValueTable(), and ValueTable().

◆ ValueTable() [2/3]

GVNPass::ValueTable::ValueTable ( const ValueTable & Arg)
default

References LLVM_ABI, and ValueTable().

◆ ValueTable() [3/3]

GVNPass::ValueTable::ValueTable ( ValueTable && Arg)
default

References LLVM_ABI, and ValueTable().

◆ ~ValueTable()

GVNPass::ValueTable::~ValueTable ( )
default

References LLVM_ABI.

Member Function Documentation

◆ add()

void GVNPass::ValueTable::add ( Value * V,
uint32_t Num )

add - Insert a value into the table with a specified value number.

Definition at line 471 of file GVN.cpp.

References llvm::dyn_cast(), and llvm::SmallVectorImpl< T >::insert().

◆ clear()

void GVNPass::ValueTable::clear ( )

Remove all entries from the ValueTable.

Definition at line 759 of file GVN.cpp.

◆ erase()

void GVNPass::ValueTable::erase ( Value * V)

Remove a value from the value numbering.

Definition at line 772 of file GVN.cpp.

References llvm::isa().

◆ eraseTranslateCacheEntry()

void GVNPass::ValueTable::eraseTranslateCacheEntry ( uint32_t Num,
const BasicBlock & CurrBlock )

Erase stale entry from phiTranslate cache so phiTranslate can be computed again.

Definition at line 2446 of file GVN.cpp.

References llvm::predecessors().

◆ exists()

bool GVNPass::ValueTable::exists ( Value * V) const

Returns true if a value number exists for the specified value.

Definition at line 642 of file GVN.cpp.

◆ getAliasAnalysis()

AAResults * llvm::GVNPass::ValueTable::getAliasAnalysis ( ) const
inline

Definition at line 230 of file GVN.h.

◆ getNextUnusedValueNumber()

uint32_t llvm::GVNPass::ValueTable::getNextUnusedValueNumber ( )
inline

Definition at line 240 of file GVN.h.

◆ lookup()

uint32_t GVNPass::ValueTable::lookup ( Value * V,
bool Verify = true ) const

Returns the value number of the specified value.

Fails if the value has not yet been numbered.

Definition at line 738 of file GVN.cpp.

References assert(), and Verify.

◆ lookupOrAdd() [1/2]

◆ lookupOrAdd() [2/2]

uint32_t GVNPass::ValueTable::lookupOrAdd ( Value * V)

lookupOrAdd - Returns the value number for the specified value, assigning it a new number if it did not have one before.

Definition at line 654 of file GVN.cpp.

References llvm::cast(), llvm::dyn_cast(), I, and llvm::isa().

◆ lookupOrAddCmp()

uint32_t GVNPass::ValueTable::lookupOrAddCmp ( unsigned Opcode,
CmpInst::Predicate Predicate,
Value * LHS,
Value * RHS )

Returns the value number of the given comparison, assigning it a new number if it did not have one before.

Useful when we deduced the result of a comparison, but don't immediately have an instruction realizing that comparison to hand.

Definition at line 751 of file GVN.cpp.

◆ operator=()

GVNPass::ValueTable & GVNPass::ValueTable::operator= ( const ValueTable & Arg)
default

◆ phiTranslate()

uint32_t GVNPass::ValueTable::phiTranslate ( const BasicBlock * BB,
const BasicBlock * PhiBlock,
uint32_t Num,
GVNPass & GVN )

Wrap phiTranslateImpl to provide caching functionality.

Definition at line 2316 of file GVN.cpp.

References llvm::GVNPass::GVNPass().

◆ setAliasAnalysis()

void llvm::GVNPass::ValueTable::setAliasAnalysis ( AAResults * A)
inline

Definition at line 229 of file GVN.h.

References A().

◆ setDomTree()

void llvm::GVNPass::ValueTable::setDomTree ( DominatorTree * D)
inline

Definition at line 239 of file GVN.h.

References D().

◆ setMemDep()

void llvm::GVNPass::ValueTable::setMemDep ( MemoryDependenceResults * M,
bool MDEnabled = true )
inline

Definition at line 231 of file GVN.h.

◆ setMemorySSA()

void llvm::GVNPass::ValueTable::setMemorySSA ( MemorySSA * M,
bool MSSAEnabled = false )
inline

Definition at line 235 of file GVN.h.

◆ verifyRemoved()

void GVNPass::ValueTable::verifyRemoved ( const Value * V) const

verifyRemoved - Verify that the value is removed from all internal data structures.

Definition at line 784 of file GVN.cpp.

References assert().


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