LLVM 22.0.0git
Public Member Functions | List of all members
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 935 of file VPlan.h.

Constructor & Destructor Documentation

◆ VPIRMetadata() [1/4]

llvm::VPIRMetadata::VPIRMetadata ( )
inline

Definition at line 939 of file VPlan.h.

◆ VPIRMetadata() [2/4]

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

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

Definition at line 943 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 1584 of file VPlanRecipes.cpp.

References llvm::LoopVersioning::getNoAliasMetadataFor(), and I.

◆ VPIRMetadata() [4/4]

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

Copy constructor for cloning.

Definition at line 950 of file VPlan.h.

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()

void VPIRMetadata::applyMetadata ( Instruction I) const

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

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

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

◆ operator=()

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

Definition at line 952 of file VPlan.h.

References llvm::Other.


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