StgCmmLayout

ghc-7.6.3: The GHC API

Safe Haskell | None

StgCmmLayout

Synopsis

- mkArgDescr :: Name -> [Id] -> FCode ArgDescr
- emitCall :: (Convention, Convention) -> CmmExpr -> [CmmExpr] -> FCode ()
- emitReturn :: [CmmExpr] -> FCode ()
- adjustHpBackwards :: FCode ()
- emitClosureProcAndInfoTable :: Bool -> Id -> LambdaFormInfo -> CmmInfoTable -> [NonVoid Id] -> ((Int, LocalReg, [LocalReg]) -> FCode ()) -> FCode ()
- emitClosureAndInfoTable :: CmmInfoTable -> Convention -> [LocalReg] -> FCode () -> FCode ()
- slowCall :: CmmExpr -> [StgArg] -> FCode ()
- directCall :: Convention -> CLabel -> RepArity -> [StgArg] -> FCode ()
- mkVirtHeapOffsets :: Bool -> [(PrimRep, a)] -> (WordOff, WordOff, [(NonVoid a, VirtualHpOffset)])
- mkVirtConstrOffsets :: [(PrimRep, a)] -> (WordOff, WordOff, [(NonVoid a, VirtualHpOffset)])
- getHpRelOffset :: VirtualHpOffset -> FCode CmmExpr
- hpRel :: VirtualHpOffset -> VirtualHpOffset -> WordOff
- stdInfoTableSizeB :: ByteOff
- entryCode :: CmmExpr -> CmmExpr
- closureInfoPtr :: CmmExpr -> CmmExpr
- getConstrTag :: CmmExpr -> CmmExpr
- cmmGetClosureType :: CmmExpr -> CmmExpr
- infoTable :: CmmExpr -> CmmExpr
- infoTableClosureType :: CmmExpr -> CmmExpr
- infoTablePtrs :: CmmExpr -> CmmExpr
- infoTableNonPtrs :: CmmExpr -> CmmExpr
- funInfoTable :: CmmExpr -> CmmExpr

# Documentation

mkArgDescr :: Name -> [Id] -> FCode ArgDescr

emitCall :: (Convention, Convention) -> CmmExpr -> [CmmExpr] -> FCode ()

`emitCall conv fun args` makes a call to the entry-code of `fun`, using the call/return convention `conv`, passing `args`, and returning the results to the current sequel.

emitReturn :: [CmmExpr] -> FCode ()

Return multiple values to the sequel

If the sequel is `Return`

         return (x,y)

If the sequel is `AssignTo [p,q]`

        p=x; q=y;

adjustHpBackwards :: FCode ()

emitClosureProcAndInfoTable :: Bool -> Id -> LambdaFormInfo -> CmmInfoTable -> [NonVoid Id] -> ((Int, LocalReg, [LocalReg]) -> FCode ()) -> FCode ()

emitClosureAndInfoTable :: CmmInfoTable -> Convention -> [LocalReg] -> FCode () -> FCode ()

slowCall :: CmmExpr -> [StgArg] -> FCode ()

directCall :: Convention -> CLabel -> RepArity -> [StgArg] -> FCode ()

mkVirtHeapOffsets :: Bool -> [(PrimRep, a)] -> (WordOff, WordOff, [(NonVoid a, VirtualHpOffset)])

mkVirtConstrOffsets :: [(PrimRep, a)] -> (WordOff, WordOff, [(NonVoid a, VirtualHpOffset)])

getHpRelOffset :: VirtualHpOffset -> FCode CmmExpr

hpRel :: VirtualHpOffset -> VirtualHpOffset -> WordOff

stdInfoTableSizeB :: ByteOff

entryCode :: CmmExpr -> CmmExpr

closureInfoPtr :: CmmExpr -> CmmExpr

getConstrTag :: CmmExpr -> CmmExpr

cmmGetClosureType :: CmmExpr -> CmmExpr

infoTable :: CmmExpr -> CmmExpr

infoTableClosureType :: CmmExpr -> CmmExpr

infoTablePtrs :: CmmExpr -> CmmExpr

infoTableNonPtrs :: CmmExpr -> CmmExpr

funInfoTable :: CmmExpr -> CmmExpr