ghc-9.6.3: The GHC API

Safe Haskell | Safe-Inferred
Language | Haskell2010

GHC.StgToCmm.Env

Synopsis

- data CgIdInfo
- litIdInfo :: Platform -> Id -> LambdaFormInfo -> CmmLit -> CgIdInfo
- lneIdInfo :: Platform -> Id -> [NonVoid Id] -> CgIdInfo
- rhsIdInfo :: Id -> LambdaFormInfo -> FCode (CgIdInfo, LocalReg)
- mkRhsInit :: Platform -> LocalReg -> LambdaFormInfo -> CmmExpr -> CmmAGraph
- idInfoToAmode :: CgIdInfo -> CmmExpr
- addBindC :: CgIdInfo -> FCode ()
- addBindsC :: [CgIdInfo] -> FCode ()
- bindArgsToRegs :: [NonVoid Id] -> FCode [LocalReg]
- bindToReg :: NonVoid Id -> LambdaFormInfo -> FCode LocalReg
- rebindToReg :: NonVoid Id -> FCode LocalReg
- bindArgToReg :: NonVoid Id -> FCode LocalReg
- idToReg :: Platform -> NonVoid Id -> LocalReg
- getCgIdInfo :: Id -> FCode CgIdInfo
- getCgInfo_maybe :: Name -> FCode (Maybe CgIdInfo)
- maybeLetNoEscape :: CgIdInfo -> Maybe (BlockId, [LocalReg])

# Documentation

data CgIdInfo Source #

#### Instances

Instances details

OutputableP Platform CgIdInfo Source # |
Instance details Defined in GHC.StgToCmm.Monad Methods pdoc :: Platform -> CgIdInfo -> SDoc Source #

litIdInfo :: Platform -> Id -> LambdaFormInfo -> CmmLit -> CgIdInfo Source #

lneIdInfo :: Platform -> Id -> [NonVoid Id] -> CgIdInfo Source #

rhsIdInfo :: Id -> LambdaFormInfo -> FCode (CgIdInfo, LocalReg) Source #

mkRhsInit :: Platform -> LocalReg -> LambdaFormInfo -> CmmExpr -> CmmAGraph Source #

idInfoToAmode :: CgIdInfo -> CmmExpr Source #

Returns a `CmmExpr` for the *tagged* pointer

addBindC :: CgIdInfo -> FCode () Source #

addBindsC :: [CgIdInfo] -> FCode () Source #

bindArgsToRegs :: [NonVoid Id] -> FCode [LocalReg] Source #

bindToReg :: NonVoid Id -> LambdaFormInfo -> FCode LocalReg Source #

rebindToReg :: NonVoid Id -> FCode LocalReg Source #

bindArgToReg :: NonVoid Id -> FCode LocalReg Source #

idToReg :: Platform -> NonVoid Id -> LocalReg Source #

getCgIdInfo :: Id -> FCode CgIdInfo Source #

getCgInfo_maybe :: Name -> FCode (Maybe CgIdInfo) Source #

Retrieve cg info for a name if it already exists.

maybeLetNoEscape :: CgIdInfo -> Maybe (BlockId, [LocalReg]) Source #