llvm::PHITransAddr

An address value that tracks and handles PHI translation.

Synopsis

Declared in <llvm/Analysis/PHITransAddr.h>

class PHITransAddr;

Description

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.

Member Functions

NameDescription
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.