LLVM 20.0.0git
|
Helper class that provides common functionality to manifest IR attributes. More...
#include "llvm/Transforms/IPO/Attributor.h"
Public Member Functions | |
IRAttribute (const IRPosition &IRP) | |
ChangeStatus | manifest (Attributor &A) override |
See AbstractAttribute::manifest(...). | |
Attribute::AttrKind | getAttrKind () const |
Return the kind that identifies the abstract attribute implementation. | |
virtual void | getDeducedAttributes (Attributor &A, LLVMContext &Ctx, SmallVectorImpl< Attribute > &Attrs) const |
Return the deduced attributes in Attrs . | |
Static Public Member Functions | |
static bool | hasTrivialInitializer () |
Most boolean IRAttribute AAs don't do anything non-trivial in their initializers while non-boolean ones often do. | |
static bool | isImpliedByUndef () |
Return true if the IR attribute(s) associated with this AA are implied for an undef value. | |
static bool | isImpliedByPoison () |
Return true if the IR attribute(s) associated with this AA are implied for an poison value. | |
static bool | isImpliedByIR (Attributor &A, const IRPosition &IRP, Attribute::AttrKind ImpliedAttributeKind=AK, bool IgnoreSubsumingPositions=false) |
Static Public Attributes | |
static constexpr Attribute::AttrKind | IRAttributeKind = AK |
Compile time access to the IR attribute kind. | |
Helper class that provides common functionality to manifest IR attributes.
Definition at line 3189 of file Attributor.h.
|
inline |
Definition at line 3190 of file Attributor.h.
|
inline |
Return the kind that identifies the abstract attribute implementation.
Definition at line 3232 of file Attributor.h.
Referenced by llvm::IRAttribute< AK, BaseType, AAType >::getDeducedAttributes().
|
inlinevirtual |
Return the deduced attributes in Attrs
.
Definition at line 3235 of file Attributor.h.
References llvm::Attribute::get(), and llvm::IRAttribute< AK, BaseType, AAType >::getAttrKind().
Referenced by llvm::IRAttribute< AK, BaseType, AAType >::manifest().
|
inlinestatic |
Most boolean IRAttribute AAs don't do anything non-trivial in their initializers while non-boolean ones often do.
Subclasses can change this.
Definition at line 3195 of file Attributor.h.
References llvm::Attribute::isEnumAttrKind().
|
inlinestatic |
Definition at line 3208 of file Attributor.h.
References A, and llvm::IRPosition::getAssociatedValue().
Referenced by llvm::AAWillReturn::isImpliedByIR().
|
inlinestatic |
Return true if the IR attribute(s) associated with this AA are implied for an poison value.
Definition at line 3206 of file Attributor.h.
|
inlinestatic |
Return true if the IR attribute(s) associated with this AA are implied for an undef value.
Definition at line 3202 of file Attributor.h.
|
inlineoverride |
See AbstractAttribute::manifest(...).
Definition at line 3221 of file Attributor.h.
References A, llvm::SmallVectorBase< Size_T >::empty(), llvm::IRAttribute< AK, BaseType, AAType >::getDeducedAttributes(), and llvm::UNCHANGED.
|
staticconstexpr |
Compile time access to the IR attribute kind.
Definition at line 3198 of file Attributor.h.