llvm::AAMemoryBehavior

An abstract interface for memory access kind related attributes (readnone/readonly/writeonly).

Synopsis

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

struct AAMemoryBehavior
    : IRAttribute<Attribute::None, StateWrapper<BitIntegerState<uint8_t, 3>, AbstractAttribute>, AAMemoryBehavior>

Base Classes

NameDescription
IRAttribute<Attribute::None, StateWrapper<BitIntegerState<uint8_t, 3>, AbstractAttribute>, AAMemoryBehavior>Helper class that provides common functionality to manifest IR attributes.

Enums

NameDescription
Unnamed enum State encoding bits. A set bit in the state means the property holds. BEST_STATE is the best possible state, 0 the worst possible state.

Member Functions

NameDescription
AAMemoryBehavior [constructor]Create a AAMemoryBehavior for the position IRP.
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()
isAssumedReadNone Return true if we assume that the underlying value is not read or accessed in its respective scope.
isAssumedReadOnly Return true if we assume that the underlying value is not accessed (=written) in its respective scope.
isAssumedWriteOnly Return true if we assume that the underlying value is not read in its respective scope.
isKnownReadNone Return true if we know that the underlying value is not read or accessed in its respective scope.
isKnownReadOnly Return true if we know that the underlying value is not accessed (=written) in its respective scope.
isKnownWriteOnly Return true if we know that the underlying value is not read in its respective scope.
manifest [virtual]See AbstractAttribute::manifest(...).

Static Member Functions

NameDescription
classof This function should return true if the type of the AA is AAMemoryBehavior
createForPosition Create an abstract attribute view for the position IRP.
hasTrivialInitializer See AbstractAttribute::hasTrivialInitializer.
isImpliedByIR Return true if the IR already implies this attribute.
isImpliedByPoison Return true if the IR attribute(s) associated with this AA are implied for an poison value.
isImpliedByUndef Return true if the IR attribute(s) associated with this AA are implied for an undef value.
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.