llvm::AANonNull

An abstract interface for all nonnull attributes.

Synopsis

Declared in <llvm/Transforms/IPO/Attributor.h>

struct AANonNull
    : IRAttribute<Attribute::NonNull, StateWrapper<BooleanState, AbstractAttribute>, AANonNull>

Base Classes

NameDescription
IRAttribute<Attribute::NonNull, StateWrapper<BooleanState, AbstractAttribute>, AANonNull>Helper class that provides common functionality to manifest IR attributes.

Member Functions

NameDescription
AANonNull [constructor]Constructor
getAttrKind Return the kind that identifies the abstract attribute implementation.
getDeducedAttributes [virtual]Return the deduced attributes in Attrs.
getIdAddr [virtual]See AbstractAttribute::getIdAddr()
getName [virtual]See AbstractAttribute::getName()
isAssumedNonNull Return true if we assume that the underlying value is nonnull.
isKnownNonNull Return true if we know that underlying value is nonnull.
manifest [virtual]See AbstractAttribute::manifest(...).

Static Member Functions

NameDescription
classof This function should return true if the type of the AA is AANonNull
createForPosition Create an abstract attribute view for the position IRP.
hasTrivialInitializer See AbstractAttribute::hasTrivialInitializer.
isImpliedByIR See AbstractAttribute::isImpliedByIR(...).
isImpliedByPoison Return true if the IR attribute(s) associated with this AA are implied for an poison value.
isImpliedByUndef See IRAttribute::isImpliedByUndef. Undef is not necessarily nonnull as nonnull + noundef would cause poison. Poison implies nonnull though.
isValidIRPositionForInit See AbstractAttribute::isValidIRPositionForInit

Static Data Members

NameDescription
ID Unique ID (due to the unique address)
IRAttributeKind Compile time access to the IR attribute kind.