An abstract interface for all nocapture attributes.
Declared in <llvm/Transforms/IPO/Attributor.h>
struct AANoCapture
: IRAttribute<Attribute::Captures, StateWrapper<BitIntegerState<uint16_t, 7, 0>, AbstractAttribute>, AANoCapture>
| Name | Description |
|---|---|
IRAttribute<Attribute::Captures, StateWrapper<BitIntegerState<uint16_t, 7, 0>, AbstractAttribute>, AANoCapture> | Helper class that provides common functionality to manifest IR attributes. |
| Name | Description |
|---|---|
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. |
| Name | Description |
|---|---|
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(...). |
| Name | Description |
|---|---|
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 |
| Name | Description |
|---|---|
ID | Unique ID (due to the unique address) |
IRAttributeKind | Compile time access to the IR attribute kind. |