14 #ifndef LLVM_ANALYSIS_PHITRANSADDR_H
15 #define LLVM_ANALYSIS_PHITRANSADDR_H
21 class AssumptionCache;
24 class TargetLibraryInfo;
53 : Addr(addr), DL(DL), TLI(nullptr), AC(AC) {
56 InstInputs.push_back(
I);
66 for (
unsigned i = 0, e = InstInputs.size(); i != e; ++i)
118 InstInputs.push_back(
VI);
A parsed version of the target data layout string in and methods for querying it. ...
Value * PHITranslateWithInsertion(BasicBlock *CurBB, BasicBlock *PredBB, const DominatorTree &DT, SmallVectorImpl< Instruction * > &NewInsts)
PHITranslateWithInsertion - PHI translate this value into the specified predecessor block...
A cache of .assume calls within a function.
bool NeedsPHITranslationFromBlock(BasicBlock *BB) const
NeedsPHITranslationFromBlock - Return true if moving from the specified BasicBlock to its predecessor...
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree...
LLVM Basic Block Representation.
PHITransAddr - An address value which tracks and handles phi translation.
PHITransAddr(Value *addr, const DataLayout &DL, AssumptionCache *AC)
bool IsPotentiallyPHITranslatable() const
IsPotentiallyPHITranslatable - If this needs PHI translation, return true if we have some hope of doi...
bool PHITranslateValue(BasicBlock *CurBB, BasicBlock *PredBB, const DominatorTree *DT, bool MustDominate)
PHITranslateValue - PHI translate the current address up the CFG from CurBB to Pred, updating our state to reflect any needed changes.
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small...
Provides information about what library functions are available for the current target.
LLVM Value Representation.
static const Function * getParent(const Value *V)
bool Verify() const
Verify - Check internal consistency of this data structure.