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 (Instruction &I, LoopVersioning *LVer)
 Adds metatadata that can be preserved from the original instruction I and noalias metadata guaranteed by runtime checks using LVer.
 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 addMetadata (unsigned Kind, MDNode *Node)
 Add metadata with kind Kind and Node.
void intersect (const VPIRMetadata &MD)
 Intersect this VPIRMetada object with MD, keeping only metadata nodes that are common to both.

Detailed Description

Helper to manage IR metadata for recipes.

It filters out metadata that cannot be propagated.

Definition at line 938 of file VPlan.h.

Constructor & Destructor Documentation

◆ VPIRMetadata() [1/4]

◆ VPIRMetadata() [2/4]

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

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

Definition at line 946 of file VPlan.h.

References llvm::getMetadataToPropagate(), and I.

◆ VPIRMetadata() [3/4]

VPIRMetadata::VPIRMetadata ( Instruction & I,
LoopVersioning * LVer )

Adds metatadata that can be preserved from the original instruction I and noalias metadata guaranteed by runtime checks using LVer.

Definition at line 1649 of file VPlanRecipes.cpp.

References llvm::LoopVersioning::getNoAliasMetadataFor(), I, if(), llvm::isa(), and VPIRMetadata().

◆ VPIRMetadata() [4/4]

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

Copy constructor for cloning.

References llvm::Other, and VPIRMetadata().

Member Function Documentation

◆ addMetadata()

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

Add metadata with kind Kind and Node.

Definition at line 961 of file VPlan.h.

◆ applyMetadata()

◆ 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 1665 of file VPlanRecipes.cpp.

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

Referenced by llvm::VPlanTransforms::createInterleaveGroups().

◆ operator=()

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

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


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