13#ifndef LLVM_TRANSFORMS_UTILS_SSAUPDATERBULK_H
14#define LLVM_TRANSFORMS_UTILS_SSAUPDATERBULK_H
46 RewriteInfo() =
default;
This file defines the DenseMap class.
Remove Loads Into Fake Uses
LLVM Basic Block Representation.
Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree.
PredIteratorCache - This class is an extremely trivial cache for predecessor iterator queries.
SSAUpdaterBulk & operator=(const SSAUpdaterBulk &)=delete
~SSAUpdaterBulk()=default
LLVM_ABI unsigned AddVariable(StringRef Name, Type *Ty)
Add a new variable to the SSA rewriter.
LLVM_ABI void AddAvailableValue(unsigned Var, BasicBlock *BB, Value *V)
Indicate that a rewritten value is available in the specified block with the specified value.
LLVM_ABI void RewriteAllUses(DominatorTree *DT, SmallVectorImpl< PHINode * > *InsertedPHIs=nullptr)
Perform all the necessary updates, including new PHI-nodes insertion and the requested uses update.
SSAUpdaterBulk(const SSAUpdaterBulk &)=delete
LLVM_ABI void AddUse(unsigned Var, Use *U)
Record a use of the symbolic value.
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
StringRef - Represent a constant reference to a string, i.e.
The instances of the Type class are immutable: once they are created, they are never changed.
A Use represents the edge between a Value definition and its users.
LLVM Value Representation.
This is an optimization pass for GlobalISel generic memory operations.