ΒΆllvm::Instruction* propagateMetadata(
    llvm::Instruction* I,
    ArrayRef<llvm::Value*> VL)

Description

Specifically, let Kinds = [MD_tbaa, MD_alias_scope, MD_noalias, MD_fpmath, MD_nontemporal, MD_access_group]. For K in Kinds, we get the MDNode for K from each of the elements of VL, compute their "intersection" (i.e., the most generic metadata value that covers all of the individual values), and set I's metadata for M equal to the intersection value. This function always sets a (possibly null) value for each K in Kinds.

Declared at: llvm/include/llvm/Analysis/VectorUtils.h:481

Parameters

llvm::Instruction* I
ArrayRef<llvm::Value*> VL