enum Attribute::AttrKind

Description

This enumeration lists the attributes that can be associated with parameters, function results, or the function itself. Note: The `uwtable' attribute is about the ABI or the user mandating an entry in the unwind table. The `nounwind' attribute is about an exception passing by the function. In a theoretical system that uses tables for profiling and SjLj for exceptions, they would be fully independent. In a normal system that uses tables for both, the semantics are: nil = Needs an entry because an exception might pass by. nounwind = No need for an entry uwtable = Needs an entry because the ABI says so and because an exception might pass by. uwtable + nounwind = Needs an entry because the ABI says so.

Declared at: llvm/include/llvm/IR/Attributes.h:70

Enumerators

NameValueComment
None0No attributes have been set
FirstEnumAttr1
AlwaysInline1
ArgMemOnly2
Builtin3
Cold4
Convergent5
DisableSanitizerInstrumentation6
Hot7
ImmArg8
InReg9
InaccessibleMemOnly10
InaccessibleMemOrArgMemOnly11
InlineHint12
JumpTable13
MinSize14
MustProgress15
Naked16
Nest17
NoAlias18
NoBuiltin19
NoCallback20
NoCapture21
NoCfCheck22
NoDuplicate23
NoFree24
NoImplicitFloat25
NoInline26
NoMerge27
NoProfile28
NoRecurse29
NoRedZone30
NoReturn31
NoSanitizeCoverage32
NoSync33
NoUndef34
NoUnwind35
NonLazyBind36
NonNull37
NullPointerIsValid38
OptForFuzzing39
OptimizeForSize40
OptimizeNone41
ReadNone42
ReadOnly43
Returned44
ReturnsTwice45
SExt46
SafeStack47
SanitizeAddress48
SanitizeHWAddress49
SanitizeMemTag50
SanitizeMemory51
SanitizeThread52
ShadowCallStack53
Speculatable54
SpeculativeLoadHardening55
StackProtect56
StackProtectReq57
StackProtectStrong58
StrictFP59
SwiftAsync60
SwiftError61
SwiftSelf62
UWTable63
WillReturn64
WriteOnly65
ZExt66
LastEnumAttr66
FirstTypeAttr67
ByRef67
ByVal68
ElementType69
InAlloca70
Preallocated71
StructRet72
LastTypeAttr72
FirstIntAttr73
Alignment73
AllocSize74
Dereferenceable75
DereferenceableOrNull76
StackAlignment77
VScaleRange78
LastIntAttr78
EndAttrKinds79Sentinal value useful for loops