Thanks to visit codestin.com
Credit goes to llvm.org

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 939 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 947 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 1605 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 954 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 965 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 1621 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 956 of file VPlan.h.

References llvm::Other, and VPIRMetadata().


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