ΒΆinline llvm::Metadata* MapMetadata(
const llvm::Metadata* MD,
llvm::ValueToValueMapTy& VM,
llvm::RemapFlags Flags = RF_None,
llvm::ValueMapTypeRemapper* TypeMapper =
nullptr,
llvm::ValueMaterializer* Materializer =
nullptr)
inline llvm::Metadata* MapMetadata(
const llvm::Metadata* MD,
llvm::ValueToValueMapTy& VM,
llvm::RemapFlags Flags = RF_None,
llvm::ValueMapTypeRemapper* TypeMapper =
nullptr,
llvm::ValueMaterializer* Materializer =
nullptr)
Description
Lookup or compute a mapping for a piece of metadata. Compute and memoize a mapping for \c MD. 1. If \c MD is mapped, return it. 2. Else if \a RF_NoModuleLevelChanges or \c MD is an \a MDString, return\c MD. 3. Else if \c MD is a \a ConstantAsMetadata, call \a MapValue() and re-wrap its return (returning nullptr on nullptr). 4. Else, \c MD is an \a MDNode. These are remapped, along with their transitive operands. Distinct nodes are duplicated or moved depending on \a RF_MoveDistinctNodes. Uniqued nodes are remapped like constants.
Declared at: llvm/include/llvm/Transforms/Utils/ValueMapper.h:228
Parameters
- const llvm::Metadata* MD
- llvm::ValueToValueMapTy& VM
- llvm::RemapFlags Flags = RF_None
- llvm::ValueMapTypeRemapper* TypeMapper = nullptr
- llvm::ValueMaterializer* Materializer = nullptr