GHC.StgToCmm.Monad
Documentation
Instances
Applicative FCode Source # | |
Functor FCode Source # | |
Monad FCode Source # | |
MonadUnique FCode Source # | |
Defined in GHC.StgToCmm.Monad Methods getUniqueSupplyM :: FCode UniqSupply Source # getUniqueM :: FCode Unique Source # getUniquesM :: FCode [Unique] Source # |
initFCodeState :: Platform -> FCodeState Source #
emitProcWithConvention :: Convention -> Maybe CmmInfoTable -> CLabel -> [CmmFormal] -> CmmAGraphScoped -> FCode () Source #
emitProcWithStackFrame :: Convention -> Maybe CmmInfoTable -> CLabel -> [CmmFormal] -> [CmmFormal] -> CmmAGraphScoped -> Bool -> FCode () Source #
emitOutOfLine :: BlockId -> CmmAGraphScoped -> FCode () Source #
emitStore' :: AlignmentSpec -> CmmExpr -> CmmExpr -> FCode () Source #
emitComment :: FastString -> FCode () Source #
emitTick :: CmmTickish -> FCode () Source #
getCodeScoped :: FCode a -> FCode (a, CmmAGraphScoped) Source #
Generate code into a fresh tick (sub-)scope and gather generated code
getHeapUsage :: (VirtualHpOffset -> FCode a) -> FCode a Source #
mkCall :: CmmExpr -> (Convention, Convention) -> [CmmFormal] -> [CmmExpr] -> UpdFrameOffset -> [CmmExpr] -> FCode CmmAGraph Source #
forkClosureBody :: FCode () -> FCode () Source #
forkLneBody :: FCode a -> FCode a Source #
A Sequel tells what to do with the result of this expression
Instances
data ReturnKind Source #
Constructors
AssignedDirectly | |
ReturnedTo BlockId ByteOff |
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.
withUpdFrameOff :: UpdFrameOffset -> FCode a -> FCode a Source #
Constructors
HeapUsage | |
Fields |
type VirtualHpOffset = WordOff Source #
setHpUsage :: HeapUsage -> FCode () Source #
heapHWM :: HeapUsage -> VirtualHpOffset Source #
setVirtHp :: VirtualHpOffset -> FCode () Source #
setRealHp :: VirtualHpOffset -> FCode () Source #
getSelfLoop :: FCode (Maybe SelfLoopInfo) Source #
withSelfLoop :: SelfLoopInfo -> FCode a -> FCode a Source #
Constructors
CgIdInfo | |
data StgToCmmConfig Source #
Constructors
StgToCmmConfig | |
Fields
|