Sort the enums in preparation for moving the attributes to a table-gen
file.
rdar://problem/
19836465
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252692
91177308-0d34-0410-b5e6-
96231b3b80d8
///< stored as log2 of alignment with +1 bias
///< 0 means unaligned (different from align(1))
AlwaysInline, ///< inline=always
///< stored as log2 of alignment with +1 bias
///< 0 means unaligned (different from align(1))
AlwaysInline, ///< inline=always
+ ArgMemOnly, ///< Funciton can access memory only using pointers
+ ///< based on its arguments.
Builtin, ///< Callee is recognized as a builtin, despite
///< nobuiltin attribute on its declaration.
ByVal, ///< Pass structure by value
Builtin, ///< Callee is recognized as a builtin, despite
///< nobuiltin attribute on its declaration.
ByVal, ///< Pass structure by value
- InAlloca, ///< Pass structure in an alloca
Cold, ///< Marks function as being in a cold path.
Convergent, ///< Can only be moved to control-equivalent blocks
Cold, ///< Marks function as being in a cold path.
Convergent, ///< Can only be moved to control-equivalent blocks
+ Dereferenceable, ///< Pointer is known to be dereferenceable
+ DereferenceableOrNull, ///< Pointer is either null or dereferenceable
+ InAlloca, ///< Pass structure in an alloca
InlineHint, ///< Source said inlining was desirable
InReg, ///< Force argument to be passed in register
JumpTable, ///< Build jump-instruction tables and replace refs.
InlineHint, ///< Source said inlining was desirable
InReg, ///< Force argument to be passed in register
JumpTable, ///< Build jump-instruction tables and replace refs.
NoDuplicate, ///< Call cannot be duplicated
NoImplicitFloat, ///< Disable implicit floating point insts
NoInline, ///< inline=never
NoDuplicate, ///< Call cannot be duplicated
NoImplicitFloat, ///< Disable implicit floating point insts
NoInline, ///< inline=never
- NoRecurse, ///< The function does not recurse
NonLazyBind, ///< Function is called early and/or
///< often, so lazy binding isn't worthwhile
NonNull, ///< Pointer is known to be not null
NonLazyBind, ///< Function is called early and/or
///< often, so lazy binding isn't worthwhile
NonNull, ///< Pointer is known to be not null
- Dereferenceable, ///< Pointer is known to be dereferenceable
- DereferenceableOrNull, ///< Pointer is either null or dereferenceable
+ NoRecurse, ///< The function does not recurse
NoRedZone, ///< Disable redzone
NoReturn, ///< Mark the function as not returning
NoUnwind, ///< Function doesn't unwind stack
NoRedZone, ///< Disable redzone
NoReturn, ///< Mark the function as not returning
NoUnwind, ///< Function doesn't unwind stack
OptimizeNone, ///< Function must not be optimized.
ReadNone, ///< Function does not access memory
ReadOnly, ///< Function only reads from memory
OptimizeNone, ///< Function must not be optimized.
ReadNone, ///< Function does not access memory
ReadOnly, ///< Function only reads from memory
- ArgMemOnly, ///< Funciton can access memory only using pointers
- ///< based on its arguments.
Returned, ///< Return value is always equal to this argument
ReturnsTwice, ///< Function can return twice
Returned, ///< Return value is always equal to this argument
ReturnsTwice, ///< Function can return twice
+ SafeStack, ///< Safe Stack protection.
+ SanitizeAddress, ///< AddressSanitizer is on.
+ SanitizeMemory, ///< MemorySanitizer is on.
+ SanitizeThread, ///< ThreadSanitizer is on.
SExt, ///< Sign extended before/after call
StackAlignment, ///< Alignment of stack for function (3 bits)
///< stored as log2 of alignment with +1 bias 0
SExt, ///< Sign extended before/after call
StackAlignment, ///< Alignment of stack for function (3 bits)
///< stored as log2 of alignment with +1 bias 0
StackProtect, ///< Stack protection.
StackProtectReq, ///< Stack protection required.
StackProtectStrong, ///< Strong Stack protection.
StackProtect, ///< Stack protection.
StackProtectReq, ///< Stack protection required.
StackProtectStrong, ///< Strong Stack protection.
- SafeStack, ///< Safe Stack protection.
StructRet, ///< Hidden pointer to structure to return
StructRet, ///< Hidden pointer to structure to return
- SanitizeAddress, ///< AddressSanitizer is on.
- SanitizeThread, ///< ThreadSanitizer is on.
- SanitizeMemory, ///< MemorySanitizer is on.
UWTable, ///< Function must be in a unwind table
ZExt, ///< Zero extended before/after call
UWTable, ///< Function must be in a unwind table
ZExt, ///< Zero extended before/after call
declare <8 x i16> @llvm.arm.neon.vld1.v8i16.p0i8(i8*, i32) nounwind readonly
declare void @llvm.arm.neon.vst1.p0i8.v8i16(i8*, <8 x i16>, i32) nounwind
declare <8 x i16> @llvm.arm.neon.vld1.v8i16.p0i8(i8*, i32) nounwind readonly
declare void @llvm.arm.neon.vst1.p0i8.v8i16(i8*, <8 x i16>, i32) nounwind
-; CHECK: attributes #0 = { nounwind readonly argmemonly }
-; CHECK: attributes #1 = { nounwind argmemonly }
+; CHECK: attributes #0 = { argmemonly nounwind readonly }
+; CHECK: attributes #1 = { argmemonly nounwind }
; CHECK: attributes [[ATTR]] = { nounwind }
; CHECK: attributes [[ATTR]] = { nounwind }
declare <8 x i16> @llvm.arm.neon.vld1.v8i16.p0i8(i8*, i32) nounwind readonly
declare void @llvm.arm.neon.vst1.p0i8.v8i16(i8*, <8 x i16>, i32) nounwind
declare <8 x i16> @llvm.arm.neon.vld1.v8i16.p0i8(i8*, i32) nounwind readonly
declare void @llvm.arm.neon.vst1.p0i8.v8i16(i8*, <8 x i16>, i32) nounwind
-; CHECK: attributes #0 = { nounwind readonly argmemonly }
-; CHECK: attributes #1 = { nounwind argmemonly }
+; CHECK: attributes #0 = { argmemonly nounwind readonly }
+; CHECK: attributes #1 = { argmemonly nounwind }
; CHECK: attributes [[NUW]] = { nounwind }
!0 = !{!"tbaa root", null}
; CHECK: attributes [[NUW]] = { nounwind }
!0 = !{!"tbaa root", null}
; CHECK: attributes #27 = { uwtable }
; CHECK: attributes #28 = { "cpu"="cortex-a8" }
; CHECK: attributes #29 = { nounwind readnone }
; CHECK: attributes #27 = { uwtable }
; CHECK: attributes #28 = { "cpu"="cortex-a8" }
; CHECK: attributes #29 = { nounwind readnone }
-; CHECK: attributes #30 = { nounwind readonly argmemonly }
-; CHECK: attributes #31 = { nounwind argmemonly }
+; CHECK: attributes #30 = { argmemonly nounwind readonly }
+; CHECK: attributes #31 = { argmemonly nounwind }
; CHECK: attributes #32 = { nounwind readonly }
; CHECK: attributes #33 = { builtin }
; CHECK: attributes #32 = { nounwind readonly }
; CHECK: attributes #33 = { builtin }
; CHECK: attributes #30 = { uwtable }
; CHECK: attributes #31 = { "cpu"="cortex-a8" }
; CHECK: attributes #32 = { nounwind readnone }
; CHECK: attributes #30 = { uwtable }
; CHECK: attributes #31 = { "cpu"="cortex-a8" }
; CHECK: attributes #32 = { nounwind readnone }
-; CHECK: attributes #33 = { nounwind readonly argmemonly }
-; CHECK: attributes #34 = { nounwind argmemonly }
+; CHECK: attributes #33 = { argmemonly nounwind readonly }
+; CHECK: attributes #34 = { argmemonly nounwind }
; CHECK: attributes #35 = { nounwind readonly }
; CHECK: attributes #36 = { builtin }
; CHECK: attributes #35 = { nounwind readonly }
; CHECK: attributes #36 = { builtin }
; CHECK: attributes #31 = { "cpu"="cortex-a8" }
; CHECK: attributes #32 = { norecurse }
; CHECK: attributes #33 = { nounwind readnone }
; CHECK: attributes #31 = { "cpu"="cortex-a8" }
; CHECK: attributes #32 = { norecurse }
; CHECK: attributes #33 = { nounwind readnone }
-; CHECK: attributes #34 = { nounwind readonly argmemonly }
-; CHECK: attributes #35 = { nounwind argmemonly }
+; CHECK: attributes #34 = { argmemonly nounwind readonly }
+; CHECK: attributes #35 = { argmemonly nounwind }
; CHECK: attributes #36 = { nounwind readonly }
; CHECK: attributes #37 = { builtin }
; CHECK: attributes #36 = { nounwind readonly }
; CHECK: attributes #37 = { builtin }
; CHECK: attributes [[NUW]] = { nounwind }
; CHECK: attributes #1 = { nounwind readnone }
; CHECK: attributes #2 = { ssp uwtable }
; CHECK: attributes [[NUW]] = { nounwind }
; CHECK: attributes #1 = { nounwind readnone }
; CHECK: attributes #2 = { ssp uwtable }
-; CHECK: attributes #3 = { nounwind argmemonly }
+; CHECK: attributes #3 = { argmemonly nounwind }
; CHECK: attributes #4 = { noreturn nounwind }
; CHECK: attributes #4 = { noreturn nounwind }
declare void @f2(%struct.big*)
; CHECK: attributes [[NUW]] = { nounwind }
declare void @f2(%struct.big*)
; CHECK: attributes [[NUW]] = { nounwind }
-; CHECK: attributes #1 = { nounwind argmemonly }
+; CHECK: attributes #1 = { argmemonly nounwind }
; CHECK: attributes #2 = { nounwind ssp }
; CHECK: attributes #3 = { nounwind ssp uwtable }
; CHECK: attributes #2 = { nounwind ssp }
; CHECK: attributes #3 = { nounwind ssp uwtable }
-; CHECK: attributes #0 = { nounwind argmemonly }
+; CHECK: attributes #0 = { argmemonly nounwind }
; CHECK: attributes #1 = { nonlazybind }
; CHECK: attributes [[NUW]] = { nounwind }
; CHECK: attributes #1 = { nonlazybind }
; CHECK: attributes [[NUW]] = { nounwind }