llvm::AAMemoryLocation

An abstract interface for all memory location attributes (readnone/argmemonly/inaccessiblememonly/inaccessibleorargmemonly).

Synopsis

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

struct AAMemoryLocation
    : IRAttribute<Attribute::None, StateWrapper<BitIntegerState<uint32_t, 511>, AbstractAttribute>, AAMemoryLocation>

Base Classes

NameDescription
IRAttribute<Attribute::None, StateWrapper<BitIntegerState<uint32_t, 511>, AbstractAttribute>, AAMemoryLocation>Helper class that provides common functionality to manifest IR attributes.

Type Aliases

NameDescription
MemoryLocationsKind Bitmask type encoding memory location kinds.

Enums

NameDescription
Unnamed enum Encoding of different locations that could be accessed by a memory access.
AccessKind Simple enum to distinguish read/write/read-write accesses.

Member Functions

NameDescription
AAMemoryLocation [constructor]Create a AAMemoryLocation for the position IRP.
checkForAllAccessesToMemoryKind [virtual]Check Pred on all accesses to the memory kinds specified by MLK.
getAsStr [virtual]See AbstractState::getAsStr(Attributor).
getAssumedNotAccessedLocation Return the locations that are assumed to be not accessed by the associated function, if any.
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()
isAssumedArgMemOnly Return true if we assume that the underlying value will only access argument pointees (see Attribute::ArgMemOnly).
isAssumedInaccessibleMemOnly Return true if we assume that the underlying value will only access inaccesible memory only (see Attribute::InaccessibleMemOnly).
isAssumedInaccessibleOrArgMemOnly Return true if we assume that the underlying value will only access inaccesible memory or argument pointees (see Attribute::InaccessibleOrArgMemOnly).
isAssumedReadNone Return true if we assume that the associated functions has no observable accesses.
isAssumedSpecifiedMemOnly Return true if only the memory locations specififed by MLK are assumed to be accessed by the associated function.
isAssumedStackOnly Return true if we assume that the associated functions has at most local/stack accesses.
isKnowStackOnly Return true if we know that the associated functions has at most local/stack accesses.
isKnownArgMemOnly Return true if we know that the underlying value will only access argument pointees (see Attribute::ArgMemOnly).
isKnownInaccessibleMemOnly Return true if we know that the underlying value will only access inaccesible memory only (see Attribute::InaccessibleMemOnly).
isKnownInaccessibleOrArgMemOnly Return true if we know that the underlying value will only access inaccesible memory or argument pointees (see Attribute::InaccessibleOrArgMemOnly).
isKnownReadNone Return true if we know that the associated functions has no observable accesses.
manifest [virtual]See AbstractAttribute::manifest(...).
mayAccessArgMem Return true if the underlying value may access memory through arguement pointers of the associated function, if any.

Static Member Functions

NameDescription
classof This function should return true if the type of the AA is AAMemoryLocation
createForPosition Create an abstract attribute view for the position IRP.
getMemoryLocationsAsStr Return the locations encoded by MLK as a readable string.
hasTrivialInitializer See AbstractAttribute::hasTrivialInitializer.
inverseLocation Return the inverse of memory-location kind Loc.
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
requiresCalleeForCallBase See AbstractAttribute::requiresCalleeForCallBase.

Static Data Members

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