ghc-9.4.0.20220523: The GHC API
Safe HaskellSafe-Inferred
LanguageHaskell2010

GHC.StgToCmm.Utils

Synopsis

Documentation

emitDataLits :: CLabel -> [CmmLit] -> FCode () Source #

Emit a data-segment data block

emitRODataLits :: CLabel -> [CmmLit] -> FCode () Source #

Emit a read-only data block

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

emitUpdRemSetPush Source #

Arguments

:: CmmExpr

value of pointer which was overwritten

-> FCode () 

Emit code to add an entry to a now-overwritten pointer to the update remembered set.

emitUpdRemSetPushThunk Source #

Arguments

:: CmmExpr

the thunk

-> FCode () 

convertInfoProvMap :: [CmmInfoTable] -> Module -> InfoTableProvMap -> [InfoProvEnt] Source #

Convert source information collected about identifiers in Debug to entries suitable for placing into the info table provenenance table.

cmmInfoTableToInfoProvEnt :: Module -> CmmInfoTable -> InfoProvEnt Source #

A bare bones InfoProvEnt for things which don't have a good source location