| Safe Haskell | None | 
|---|---|
| Language | Haskell2010 | 
GHC.StgToCmm.Utils
Contents
Synopsis
- emitDataLits :: CLabel -> [CmmLit] -> FCode ()
 - emitRODataLits :: CLabel -> [CmmLit] -> FCode ()
 - emitDataCon :: CLabel -> CmmInfoTable -> CostCentreStack -> [CmmLit] -> FCode ()
 - emitRtsCall :: UnitId -> FastString -> [(CmmExpr, ForeignHint)] -> Bool -> FCode ()
 - emitRtsCallWithResult :: LocalReg -> ForeignHint -> UnitId -> FastString -> [(CmmExpr, ForeignHint)] -> Bool -> FCode ()
 - emitRtsCallGen :: [(LocalReg, ForeignHint)] -> CLabel -> [(CmmExpr, ForeignHint)] -> Bool -> FCode ()
 - emitBarf :: String -> FCode ()
 - assignTemp :: CmmExpr -> FCode LocalReg
 - newTemp :: MonadUnique m => CmmType -> m LocalReg
 - newUnboxedTupleRegs :: Type -> FCode ([LocalReg], [ForeignHint])
 - emitMultiAssign :: [LocalReg] -> [CmmExpr] -> FCode ()
 - emitCmmLitSwitch :: CmmExpr -> [(Literal, CmmAGraphScoped)] -> CmmAGraphScoped -> FCode ()
 - emitSwitch :: CmmExpr -> [(ConTagZ, CmmAGraphScoped)] -> Maybe CmmAGraphScoped -> ConTagZ -> ConTagZ -> FCode ()
 - tagToClosure :: Platform -> TyCon -> CmmExpr -> CmmExpr
 - mkTaggedObjectLoad :: Platform -> LocalReg -> LocalReg -> ByteOff -> DynTag -> CmmAGraph
 - callerSaves :: Platform -> GlobalReg -> Bool
 - callerSaveVolatileRegs :: Platform -> (CmmAGraph, CmmAGraph)
 - get_GlobalReg_addr :: Platform -> GlobalReg -> CmmExpr
 - callerSaveGlobalReg :: Platform -> GlobalReg -> CmmAGraph
 - callerRestoreGlobalReg :: Platform -> GlobalReg -> CmmAGraph
 - cmmAndWord :: Platform -> CmmExpr -> CmmExpr -> CmmExpr
 - cmmOrWord :: Platform -> CmmExpr -> CmmExpr -> CmmExpr
 - cmmNegate :: Platform -> CmmExpr -> CmmExpr
 - cmmEqWord :: Platform -> CmmExpr -> CmmExpr -> CmmExpr
 - cmmNeWord :: Platform -> CmmExpr -> CmmExpr -> CmmExpr
 - cmmUGtWord :: Platform -> CmmExpr -> CmmExpr -> CmmExpr
 - cmmSubWord :: Platform -> CmmExpr -> CmmExpr -> CmmExpr
 - cmmMulWord :: Platform -> CmmExpr -> CmmExpr -> CmmExpr
 - cmmAddWord :: Platform -> CmmExpr -> CmmExpr -> CmmExpr
 - cmmUShrWord :: Platform -> CmmExpr -> CmmExpr -> CmmExpr
 - cmmOffsetExprW :: Platform -> CmmExpr -> CmmExpr -> CmmExpr
 - cmmOffsetExprB :: Platform -> CmmExpr -> CmmExpr -> CmmExpr
 - cmmRegOffW :: Platform -> CmmReg -> WordOff -> CmmExpr
 - cmmRegOffB :: CmmReg -> ByteOff -> CmmExpr
 - cmmLabelOffW :: Platform -> CLabel -> WordOff -> CmmLit
 - cmmLabelOffB :: CLabel -> ByteOff -> CmmLit
 - cmmOffsetW :: Platform -> CmmExpr -> WordOff -> CmmExpr
 - cmmOffsetB :: Platform -> CmmExpr -> ByteOff -> CmmExpr
 - cmmOffsetLitW :: Platform -> CmmLit -> WordOff -> CmmLit
 - cmmOffsetLitB :: CmmLit -> ByteOff -> CmmLit
 - cmmLoadIndexW :: Platform -> CmmExpr -> Int -> CmmType -> CmmExpr
 - cmmConstrTag1 :: Platform -> CmmExpr -> CmmExpr
 - cmmUntag :: Platform -> CmmExpr -> CmmExpr
 - cmmIsTagged :: Platform -> CmmExpr -> CmmExpr
 - addToMem :: CmmType -> CmmExpr -> Int -> CmmAGraph
 - addToMemE :: CmmType -> CmmExpr -> CmmExpr -> CmmAGraph
 - addToMemLblE :: CmmType -> CLabel -> CmmExpr -> CmmAGraph
 - addToMemLbl :: CmmType -> CLabel -> Int -> CmmAGraph
 - whenUpdRemSetEnabled :: FCode a -> FCode ()
 - emitUpdRemSetPush :: CmmExpr -> FCode ()
 - emitUpdRemSetPushThunk :: CmmExpr -> FCode ()
 - convertInfoProvMap :: [CmmInfoTable] -> Module -> InfoTableProvMap -> [InfoProvEnt]
 - cmmInfoTableToInfoProvEnt :: Module -> CmmInfoTable -> InfoProvEnt
 
