ΒΆOptional<llvm::MDNode*> makeFollowupLoopID(
llvm::MDNode* OrigLoopID,
ArrayRef<llvm::StringRef> FollowupAttrs,
const char* InheritOptionsAttrsPrefix = "",
bool AlwaysNew = false)
Optional<llvm::MDNode*> makeFollowupLoopID(
llvm::MDNode* OrigLoopID,
ArrayRef<llvm::StringRef> FollowupAttrs,
const char* InheritOptionsAttrsPrefix = "",
bool AlwaysNew = false)
Description
Create a new loop identifier for a loop created from a loop transformation.
Declared at: llvm/include/llvm/Transforms/Utils/LoopUtils.h:212
Parameters
- llvm::MDNode* OrigLoopID
- The loop ID of the loop before the transformation.
- ArrayRef<llvm::StringRef> FollowupAttrs
- List of attribute names that contain attributes to be added to the new loop ID.
- const char* InheritOptionsAttrsPrefix = ""
- Selects which attributes should be inherited from the original loop. The following values are considered: nullptr : Inherit all attributes from @p OrigLoopID. "" : Do not inherit any attribute from @p OrigLoopID; only use those specified by a followup attribute. "<prefix>": Inherit all attributes except those which start with <prefix >; commonly used to remove metadata for the applied transformation.
- bool AlwaysNew = false
- If true, do not try to reuse OrigLoopID and never return None.
Returns
The loop ID for the after-transformation loop. The following values can be returned: None : No followup attribute was found; it is up to the transformation to choose attributes that make sense.@p OrigLoopID: The original identifier can be reused. nullptr : The new loop has no attributes. MDNode* : A new unique loop identifier.