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 ()
 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)
 Copy constructor for cloning.
VPIRMetadataoperator= (const VPIRMetadata &Other)
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 1620 of file VPlanRecipes.cpp.

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

◆ VPIRMetadata() [4/4]

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

Copy constructor for cloning.

Definition at line 953 of file VPlan.h.

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 964 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 1636 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)
inline

Definition at line 955 of file VPlan.h.

References llvm::Other, and VPIRMetadata().


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