LLVM 22.0.0git
llvm::VPIRMetadata Class Reference

Helper to manage IR metadata for recipes. More...

#include "Transforms/Vectorize/VPlan.h"

Inheritance diagram for llvm::VPIRMetadata:
[legend]

Public Member Functions

 VPIRMetadata ()=default
 VPIRMetadata (Instruction &I)
 Adds metatadata that can be preserved from the original instruction I.
 VPIRMetadata (const VPIRMetadata &Other)=default
 Copy constructor for cloning.
VPIRMetadataoperator= (const VPIRMetadata &Other)=default
void applyMetadata (Instruction &I) const
 Add all metadata to I.
void setMetadata (unsigned Kind, MDNode *Node)
 Set metadata with kind Kind to Node.
void intersect (const VPIRMetadata &MD)
 Intersect this VPIRMetada object with MD, keeping only metadata nodes that are common to both.
MDNodegetMetadata (unsigned Kind) const
 Get metadata of kind Kind. Returns nullptr if not found.

Detailed Description

Helper to manage IR metadata for recipes.

It filters out metadata that cannot be propagated.

Definition at line 982 of file VPlan.h.

Constructor & Destructor Documentation

◆ VPIRMetadata() [1/3]

◆ VPIRMetadata() [2/3]

llvm::VPIRMetadata::VPIRMetadata ( Instruction & I)
inline

Adds metatadata that can be preserved from the original instruction I.

Definition at line 990 of file VPlan.h.

References llvm::getMetadataToPropagate(), and I.

◆ VPIRMetadata() [3/3]

llvm::VPIRMetadata::VPIRMetadata ( const VPIRMetadata & Other)
default

Copy constructor for cloning.

References llvm::Other, and VPIRMetadata().

Member Function Documentation

◆ applyMetadata()

◆ getMetadata()

MDNode * llvm::VPIRMetadata::getMetadata ( unsigned Kind) const
inline

Get metadata of kind Kind. Returns nullptr if not found.

Definition at line 1018 of file VPlan.h.

References llvm::find_if(), and P.

◆ intersect()

void VPIRMetadata::intersect ( const VPIRMetadata & MD)

Intersect this VPIRMetada object with MD, keeping only metadata nodes that are common to both.

Definition at line 1596 of file VPlanRecipes.cpp.

References llvm::SmallVectorImpl< T >::emplace_back(), llvm::Other, and VPIRMetadata().

Referenced by llvm::VPlanTransforms::createInterleaveGroups(), and getCommonLoadMetadata().

◆ operator=()

VPIRMetadata & llvm::VPIRMetadata::operator= ( const VPIRMetadata & Other)
default

References I, llvm::Other, and VPIRMetadata().

◆ setMetadata()

void llvm::VPIRMetadata::setMetadata ( unsigned Kind,
MDNode * Node )
inline

Set metadata with kind Kind to Node.

If metadata with Kind already exists, it will be replaced. Otherwise, it will be added.

Definition at line 1002 of file VPlan.h.

References llvm::find_if(), and P.


The documentation for this class was generated from the following files: