ΒΆllvm::Instruction* propagateMetadata(
llvm::Instruction* I,
ArrayRef<llvm::Value*> VL)
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:294
Parameters
- llvm::Instruction* I
- ArrayRef<llvm::Value*> VL