15 #ifndef LLVM_TRANSFORMS_UTILS_VALUEMAPPER_H
16 #define LLVM_TRANSFORMS_UTILS_VALUEMAPPER_H
28 virtual void anchor();
40 virtual void anchor();
66 return RemapFlags(
unsigned(LHS)|
unsigned(RHS));
71 ValueMapTypeRemapper *TypeMapper =
nullptr,
72 ValueMaterializer *Materializer =
nullptr);
76 ValueMapTypeRemapper *TypeMapper =
nullptr,
77 ValueMaterializer *Materializer =
nullptr);
82 ValueMapTypeRemapper *TypeMapper =
nullptr,
83 ValueMaterializer *Materializer =
nullptr);
87 ValueMapTypeRemapper *TypeMapper =
nullptr,
88 ValueMaterializer *Materializer =
nullptr);
virtual ~ValueMaterializer()
virtual ~ValueMapTypeRemapper()
SmallBitVector operator|(const SmallBitVector &LHS, const SmallBitVector &RHS)
RF_NoModuleLevelChanges - If this flag is set, the remapper knows that only local values within a fun...
RF_IgnoreMissingEntries - If this flag is set, the remapper ignores entries that are not in the value...
ValueMaterializer - This is a class that can be implemented by clients to materialize Values on deman...
The instances of the Type class are immutable: once they are created, they are never changed...
This is an important base class in LLVM.
Metadata * MapMetadata(const Metadata *MD, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr)
Value * MapValue(const Value *V, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr)
ValueMap< const Value *, WeakVH > ValueToValueMapTy
virtual Value * materializeValueFor(Value *V)=0
materializeValueFor - The client should implement this method if they want to generate a mapped Value...
RemapFlags
RemapFlags - These are flags that the value mapping APIs allow.
void RemapInstruction(Instruction *I, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr)
RemapInstruction - Convert the instruction operands from referencing the current values into those sp...
ValueMapTypeRemapper - This is a class that can be implemented by clients to remap types when cloning...
LLVM Value Representation.
virtual Type * remapType(Type *SrcTy)=0
remapType - The client should implement this method if they want to remap types while mapping values...