Documentation
emitDataCon :: CLabel -> CmmInfoTable -> CostCentreStack -> [CmmLit] -> FCode () Source #
emitRtsCall :: UnitId -> FastString -> [(CmmExpr, ForeignHint)] -> Bool -> FCode () Source #
emitRtsCallWithResult :: LocalReg -> ForeignHint -> UnitId -> FastString -> [(CmmExpr, ForeignHint)] -> Bool -> FCode () Source #
emitRtsCallGen :: [(LocalReg, ForeignHint)] -> CLabel -> [(CmmExpr, ForeignHint)] -> Bool -> FCode () Source #
newUnboxedTupleRegs :: Type -> FCode ([LocalReg], [ForeignHint]) Source #
emitCmmLitSwitch :: CmmExpr -> [(Literal, CmmAGraphScoped)] -> CmmAGraphScoped -> FCode () Source #
emitSwitch :: CmmExpr -> [(ConTagZ, CmmAGraphScoped)] -> Maybe CmmAGraphScoped -> ConTagZ -> ConTagZ -> FCode () Source #
callerSaves :: Platform -> GlobalReg -> Bool Source #
Returns True if this global register is stored in a caller-saves
 machine register.
get_GlobalReg_addr :: Platform -> GlobalReg -> CmmExpr Source #
We map STG registers onto appropriate CmmExprs. Either they map to real machine registers or stored as offsets from BaseReg. Given a GlobalReg, get_GlobalReg_addr always produces the register table address for it.
addToMem :: CmmType -> CmmExpr -> Int -> CmmAGraph Source #
addToMem rep ptr n adds n to the integer pointed-to by ptr.
addToMemE :: CmmType -> CmmExpr -> CmmExpr -> CmmAGraph Source #
addToMemE rep ptr n adds n to the integer pointed-to by ptr.
Update remembered set operations
whenUpdRemSetEnabled :: FCode a -> FCode () Source #
Emit code to add an entry to a now-overwritten pointer to the update remembered set.
convertInfoProvMap :: [CmmInfoTable] -> Module -> InfoTableProvMap -> [InfoProvEnt] Source #
Convert source information collected about identifiers in Debug
 to entries suitable for placing into the info table provenance table.
cmmInfoTableToInfoProvEnt :: Module -> CmmInfoTable -> InfoProvEnt Source #
A bare bones InfoProvEnt for things which don't have a good source location