ghc-8.0.0.20160111: 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

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

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

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

data Sequel

Constructors

Return Bool 
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 ()