| Safe Haskell | None | 
|---|---|
| Language | Haskell2010 | 
GHC.StgToCmm.Utils
Contents
Synopsis
- cgLit :: Literal -> FCode CmmLit
 - mkSimpleLit :: DynFlags -> Literal -> CmmLit
 - emitDataLits :: CLabel -> [CmmLit] -> FCode ()
 - mkDataLits :: Section -> CLabel -> [CmmLit] -> GenCmmDecl CmmStatics info stmt
 - emitRODataLits :: CLabel -> [CmmLit] -> FCode ()
 - mkRODataLits :: CLabel -> [CmmLit] -> GenCmmDecl CmmStatics info stmt
 - emitRtsCall :: UnitId -> FastString -> [(CmmExpr, ForeignHint)] -> Bool -> FCode ()
 - emitRtsCallWithResult :: LocalReg -> ForeignHint -> UnitId -> FastString -> [(CmmExpr, ForeignHint)] -> Bool -> FCode ()
 - emitRtsCallGen :: [(LocalReg, ForeignHint)] -> CLabel -> [(CmmExpr, ForeignHint)] -> Bool -> 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 :: DynFlags -> TyCon -> CmmExpr -> CmmExpr
 - mkTaggedObjectLoad :: DynFlags -> LocalReg -> LocalReg -> ByteOff -> DynTag -> CmmAGraph
 - callerSaves :: Platform -> GlobalReg -> Bool
 - callerSaveVolatileRegs :: DynFlags -> (CmmAGraph, CmmAGraph)
 - get_GlobalReg_addr :: DynFlags -> GlobalReg -> CmmExpr
 - callerSaveGlobalReg :: DynFlags -> GlobalReg -> CmmAGraph
 - callerRestoreGlobalReg :: DynFlags -> GlobalReg -> CmmAGraph
 - cmmAndWord :: DynFlags -> CmmExpr -> CmmExpr -> CmmExpr
 - cmmOrWord :: DynFlags -> CmmExpr -> CmmExpr -> CmmExpr
 - cmmNegate :: DynFlags -> CmmExpr -> CmmExpr
 - cmmEqWord :: DynFlags -> CmmExpr -> CmmExpr -> CmmExpr
 - cmmNeWord :: DynFlags -> CmmExpr -> CmmExpr -> CmmExpr
 - cmmUGtWord :: DynFlags -> CmmExpr -> CmmExpr -> CmmExpr
 - cmmSubWord :: DynFlags -> CmmExpr -> CmmExpr -> CmmExpr
 - cmmMulWord :: DynFlags -> CmmExpr -> CmmExpr -> CmmExpr
 - cmmAddWord :: DynFlags -> CmmExpr -> CmmExpr -> CmmExpr
 - cmmUShrWord :: DynFlags -> CmmExpr -> CmmExpr -> CmmExpr
 - cmmOffsetExprW :: DynFlags -> CmmExpr -> CmmExpr -> CmmExpr
 - cmmOffsetExprB :: DynFlags -> CmmExpr -> CmmExpr -> CmmExpr
 - cmmRegOffW :: DynFlags -> CmmReg -> WordOff -> CmmExpr
 - cmmRegOffB :: CmmReg -> ByteOff -> CmmExpr
 - cmmLabelOffW :: DynFlags -> CLabel -> WordOff -> CmmLit
 - cmmLabelOffB :: CLabel -> ByteOff -> CmmLit
 - cmmOffsetW :: DynFlags -> CmmExpr -> WordOff -> CmmExpr
 - cmmOffsetB :: DynFlags -> CmmExpr -> ByteOff -> CmmExpr
 - cmmOffsetLitW :: DynFlags -> CmmLit -> WordOff -> CmmLit
 - cmmOffsetLitB :: CmmLit -> ByteOff -> CmmLit
 - cmmLoadIndexW :: DynFlags -> CmmExpr -> Int -> CmmType -> CmmExpr
 - cmmConstrTag1 :: DynFlags -> CmmExpr -> CmmExpr
 - cmmUntag :: DynFlags -> CmmExpr -> CmmExpr
 - cmmIsTagged :: DynFlags -> CmmExpr -> CmmExpr
 - addToMem :: CmmType -> CmmExpr -> Int -> CmmAGraph
 - addToMemE :: CmmType -> CmmExpr -> CmmExpr -> CmmAGraph
 - addToMemLblE :: CmmType -> CLabel -> CmmExpr -> CmmAGraph
 - addToMemLbl :: CmmType -> CLabel -> Int -> CmmAGraph
 - mkWordCLit :: DynFlags -> Integer -> CmmLit
 - newStringCLit :: String -> FCode CmmLit
 - newByteStringCLit :: ByteString -> FCode CmmLit
 - blankWord :: DynFlags -> CmmStatic
 - whenUpdRemSetEnabled :: DynFlags -> FCode a -> FCode ()
 - emitUpdRemSetPush :: CmmExpr -> FCode ()
 - emitUpdRemSetPushThunk :: CmmExpr -> FCode ()
 
Documentation
mkDataLits :: Section -> CLabel -> [CmmLit] -> GenCmmDecl CmmStatics info stmt Source #
mkRODataLits :: CLabel -> [CmmLit] -> GenCmmDecl CmmStatics info stmt 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 :: DynFlags -> 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.
Update remembered set operations
Emit code to add an entry to a now-overwritten pointer to the update remembered set.