LLVM: llvm::PHITransAddr Class Reference (original) (raw)
PHITransAddr - An address value which tracks and handles phi translation. More...
#include "[llvm/Analysis/PHITransAddr.h](PHITransAddr%5F8h%5Fsource.html)"
| Public Member Functions | |
|---|---|
| PHITransAddr (Value *Addr, const DataLayout &DL, AssumptionCache *AC) | |
| Value * | getAddr () const |
| bool | needsPHITranslationFromBlock (BasicBlock *BB) const |
| needsPHITranslationFromBlock - Return true if moving from the specified BasicBlock to its predecessors requires PHI translation. | |
| LLVM_ABI bool | isPotentiallyPHITranslatable () const |
| isPotentiallyPHITranslatable - If this needs PHI translation, return true if we have some hope of doing it. | |
| LLVM_ABI Value * | translateValue (BasicBlock *CurBB, BasicBlock *PredBB, const DominatorTree *DT, bool MustDominate) |
| translateValue - PHI translate the current address up the CFG from CurBB to Pred, updating our state to reflect any needed changes. | |
| LLVM_ABI Value * | translateWithInsertion (BasicBlock *CurBB, BasicBlock *PredBB, const DominatorTree &DT, SmallVectorImpl< Instruction * > &NewInsts) |
| translateWithInsertion - PHI translate this value into the specified predecessor block, inserting a computation of the value if it is unavailable. | |
| LLVM_ABI void | dump () const |
| LLVM_ABI bool | verify () const |
| verify - Check internal consistency of this data structure. |
PHITransAddr - An address value which tracks and handles phi translation.
As we walk "up" the CFG through predecessors, we need to ensure that the address we're tracking is kept up to date. For example, if we're analyzing an address of "&A[i]" and walk through the definition of 'i' which is a PHI node, we must phi translate i to get "&A[j]" or else we will analyze an incorrect pointer in the predecessor block.
This is designed to be a relatively small object that lives on the stack and is copyable.
Definition at line 36 of file PHITransAddr.h.
◆ dump()
◆ getAddr()
| Value * llvm::PHITransAddr::getAddr ( ) const | inline |
|---|
◆ isPotentiallyPHITranslatable()
| bool PHITransAddr::isPotentiallyPHITranslatable | ( | ) | const |
|---|
◆ needsPHITranslationFromBlock()
| bool llvm::PHITransAddr::needsPHITranslationFromBlock ( BasicBlock * BB) const | inline |
|---|
◆ translateValue()
◆ translateWithInsertion()
◆ verify()
| bool PHITransAddr::verify | ( | ) | const |
|---|
The documentation for this class was generated from the following files:
- include/llvm/Analysis/PHITransAddr.h
- lib/Analysis/PHITransAddr.cpp