ghc-8.2.2: The GHC API

Safe HaskellNone
LanguageHaskell2010

StgCmmMonad

Synopsis

Documentation

data FCode a #

Instances

Monad FCode # 

Methods

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

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

return :: a -> FCode a Source #

fail :: String -> FCode a Source #

Functor FCode # 

Methods

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

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

Applicative FCode # 

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 #

MonadUnique FCode # 
HasDynFlags FCode # 

runC :: DynFlags -> Module -> CgState -> FCode a -> (a, CgState) #

thenC :: FCode () -> FCode a -> FCode a infixr 9 #

thenFC :: FCode a -> (a -> FCode c) -> FCode c infixr 9 #

listCs :: [FCode ()] -> FCode () #

returnFC :: a -> FCode a #

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

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

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

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

codeOnly :: FCode () -> FCode () #

type ConTagZ = Int #

A *zero-indexed* constructor tag

data Sequel #

Constructors

Return 
AssignTo [LocalReg] Bool 

Instances

tickScope :: FCode a -> FCode a #

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 #

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

data CgIdInfo #

Constructors

CgIdInfo 

Instances

getBinds :: FCode CgBindings #

setBinds :: CgBindings -> FCode () #