llvm-party-12.1.0: src/LLVM/AST/FunctionAttribute.hs
-- | Module to allow importing 'FunctionAttribute' distinctly qualified.
module LLVM.AST.FunctionAttribute where
import LLVM.Prelude
-- | <http://llvm.org/docs/LangRef.html#function-attributes>
data FunctionAttribute
= AllocSize Word32 (Maybe Word32) -- ^ AllocSize 0 (Just 0) is invalid
| AlwaysInline
| ArgMemOnly
| Builtin
| Cold
| Convergent
| InaccessibleMemOnly
| InaccessibleMemOrArgMemOnly
| InlineHint
| JumpTable
| MinimizeSize
| MustProgress
| Naked
| NoBuiltin
| NoDuplicate
| NoFree
| NoImplicitFloat
| NoInline
| NonLazyBind
| NoRecurse
| NoRedZone
| NoReturn
| NoSync
| NoUnwind
| OptimizeForSize
| OptimizeNone
| ReadNone
| ReadOnly
| ReturnsTwice
| SafeStack
| SanitizeAddress
| SanitizeHWAddress
| SanitizeMemory
| SanitizeThread
| Speculatable
| StackAlignment Word64
| StackProtect
| StackProtectReq
| StackProtectStrong
| StrictFP
| StringAttribute {
stringAttributeKind :: ShortByteString,
stringAttributeValue :: ShortByteString -- ^ Use "" for no value -- the two are conflated
}
| UWTable
| WillReturn
| WriteOnly
deriving (Eq, Ord, Read, Show, Typeable, Data, Generic)
-- | <http://llvm.org/docs/LangRef.html#attribute-groups>
newtype GroupID = GroupID Word
deriving (Eq, Ord, Read, Show, Typeable, Data, Generic)