LLVM 22.0.0git
ValueMapper.h File Reference

Go to the source code of this file.

Classes

class  llvm::ValueMapTypeRemapper
 This is a class that can be implemented by clients to remap types when cloning constants and instructions. More...
class  llvm::ValueMaterializer
 This is a class that can be implemented by clients to materialize Values on demand. More...
class  llvm::ValueMapper
 Context for (re-)mapping values (and metadata). More...

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.

Typedefs

using llvm::DbgRecordIterator = simple_ilist<DbgRecord>::iterator
using llvm::MetadataSetTy = SmallPtrSet<const Metadata *, 16>
using llvm::MetadataPredicate = std::function<bool(const Metadata *)>

Enumerations

enum  llvm::RemapFlags {
  llvm::RF_None = 0 , llvm::RF_NoModuleLevelChanges = 1 , llvm::RF_IgnoreMissingLocals = 2 , llvm::RF_ReuseAndMutateDistinctMDs = 4 ,
  llvm::RF_NullMapMissingGlobalValues = 8 , llvm::RF_DoNotRemapAtoms = 16
}
 These are flags that the value mapping APIs allow. More...

Functions

RemapFlags llvm::operator| (RemapFlags LHS, RemapFlags RHS)
Valuellvm::MapValue (const Value *V, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr, const MetadataPredicate *IdentityMD=nullptr)
 Look up or compute a value in the value map.
Metadatallvm::MapMetadata (const Metadata *MD, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr, const MetadataPredicate *IdentityMD=nullptr)
 Lookup or compute a mapping for a piece of metadata.
MDNodellvm::MapMetadata (const MDNode *MD, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr, const MetadataPredicate *IdentityMD=nullptr)
 Version of MapMetadata with type safety for MDNode.
void llvm::RemapInstruction (Instruction *I, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr, const MetadataPredicate *IdentityMD=nullptr)
 Convert the instruction operands from referencing the current values into those specified by VM.
LLVM_ABI void llvm::RemapSourceAtom (Instruction *I, ValueToValueMapTy &VM)
 Remap source location atom.
void llvm::RemapDbgRecord (Module *M, DbgRecord *DR, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr, const MetadataPredicate *IdentityMD=nullptr)
 Remap the Values used in the DbgRecord DR using the value map VM.
void llvm::RemapDbgRecordRange (Module *M, iterator_range< DbgRecordIterator > Range, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr, const MetadataPredicate *IdentityMD=nullptr)
 Remap the Values used in the DbgRecords Range using the value map VM.
void llvm::RemapFunction (Function &F, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr, const MetadataPredicate *IdentityMD=nullptr)
 Remap the operands, metadata, arguments, and instructions of a function.
Constantllvm::MapValue (const Constant *V, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr, const MetadataPredicate *IdentityMD=nullptr)
 Version of MapValue with type safety for Constant.