14 #ifndef LLVM_TRANSFORMS_UTILS_SSAUPDATER_H
15 #define LLVM_TRANSFORMS_UTILS_SSAUPDATER_H
24 template<
typename T>
class SmallVectorImpl;
25 template<
typename T>
class SSAUpdaterTraits;
50 std::string ProtoName;
COFF::RelocationTypeX86 Type
Helper class for SSA formation on a set of values defined in multiple blocks.
void Initialize(Type *Ty, StringRef Name)
Reset this object to get ready for a new set of SSA updates with type 'Ty'.
void AddAvailableValue(BasicBlock *BB, Value *V)
Indicate that a rewritten value is available in the specified block with the specified value...
LoopInfoBase< BlockT, LoopT > * LI
Value * GetValueInMiddleOfBlock(BasicBlock *BB)
Construct SSA form, materializing a value that is live in the middle of the specified block...
LLVM Basic Block Representation.
void RewriteUseAfterInsertions(Use &U)
Rewrite a use like RewriteUse but handling in-block definitions.
SSAUpdater(SmallVectorImpl< PHINode * > *InsertedPHIs=0)
bool HasValueForBlock(BasicBlock *BB) const
Return true if the SSAUpdater already has a value for the specified block.
#define LLVM_DELETED_FUNCTION
LLVM Value Representation.
Value * GetValueAtEndOfBlock(BasicBlock *BB)
Construct SSA form, materializing a value that is live at the end of the specified block...
void RewriteUse(Use &U)
Rewrite a use of the symbolic value.