LLVM
8.0.1
|
This class holds the mapping between values and value numbers. More...
#include "llvm/Transforms/Scalar/GVN.h"
Public Member Functions | |
ValueTable () | |
ValueTable (const ValueTable &Arg) | |
ValueTable (ValueTable &&Arg) | |
~ValueTable () | |
uint32_t | lookupOrAdd (Value *V) |
lookup_or_add - Returns the value number for the specified value, assigning it a new number if it did not have one before. More... | |
uint32_t | lookup (Value *V, bool Verify=true) const |
Returns the value number of the specified value. More... | |
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. More... | |
uint32_t | phiTranslate (const BasicBlock *BB, const BasicBlock *PhiBlock, uint32_t Num, GVN &Gvn) |
Wrap phiTranslateImpl to provide caching functionality. More... | |
void | eraseTranslateCacheEntry (uint32_t Num, const BasicBlock &CurrBlock) |
Erase stale entry from phiTranslate cache so phiTranslate can be computed again. More... | |
bool | exists (Value *V) const |
Returns true if a value number exists for the specified value. More... | |
void | add (Value *V, uint32_t num) |
add - Insert a value into the table with a specified value number. More... | |
void | clear () |
Remove all entries from the ValueTable. More... | |
void | erase (Value *v) |
Remove a value from the value numbering. More... | |
void | setAliasAnalysis (AliasAnalysis *A) |
AliasAnalysis * | getAliasAnalysis () const |
void | setMemDep (MemoryDependenceResults *M) |
void | setDomTree (DominatorTree *D) |
uint32_t | getNextUnusedValueNumber () |
void | verifyRemoved (const Value *) const |
verifyRemoved - Verify that the value is removed from all internal data structures. More... | |
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.
|
default |
Referenced by llvm::gvn::AvailableValueInBlock::MaterializeAdjustedValue().
|
default |
|
default |
|
default |
Referenced by llvm::gvn::AvailableValueInBlock::MaterializeAdjustedValue().
add - Insert a value into the table with a specified value number.
Definition at line 389 of file GVN.cpp.
References C, llvm::dyn_cast(), llvm::Intrinsic::exp, llvm::CallBase::getArgOperand(), llvm::NonLocalDepEntry::getBB(), llvm::MemDepResult::getInst(), llvm::CallBase::getNumArgOperands(), llvm::Instruction::getParent(), llvm::NonLocalDepEntry::getResult(), llvm::MemDepResult::isDef(), and llvm::MemDepResult::isNonLocal().
void GVN::ValueTable::clear | ( | ) |
Remove all entries from the ValueTable.
Definition at line 596 of file GVN.cpp.
References Expressions.
void GVN::ValueTable::erase | ( | Value * | v | ) |
void GVN::ValueTable::eraseTranslateCacheEntry | ( | uint32_t | Num, |
const BasicBlock & | CurrBlock | ||
) |
Erase stale entry from phiTranslate cache so phiTranslate can be computed again.
Definition at line 1594 of file GVN.cpp.
References if(), and llvm::predecessors().
|
inline |
|
inline |
lookup_or_add - Returns the value number for the specified value, assigning it a new number if it did not have one before.
Definition at line 501 of file GVN.cpp.
References llvm::MCID::Add, llvm::MCID::Call, llvm::Intrinsic::exp, llvm::Instruction::getOpcode(), if(), llvm::MCID::Select, and VI.
Referenced by llvm::InsnInfo::insert(), llvm::LoadInfo::insert(), llvm::StoreInfo::insert(), and llvm::CallInfo::insert().
uint32_t GVN::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 588 of file GVN.cpp.
References llvm::Intrinsic::exp.
uint32_t GVN::ValueTable::phiTranslate | ( | const BasicBlock * | BB, |
const BasicBlock * | PhiBlock, | ||
uint32_t | Num, | ||
GVN & | Gvn | ||
) |
Wrap phiTranslateImpl to provide caching functionality.
Definition at line 1530 of file GVN.cpp.
References assert(), llvm::GVN::Expression::commutative, Expressions, llvm::CmpInst::getSwappedPredicate(), lookup(), llvm::GVN::Expression::opcode, llvm::SmallVectorBase::size(), std::swap(), and llvm::GVN::Expression::varargs.
|
inline |
|
inline |
|
inline |