module LLVM.AST.FunctionAttribute where
import LLVM.Prelude
data FunctionAttribute
= NoReturn
| NoUnwind
| ReadNone
| ReadOnly
| NoInline
| NoRecurse
| AlwaysInline
| MinimizeSize
| OptimizeForSize
| OptimizeNone
| StackProtect
| StackProtectReq
| StackProtectStrong
| StrictFP
| NoRedZone
| NoImplicitFloat
| Naked
| InlineHint
| StackAlignment Word64
| ReturnsTwice
| UWTable
| NonLazyBind
| Builtin
| NoBuiltin
| Cold
| JumpTable
| NoDuplicate
| SanitizeAddress
| SanitizeHWAddress
| SanitizeThread
| SanitizeMemory
| Speculatable
| StringAttribute {
stringAttributeKind :: ShortByteString,
stringAttributeValue :: ShortByteString
}
| AllocSize Word32 (Maybe Word32)
| WriteOnly
| ArgMemOnly
| Convergent
| InaccessibleMemOnly
| InaccessibleMemOrArgMemOnly
| SafeStack
deriving (Eq, Ord, Read, Show, Typeable, Data, Generic)
newtype GroupID = GroupID Word
deriving (Eq, Ord, Read, Show, Typeable, Data, Generic)