14 #ifndef LLVM_TRANSFORMS_UTILS_SSAUPDATERBULK_H 15 #define LLVM_TRANSFORMS_UTILS_SSAUPDATERBULK_H 26 template <
typename T>
class SmallVectorImpl;
92 #endif // LLVM_TRANSFORMS_UTILS_SSAUPDATERBULK_H Type
MessagePack types as defined in the standard, with the exception of Integer being divided into a sign...
This class represents lattice values for constants.
unsigned AddVariable(StringRef Name, Type *Ty)
Add a new variable to the SSA rewriter.
amdgpu Simplify well known AMD library false Value Value const Twine & Name
A Use represents the edge between a Value definition and its users.
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
void AddAvailableValue(unsigned Var, BasicBlock *BB, Value *V)
Indicate that a rewritten value is available in the specified block with the specified value...
PredIteratorCache - This class is an extremely trivial cache for predecessor iterator queries...
Helper class for SSA formation on a set of values defined in multiple blocks.
Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree...
LLVM Basic Block Representation.
The instances of the Type class are immutable: once they are created, they are never changed...
void AddUse(unsigned Var, Use *U)
Record a use of the symbolic value.
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small...
void RewriteAllUses(DominatorTree *DT, SmallVectorImpl< PHINode *> *InsertedPHIs=nullptr)
Perform all the necessary updates, including new PHI-nodes insertion and the requested uses update...
LLVM Value Representation.
SSAUpdaterBulk & operator=(const SSAUpdaterBulk &)=delete
StringRef - Represent a constant reference to a string, i.e.
bool HasValueForBlock(unsigned Var, BasicBlock *BB)
Return true if the SSAUpdater already has a value for the specified variable in the specified block...