An address value that tracks and handles PHI translation.
Declared in <llvm/Analysis/PHITransAddr.h>
class PHITransAddr;
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.
| Name | Description |
|---|---|
PHITransAddr [constructor] | Construct a PHI-translatable address from Addr. |
dump | Dump this PHITransAddr to stderr for debugging. |
getAddr | Return the current address being tracked. |
getSelectCondition | Return the select condition this address depends on, if any. |
isPotentiallyPHITranslatable | Return true if PHI translation of this address may succeed. |
needsPHITranslationFromBlock | Return true if moving from BB to its predecessors needs PHI translation. |
translateValue | translateValue overloads |
translateWithInsertion | PHI-translate this value into PredBB, inserting computation if needed. |
verify | verify - Check internal consistency of this data structure. If the structure is valid, it returns true. If invalid, it prints errors and returns false. |