LLVM 22.0.0git
|
Helper to manage IR metadata for recipes. More...
#include "Transforms/Vectorize/VPlan.h"
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. | |
VPIRMetadata & | operator= (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. | |
Helper to manage IR metadata for recipes.
It filters out metadata that cannot be propagated.
|
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::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.
|
inline |
void VPIRMetadata::applyMetadata | ( | Instruction & | I | ) | const |
Add all metadata to I
.
Definition at line 1595 of file VPlanRecipes.cpp.
References I.
Referenced by llvm::VPWidenRecipe::execute(), llvm::VPWidenCastRecipe::execute(), llvm::VPWidenIntrinsicRecipe::execute(), llvm::VPWidenCallRecipe::execute(), llvm::VPWidenSelectRecipe::execute(), llvm::VPInterleaveRecipe::execute(), llvm::VPInterleaveEVLRecipe::execute(), llvm::VPWidenLoadRecipe::execute(), llvm::VPWidenLoadEVLRecipe::execute(), llvm::VPWidenStoreRecipe::execute(), llvm::VPWidenStoreEVLRecipe::execute(), and scalarizeInstruction().
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().
|
inline |
Definition at line 952 of file VPlan.h.
References llvm::Other.