ghc-9.8.0.20230919: The GHC API
Safe HaskellNone
LanguageHaskell2010

GHC.StgToCmm.Monad

Synopsis

Documentation

data FCode a Source #

Instances

Instances details
Applicative FCode Source # 
Instance details

Defined in GHC.StgToCmm.Monad

Methods

pure :: a -> FCode a Source #

(<*>) :: FCode (a -> b) -> FCode a -> FCode b Source #

liftA2 :: (a -> b -> c) -> FCode a -> FCode b -> FCode c Source #

(*>) :: FCode a -> FCode b -> FCode b Source #

(<*) :: FCode a -> FCode b -> FCode a Source #

Functor FCode Source # 
Instance details

Defined in GHC.StgToCmm.Monad

Methods

fmap :: (a -> b) -> FCode a -> FCode b Source #

(<$) :: a -> FCode b -> FCode a Source #

Monad FCode Source # 
Instance details

Defined in GHC.StgToCmm.Monad

Methods

(>>=) :: FCode a -> (a -> FCode b) -> FCode b Source #

(>>) :: FCode a -> FCode b -> FCode b Source #

return :: a -> FCode a Source #

MonadUnique FCode Source # 
Instance details

Defined in GHC.StgToCmm.Monad

initFCodeState :: Platform -> FCodeState Source #

runC :: StgToCmmConfig -> FCodeState -> CgState -> FCode a -> (a, CgState) Source #

fixC :: (a -> FCode a) -> FCode a Source #

emitStore :: CmmExpr -> CmmExpr -> FCode () Source #

Assumes natural alignment.

getCodeScoped :: FCode a -> FCode (a, CmmAGraphScoped) Source #

Generate code into a fresh tick (sub-)scope and gather generated code

forkAlts :: [FCode a] -> FCode [a] Source #

forkAltPair :: FCode a -> FCode a -> FCode (a, a) Source #

type ConTagZ = Int Source #

A *zero-indexed* constructor tag

data Sequel Source #

A Sequel tells what to do with the result of this expression

Constructors

Return

Return result(s) to continuation found on the stack.

AssignTo 

Fields

  • [LocalReg]

    Put result(s) in these regs and fall through NB: no void arguments here

  • Bool

    Should we adjust the heap pointer back to recover space that's unused on this path? We need to do this only if the expression may allocate (e.g. it's a foreign call or allocating primOp)

Instances

Instances details
Outputable Sequel Source # 
Instance details

Defined in GHC.StgToCmm.Sequel

Methods

ppr :: Sequel -> SDoc Source #

tickScope :: FCode a -> FCode a Source #

Places blocks generated by the given code into a fresh (sub-)scope. This will make sure that Cmm annotations in our scope will apply to the Cmm blocks generated therein - but not the other way around.

getTickScope :: FCode CmmTickScope Source #

The current tick scope. We will assign this to generated blocks.

data CgIdInfo Source #

Constructors

CgIdInfo 

Fields

Instances

Instances details
OutputableP Platform CgIdInfo Source # 
Instance details

Defined in GHC.StgToCmm.Monad

Methods

pdoc :: Platform -> CgIdInfo -> SDoc Source #

getBinds :: FCode CgBindings Source #

setBinds :: CgBindings -> FCode () Source #

data StgToCmmConfig Source #

Constructors

StgToCmmConfig 

Fields