llvm::AANoCapture

An abstract interface for all nocapture attributes.

Synopsis

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

struct AANoCapture
    : IRAttribute<Attribute::Captures, StateWrapper<BitIntegerState<uint16_t, 7, 0>, AbstractAttribute>, AANoCapture>

Base Classes

NameDescription
IRAttribute<Attribute::Captures, StateWrapper<BitIntegerState<uint16_t, 7, 0>, AbstractAttribute>, AANoCapture>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. NO_CAPTURE is the best possible state, 0 the worst possible state.

Member Functions

NameDescription
AANoCapture [constructor]Create a AANoCapture 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()
isAssumedNoCapture Return true if we assume that the underlying value is not captured in its respective scope.
isAssumedNoCaptureMaybeReturned Return true if we assume that the underlying value is not captured in its respective scope but we allow it to escape through a "return".
isKnownNoCapture Return true if we know that the underlying value is not captured in its respective scope.
isKnownNoCaptureMaybeReturned Return true if we know that the underlying value is not captured in its respective scope but we allow it to escape through a "return".
manifest [virtual]See AbstractAttribute::manifest(...).

Static Member Functions

NameDescription
classof This function should return true if the type of the AA is AANoCapture
createForPosition Create an abstract attribute view for the position IRP.
determineFunctionCaptureCapabilities Update State according to the capture capabilities of F for position IRP.
hasTrivialInitializer Most boolean IRAttribute AAs don't do anything non-trivial in their initializers while non-boolean ones often do. Subclasses can change this.
isImpliedByIR isImpliedByIR overloads
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.