{-# GHC_PRAGMA INTERFACE VERSION 5 #-} interface CgMonad where import AbsCSyn(AbstractC, CAddrMode, CExprMacro, CStmtMacro, MagicId, RegRelative, ReturnInfo) import BasicLit(BasicLit) import CLabelInfo(CLabel) import CgBindery(CgBindings(..), CgIdInfo, StableLoc, VolatileLoc, heapIdInfo, stableAmodeIdInfo) import ClosureInfo(ClosureInfo, LambdaFormInfo) import CmdLineOpts(GlobalSwitch) import CostCentre(CostCentre, IsCafCC) import HeapOffs(HeapOffset, VirtualHeapOffset(..), VirtualSpAOffset(..), VirtualSpBOffset(..)) import Id(DataCon(..), Id) import IdEnv(IdEnv(..)) import Maybes(Labda) import Outputable(NamedThing, Outputable) import PreludePS(_PackedString) import PrimKind(PrimKind) import PrimOps(PrimOp) import StgSyn(PlainStgLiveVars(..)) import UniqFM(UniqFM) import UniqSet(UniqSet(..)) import Unique(Unique) infixr 9 `thenC` infixr 9 `thenFC` type AStackUsage = (Int, [(Int, StubFlag)], Int, Int) data AbstractC type BStackUsage = (Int, [Int], Int, Int) data CAddrMode data CLabel type CgBindings = UniqFM CgIdInfo data CgIdInfo data CgInfoDownwards = MkCgInfoDown CompilationInfo (UniqFM CgIdInfo) EndOfBlockInfo data CgState = MkCgState AbstractC (UniqFM CgIdInfo) ((Int, [(Int, StubFlag)], Int, Int), (Int, [Int], Int, Int), (HeapOffset, HeapOffset)) type Code = CgInfoDownwards -> CgState -> CgState data CompilationInfo = MkCompInfo (GlobalSwitch -> Bool) ((Int -> GlobalSwitch) -> Labda Int) _PackedString data CostCentre data EndOfBlockInfo = EndOfBlockInfo Int Int Sequel type FCode a = CgInfoDownwards -> CgState -> (a, CgState) data GlobalSwitch data HeapOffset type HeapUsage = (HeapOffset, HeapOffset) type IntSwitchChecker = (Int -> GlobalSwitch) -> Labda Int data LambdaFormInfo data IsCafCC type SemiTaggingStuff = Labda ([(Int, (AbstractC, CLabel))], Labda (Labda Id, (AbstractC, CLabel))) data Sequel = InRetReg | OnStack Int | UpdateCode CAddrMode | CaseAlts CAddrMode (Labda ([(Int, (AbstractC, CLabel))], Labda (Labda Id, (AbstractC, CLabel)))) data StubFlag type VirtualHeapOffset = HeapOffset type VirtualSpAOffset = Int type VirtualSpBOffset = Int type DataCon = Id data Id type IdEnv a = UniqFM a data Labda a type PlainStgLiveVars = UniqFM Id data UniqFM a type UniqSet a = UniqFM a data Unique absC :: AbstractC -> CgInfoDownwards -> CgState -> CgState addBindC :: Id -> CgIdInfo -> CgInfoDownwards -> CgState -> CgState addBindsC :: [(Id, CgIdInfo)] -> CgInfoDownwards -> CgState -> CgState addFreeBSlots :: [Int] -> [Int] -> [Int] costCentresC :: _PackedString -> [CAddrMode] -> CgInfoDownwards -> CgState -> CgState costCentresFlag :: CgInfoDownwards -> CgState -> (Bool, CgState) fixC :: (a -> CgInfoDownwards -> CgState -> (a, CgState)) -> CgInfoDownwards -> CgState -> (a, CgState) forkAbsC :: (CgInfoDownwards -> CgState -> CgState) -> CgInfoDownwards -> CgState -> (AbstractC, CgState) forkAlts :: [CgInfoDownwards -> CgState -> (a, CgState)] -> [CgInfoDownwards -> CgState -> (a, CgState)] -> (CgInfoDownwards -> CgState -> (b, CgState)) -> CgInfoDownwards -> CgState -> (([a], b), CgState) forkClosureBody :: (CgInfoDownwards -> CgState -> CgState) -> CgInfoDownwards -> CgState -> CgState forkEval :: EndOfBlockInfo -> (CgInfoDownwards -> CgState -> CgState) -> (CgInfoDownwards -> CgState -> (Sequel, CgState)) -> CgInfoDownwards -> CgState -> (EndOfBlockInfo, CgState) forkEvalHelp :: EndOfBlockInfo -> (CgInfoDownwards -> CgState -> CgState) -> (CgInfoDownwards -> CgState -> (a, CgState)) -> CgInfoDownwards -> CgState -> ((Int, Int, a), CgState) forkStatics :: (CgInfoDownwards -> CgState -> (a, CgState)) -> CgInfoDownwards -> CgState -> (a, CgState) getAbsC :: (CgInfoDownwards -> CgState -> CgState) -> CgInfoDownwards -> CgState -> (AbstractC, CgState) getEndOfBlockInfo :: CgInfoDownwards -> CgState -> (EndOfBlockInfo, CgState) getIntSwitchChkrC :: CgInfoDownwards -> CgState -> ((Int -> GlobalSwitch) -> Labda Int, CgState) getUnstubbedAStackSlots :: Int -> CgInfoDownwards -> CgState -> ([Int], CgState) heapIdInfo :: Id -> HeapOffset -> LambdaFormInfo -> CgIdInfo initC :: CompilationInfo -> (CgInfoDownwards -> CgState -> CgState) -> AbstractC isStringSwitchSetC :: ([Char] -> GlobalSwitch) -> CgInfoDownwards -> CgState -> (Bool, CgState) isStubbed :: StubFlag -> Bool isSwitchSetC :: GlobalSwitch -> CgInfoDownwards -> CgState -> (Bool, CgState) listCs :: [CgInfoDownwards -> CgState -> CgState] -> CgInfoDownwards -> CgState -> CgState listFCs :: [CgInfoDownwards -> CgState -> (a, CgState)] -> CgInfoDownwards -> CgState -> ([a], CgState) lookupBindC :: Id -> CgInfoDownwards -> CgState -> (CgIdInfo, CgState) mapCs :: (a -> CgInfoDownwards -> CgState -> CgState) -> [a] -> CgInfoDownwards -> CgState -> CgState mapFCs :: (a -> CgInfoDownwards -> CgState -> (b, CgState)) -> [a] -> CgInfoDownwards -> CgState -> ([b], CgState) modifyBindC :: Id -> (CgIdInfo -> CgIdInfo) -> CgInfoDownwards -> CgState -> CgState moduleName :: CgInfoDownwards -> CgState -> (_PackedString, CgState) noBlackHolingFlag :: CgInfoDownwards -> CgState -> (Bool, CgState) nopC :: CgInfoDownwards -> CgState -> CgState nukeDeadBindings :: UniqFM Id -> CgInfoDownwards -> CgState -> CgState profCtrC :: _PackedString -> [CAddrMode] -> CgInfoDownwards -> CgState -> CgState returnFC :: a -> CgInfoDownwards -> CgState -> (a, CgState) sequelToAmode :: Sequel -> CgInfoDownwards -> CgState -> (CAddrMode, CgState) setEndOfBlockInfo :: EndOfBlockInfo -> (CgInfoDownwards -> CgState -> CgState) -> CgInfoDownwards -> CgState -> CgState stableAmodeIdInfo :: Id -> CAddrMode -> LambdaFormInfo -> CgIdInfo thenC :: (CgInfoDownwards -> CgState -> CgState) -> (CgInfoDownwards -> CgState -> a) -> CgInfoDownwards -> CgState -> a thenFC :: (CgInfoDownwards -> CgState -> (a, CgState)) -> (a -> CgInfoDownwards -> CgState -> b) -> CgInfoDownwards -> CgState -> b instance Eq CLabel instance Eq GlobalSwitch instance Eq Id instance Eq Unique instance Ord CLabel instance Ord GlobalSwitch instance Ord Id instance Ord Unique instance NamedThing Id instance Outputable Id instance Text Unique