StgCmmUtils

ghc-8.4.4: The GHC API

Safe Haskell | None
Language | Haskell2010

StgCmmUtils

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
- 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 :: [Word8] -> FCode CmmLit
- blankWord :: DynFlags -> CmmStatic

# Documentation

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 #

Returns `True` if this global register is stored in a caller-saves machine register.

callerSaveVolatileRegs :: DynFlags -> (CmmAGraph, CmmAGraph) #

get_GlobalReg_addr :: DynFlags -> GlobalReg -> CmmExpr #

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 :: [Word8] -> FCode CmmLit #

blankWord :: DynFlags -> CmmStatic #