CgBindery

ghc-7.6.3: The GHC API

Safe Haskell | None

CgBindery

# Documentation

type CgBindings = IdEnv CgIdInfo

data CgIdInfo

Instances

Outputable CgIdInfo |

data StableLoc

Instances

Outputable StableLoc |

data VolatileLoc

Instances

Outputable VolatileLoc |

cgIdInfoId :: CgIdInfo -> Id

cgIdInfoArgRep :: CgIdInfo -> CgRep

cgIdInfoLF :: CgIdInfo -> LambdaFormInfo

stableIdInfo :: Id -> CmmExpr -> LambdaFormInfo -> CgIdInfo

heapIdInfo :: Id -> VirtualHpOffset -> LambdaFormInfo -> CgIdInfo

taggedStableIdInfo :: Id -> CmmExpr -> LambdaFormInfo -> DataCon -> CgIdInfo

taggedHeapIdInfo :: Id -> VirtualHpOffset -> LambdaFormInfo -> DataCon -> CgIdInfo

letNoEscapeIdInfo :: Id -> VirtualSpOffset -> LambdaFormInfo -> CgIdInfo

idInfoToAmode :: CgIdInfo -> FCode CmmExpr

addBindC :: Id -> CgIdInfo -> Code

addBindsC :: [(Id, CgIdInfo)] -> Code

nukeVolatileBinds :: CgBindings -> CgBindings

nukeDeadBindings :: StgLiveVars -> Code

getLiveStackSlots :: FCode [VirtualSpOffset]

getLiveStackBindings :: FCode [(VirtualSpOffset, CgIdInfo)]

bindArgsToStack :: [(Id, VirtualSpOffset)] -> Code

rebindToStack :: Id -> VirtualSpOffset -> Code

bindNewToNode :: Id -> VirtualHpOffset -> LambdaFormInfo -> Code

bindNewToUntagNode :: Id -> VirtualHpOffset -> LambdaFormInfo -> Int -> Code

bindNewToReg :: Id -> CmmReg -> LambdaFormInfo -> Code

bindArgsToRegs :: [(Id, GlobalReg)] -> Code

bindNewToTemp :: Id -> FCode LocalReg

getArgAmode :: StgArg -> FCode (CgRep, CmmExpr)

getArgAmodes :: [StgArg] -> FCode [(CgRep, CmmExpr)]

getCgIdInfo :: Id -> FCode CgIdInfo

getCAddrModeIfVolatile :: Id -> FCode (Maybe CmmExpr)

getVolatileRegs :: StgLiveVars -> FCode [GlobalReg]

maybeLetNoEscape :: CgIdInfo -> Maybe VirtualSpOffset