Go to the documentation of this file.
13 #ifndef LLVM_TRANSFORMS_UTILS_SSAUPDATERBULK_H
14 #define LLVM_TRANSFORMS_UTILS_SSAUPDATERBULK_H
24 template <
typename T>
class SmallVectorImpl;
45 RewriteInfo() =
default;
86 #endif // LLVM_TRANSFORMS_UTILS_SSAUPDATERBULK_H
This is an optimization pass for GlobalISel generic memory operations.
void AddUse(unsigned Var, Use *U)
Record a use of the symbolic value.
PredIteratorCache - This class is an extremely trivial cache for predecessor iterator queries.
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree.
The instances of the Type class are immutable: once they are created, they are never changed.
SmallPtrSet< MachineInstr *, 2 > Uses
LLVM Basic Block Representation.
Helper class for SSA formation on a set of values defined in multiple blocks.
SSAUpdaterBulk & operator=(const SSAUpdaterBulk &)=delete
~SSAUpdaterBulk()=default
@ BasicBlock
Various leaf nodes.
StringRef - Represent a constant reference to a string, i.e.
unsigned AddVariable(StringRef Name, Type *Ty)
Add a new variable to the SSA rewriter.
void AddAvailableValue(unsigned Var, BasicBlock *BB, Value *V)
Indicate that a rewritten value is available in the specified block with the specified value.
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
Common register allocation spilling lr str ldr sxth r3 ldr mla r4 can lr mov lr str ldr sxth r3 mla r4 and then merge mul and lr str ldr sxth r3 mla r4 It also increase the likelihood the store may become dead bb27 Successors according to LLVM BB
LLVM Value Representation.
void RewriteAllUses(DominatorTree *DT, SmallVectorImpl< PHINode * > *InsertedPHIs=nullptr)
Perform all the necessary updates, including new PHI-nodes insertion and the requested uses update.
A Use represents the edge between a Value definition and its users.