ΒΆinline llvm::Value* MapValue(
    const llvm::Value* V,
    llvm::ValueToValueMapTy& VM,
    llvm::RemapFlags Flags = RF_None,
    llvm::ValueMapTypeRemapper* TypeMapper =
        nullptr,
    llvm::ValueMaterializer* Materializer =
        nullptr)

Description

Look up or compute a value in the value map. Return a mapped value for a function-local value (Argument, Instruction, BasicBlock), or compute and memoize a value for a Constant. 1. If \c V is in VM, return the result. 2. Else if \c V can be materialized with \c Materializer, do so, memoize it in \c VM, and return it. 3. Else if \c V is a function-local value, return nullptr. 4. Else if \c V is a \a GlobalValue, return \c nullptr or \c V depending on \a RF_NullMapMissingGlobalValues. 5. Else if \c V is a \a MetadataAsValue wrapping a LocalAsMetadata, recurse on the local SSA value, and return nullptr or "metadata !{}" on missing depending on RF_IgnoreMissingValues. 6. Else if \c V is a \a MetadataAsValue, rewrap the return of \a MapMetadata(). 7. Else, compute the equivalent constant, and return it.

Declared at: llvm/include/llvm/Transforms/Utils/ValueMapper.h:206

Parameters

const llvm::Value* V
llvm::ValueToValueMapTy& VM
llvm::RemapFlags Flags = RF_None
llvm::ValueMapTypeRemapper* TypeMapper = nullptr
llvm::ValueMaterializer* Materializer = nullptr