| Safe Haskell | None | 
|---|---|
| Language | Haskell2010 | 
GHC.StgToCmm.Heap
Synopsis
- getVirtHp :: FCode VirtualHpOffset
 - setVirtHp :: VirtualHpOffset -> FCode ()
 - setRealHp :: VirtualHpOffset -> FCode ()
 - getHpRelOffset :: VirtualHpOffset -> FCode CmmExpr
 - entryHeapCheck :: ClosureInfo -> Maybe LocalReg -> Int -> [LocalReg] -> FCode () -> FCode ()
 - altHeapCheck :: [LocalReg] -> FCode a -> FCode a
 - noEscapeHeapCheck :: [LocalReg] -> FCode a -> FCode a
 - altHeapCheckReturnsTo :: [LocalReg] -> Label -> ByteOff -> FCode a -> FCode a
 - heapStackCheckGen :: Maybe CmmExpr -> Maybe CmmExpr -> FCode ()
 - entryHeapCheck' :: Bool -> CmmExpr -> Int -> [LocalReg] -> FCode () -> FCode ()
 - mkStaticClosureFields :: Profile -> CmmInfoTable -> CostCentreStack -> CafInfo -> [CmmLit] -> [CmmLit] -> [CmmLit]
 - mkStaticClosure :: Profile -> CLabel -> CostCentreStack -> [CmmLit] -> [CmmLit] -> [CmmLit] -> [CmmLit] -> [CmmLit] -> [CmmLit]
 - allocDynClosure :: Maybe Id -> CmmInfoTable -> LambdaFormInfo -> CmmExpr -> CmmExpr -> [(NonVoid StgArg, VirtualHpOffset)] -> FCode CmmExpr
 - allocDynClosureCmm :: Maybe Id -> CmmInfoTable -> LambdaFormInfo -> CmmExpr -> CmmExpr -> [(CmmExpr, ByteOff)] -> FCode CmmExpr
 - allocHeapClosure :: SMRep -> CmmExpr -> CmmExpr -> [(CmmExpr, ByteOff)] -> FCode CmmExpr
 - emitSetDynHdr :: CmmExpr -> CmmExpr -> CmmExpr -> FCode ()
 
Documentation
setVirtHp :: VirtualHpOffset -> FCode () Source #
setRealHp :: VirtualHpOffset -> FCode () Source #
entryHeapCheck :: ClosureInfo -> Maybe LocalReg -> Int -> [LocalReg] -> FCode () -> FCode () Source #
entryHeapCheck' :: Bool -> CmmExpr -> Int -> [LocalReg] -> FCode () -> FCode () Source #
lower-level version for GHC.Cmm.Parser
mkStaticClosureFields Source #
Arguments
| :: Profile | |
| -> CmmInfoTable | |
| -> CostCentreStack | |
| -> CafInfo | |
| -> [CmmLit] | Payload  | 
| -> [CmmLit] | Extra non-pointers that go to the end of the closure. See Note [unpack_cstring closures] in StgStdThunks.cmm.  | 
| -> [CmmLit] | 
Make a static closure, adding on any extra padding needed for CAFs, and adding a static link field if necessary.
mkStaticClosure :: Profile -> CLabel -> CostCentreStack -> [CmmLit] -> [CmmLit] -> [CmmLit] -> [CmmLit] -> [CmmLit] -> [CmmLit] Source #
allocDynClosure :: Maybe Id -> CmmInfoTable -> LambdaFormInfo -> CmmExpr -> CmmExpr -> [(NonVoid StgArg, VirtualHpOffset)] -> FCode CmmExpr Source #
allocDynClosureCmm :: Maybe Id -> CmmInfoTable -> LambdaFormInfo -> CmmExpr -> CmmExpr -> [(CmmExpr, ByteOff)] -> FCode CmmExpr Source #