|
LLVM 22.0.0git
|
Helper to manage IR metadata for recipes. More...
#include "Transforms/Vectorize/VPlan.h"
Public Member Functions | |
| VPIRMetadata ()=default | |
| VPIRMetadata (Instruction &I) | |
Adds metatadata that can be preserved from the original instruction I. | |
| VPIRMetadata (const VPIRMetadata &Other)=default | |
| Copy constructor for cloning. | |
| VPIRMetadata & | operator= (const VPIRMetadata &Other)=default |
| void | applyMetadata (Instruction &I) const |
Add all metadata to I. | |
| void | setMetadata (unsigned Kind, MDNode *Node) |
Set metadata with kind Kind to Node. | |
| void | intersect (const VPIRMetadata &MD) |
Intersect this VPIRMetada object with MD, keeping only metadata nodes that are common to both. | |
| MDNode * | getMetadata (unsigned Kind) const |
Get metadata of kind Kind. Returns nullptr if not found. | |
Helper to manage IR metadata for recipes.
It filters out metadata that cannot be propagated.
|
default |
|
inline |
Adds metatadata that can be preserved from the original instruction I.
Definition at line 990 of file VPlan.h.
References llvm::getMetadataToPropagate(), and I.
|
default |
Copy constructor for cloning.
References llvm::Other, and VPIRMetadata().
| void VPIRMetadata::applyMetadata | ( | Instruction & | I | ) | const |
Add all metadata to I.
Definition at line 1591 of file VPlanRecipes.cpp.
References I.
Referenced by llvm::VPInterleaveEVLRecipe::execute(), llvm::VPInterleaveRecipe::execute(), llvm::VPWidenCallRecipe::execute(), llvm::VPWidenCastRecipe::execute(), llvm::VPWidenIntrinsicRecipe::execute(), llvm::VPWidenLoadEVLRecipe::execute(), llvm::VPWidenLoadRecipe::execute(), llvm::VPWidenRecipe::execute(), llvm::VPWidenSelectRecipe::execute(), llvm::VPWidenStoreEVLRecipe::execute(), llvm::VPWidenStoreRecipe::execute(), and scalarizeInstruction().
Get metadata of kind Kind. Returns nullptr if not found.
Definition at line 1018 of file VPlan.h.
References llvm::find_if(), and P.
| void VPIRMetadata::intersect | ( | const VPIRMetadata & | MD | ) |
Intersect this VPIRMetada object with MD, keeping only metadata nodes that are common to both.
Definition at line 1596 of file VPlanRecipes.cpp.
References llvm::SmallVectorImpl< T >::emplace_back(), llvm::Other, and VPIRMetadata().
Referenced by llvm::VPlanTransforms::createInterleaveGroups(), and getCommonLoadMetadata().
|
default |
References I, llvm::Other, and VPIRMetadata().
Set metadata with kind Kind to Node.
If metadata with Kind already exists, it will be replaced. Otherwise, it will be added.
Definition at line 1002 of file VPlan.h.
References llvm::find_if(), and P.