ghc-9.10.3: The GHC API

Safe Haskell | None
Language | GHC2021

GHC.StgToCmm.Ticky

Synopsis

- withNewTickyCounterFun :: Bool -> Id -> [NonVoid Id] -> [NonVoid Id] -> FCode a -> FCode a
- withNewTickyCounterLNE :: Id -> [NonVoid Id] -> FCode a -> FCode a
- withNewTickyCounterThunk :: Bool -> Bool -> Id -> [NonVoid Id] -> FCode a -> FCode a
- withNewTickyCounterStdThunk :: Bool -> Id -> [StgArg] -> FCode a -> FCode a
- withNewTickyCounterCon :: Id -> DataCon -> ConstructorNumber -> FCode a -> FCode a
- emitTickyCounterTag :: Unique -> NonVoid Id -> FCode CLabel
- tickyDynAlloc :: Maybe Id -> SMRep -> LambdaFormInfo -> FCode ()
- tickyAllocHeap :: Bool -> VirtualHpOffset -> FCode ()
- tickyAllocPrim :: CmmExpr -> CmmExpr -> CmmExpr -> FCode ()
- tickyAllocThunk :: CmmExpr -> CmmExpr -> FCode ()
- tickyAllocPAP :: CmmExpr -> CmmExpr -> FCode ()
- tickyHeapCheck :: FCode ()
- tickyStackCheck :: FCode ()
- tickyDirectCall :: RepArity -> [StgArg] -> FCode ()
- tickyPushUpdateFrame :: FCode ()
- tickyUpdateFrameOmitted :: FCode ()
- tickyEnterDynCon :: FCode ()
- tickyEnterFun :: ClosureInfo -> FCode ()
- tickyEnterThunk :: ClosureInfo -> FCode ()
- tickyEnterLNE :: FCode ()
- tickyUpdateBhCaf :: ClosureInfo -> FCode ()
- tickyUnboxedTupleReturn :: RepArity -> FCode ()
- tickyReturnOldCon :: RepArity -> FCode ()
- tickyReturnNewCon :: RepArity -> FCode ()
- tickyKnownCallTooFewArgs :: FCode ()
- tickyKnownCallExact :: FCode ()
- tickyKnownCallExtraArgs :: FCode ()
- tickySlowCall :: LambdaFormInfo -> [StgArg] -> FCode ()
- tickySlowCallPat :: [StgArg] -> FCode ()
- tickyTagged :: FCode ()
- tickyUntagged :: CmmExpr -> FCode ()
- tickyTagSkip :: Unique -> Id -> FCode ()

# Documentation

withNewTickyCounterFun :: Bool -> Id -> [NonVoid Id] -> [NonVoid Id] -> FCode a -> FCode a Source #

withNewTickyCounterLNE :: Id -> [NonVoid Id] -> FCode a -> FCode a Source #

withNewTickyCounterThunk Source #

Arguments

:: Bool | static
-> Bool | updateable
-> Id |
-> [NonVoid Id] | Free vars
-> FCode a |
-> FCode a |

withNewTickyCounterStdThunk Source #

Arguments

:: Bool | updateable
-> Id |
-> [StgArg] | Free vars + function
-> FCode a |
-> FCode a |

withNewTickyCounterCon :: Id -> DataCon -> ConstructorNumber -> FCode a -> FCode a Source #

emitTickyCounterTag :: Unique -> NonVoid Id -> FCode CLabel Source #

tickyDynAlloc :: Maybe Id -> SMRep -> LambdaFormInfo -> FCode () Source #

tickyAllocHeap :: Bool -> VirtualHpOffset -> FCode () Source #

tickyAllocPrim Source #

Arguments

:: CmmExpr | size of the full header, in bytes
-> CmmExpr | size of the payload, in bytes
-> CmmExpr |
-> FCode () |

tickyAllocThunk :: CmmExpr -> CmmExpr -> FCode () Source #

tickyAllocPAP :: CmmExpr -> CmmExpr -> FCode () Source #

tickyHeapCheck :: FCode () Source #

tickyStackCheck :: FCode () Source #

tickyDirectCall :: RepArity -> [StgArg] -> FCode () Source #

tickyPushUpdateFrame :: FCode () Source #

tickyUpdateFrameOmitted :: FCode () Source #

tickyEnterDynCon :: FCode () Source #

tickyEnterFun :: ClosureInfo -> FCode () Source #

tickyEnterThunk :: ClosureInfo -> FCode () Source #

tickyEnterLNE :: FCode () Source #

tickyUpdateBhCaf :: ClosureInfo -> FCode () Source #

tickyUnboxedTupleReturn :: RepArity -> FCode () Source #

tickyReturnOldCon :: RepArity -> FCode () Source #

tickyReturnNewCon :: RepArity -> FCode () Source #

tickyKnownCallTooFewArgs :: FCode () Source #

tickyKnownCallExact :: FCode () Source #

tickyKnownCallExtraArgs :: FCode () Source #

tickySlowCall :: LambdaFormInfo -> [StgArg] -> FCode () Source #

tickySlowCallPat :: [StgArg] -> FCode () Source #

tickyTagged :: FCode () Source #

Predicted a pointer would be tagged correctly (GHC will crash if not so no miss case)

tickyUntagged :: CmmExpr -> FCode () Source #

Pass a boolean expr indicating if tag was present.

tickyTagSkip :: Unique -> Id -> FCode () Source #

Called when for `case v of ...` we can avoid entering v based on tag inference information.