[project @ 1996-02-06 14:32:22 by dnt]
[ghc-hetmet.git] / ghc / compiler / codeGen / CgMonad.hi
1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface CgMonad where
3 import AbsCSyn(AbstractC, CAddrMode, CExprMacro, CStmtMacro, MagicId, RegRelative, ReturnInfo)
4 import BasicLit(BasicLit)
5 import CLabelInfo(CLabel)
6 import CgBindery(CgBindings(..), CgIdInfo, StableLoc, VolatileLoc, heapIdInfo, stableAmodeIdInfo)
7 import ClosureInfo(ClosureInfo, LambdaFormInfo)
8 import CmdLineOpts(GlobalSwitch)
9 import CostCentre(CostCentre, IsCafCC)
10 import HeapOffs(HeapOffset, VirtualHeapOffset(..), VirtualSpAOffset(..), VirtualSpBOffset(..))
11 import Id(DataCon(..), Id)
12 import IdEnv(IdEnv(..))
13 import Maybes(Labda)
14 import Outputable(NamedThing, Outputable)
15 import PreludePS(_PackedString)
16 import PrimKind(PrimKind)
17 import PrimOps(PrimOp)
18 import StgSyn(PlainStgLiveVars(..))
19 import UniqFM(UniqFM)
20 import UniqSet(UniqSet(..))
21 import Unique(Unique)
22 infixr 9 `thenC`
23 infixr 9 `thenFC`
24 type AStackUsage = (Int, [(Int, StubFlag)], Int, Int)
25 data AbstractC 
26 type BStackUsage = (Int, [Int], Int, Int)
27 data CAddrMode 
28 data CLabel 
29 type CgBindings = UniqFM CgIdInfo
30 data CgIdInfo 
31 data CgInfoDownwards   = MkCgInfoDown CompilationInfo (UniqFM CgIdInfo) EndOfBlockInfo
32 data CgState   = MkCgState AbstractC (UniqFM CgIdInfo) ((Int, [(Int, StubFlag)], Int, Int), (Int, [Int], Int, Int), (HeapOffset, HeapOffset))
33 type Code = CgInfoDownwards -> CgState -> CgState
34 data CompilationInfo   = MkCompInfo (GlobalSwitch -> Bool) ((Int -> GlobalSwitch) -> Labda Int) _PackedString
35 data CostCentre 
36 data EndOfBlockInfo   = EndOfBlockInfo Int Int Sequel
37 type FCode a = CgInfoDownwards -> CgState -> (a, CgState)
38 data GlobalSwitch 
39 data HeapOffset 
40 type HeapUsage = (HeapOffset, HeapOffset)
41 type IntSwitchChecker = (Int -> GlobalSwitch) -> Labda Int
42 data LambdaFormInfo 
43 data IsCafCC 
44 type SemiTaggingStuff = Labda ([(Int, (AbstractC, CLabel))], Labda (Labda Id, (AbstractC, CLabel)))
45 data Sequel   = InRetReg | OnStack Int | UpdateCode CAddrMode | CaseAlts CAddrMode (Labda ([(Int, (AbstractC, CLabel))], Labda (Labda Id, (AbstractC, CLabel))))
46 data StubFlag 
47 type VirtualHeapOffset = HeapOffset
48 type VirtualSpAOffset = Int
49 type VirtualSpBOffset = Int
50 type DataCon = Id
51 data Id 
52 type IdEnv a = UniqFM a
53 data Labda a 
54 type PlainStgLiveVars = UniqFM Id
55 data UniqFM a 
56 type UniqSet a = UniqFM a
57 data Unique 
58 absC :: AbstractC -> CgInfoDownwards -> CgState -> CgState
59 addBindC :: Id -> CgIdInfo -> CgInfoDownwards -> CgState -> CgState
60 addBindsC :: [(Id, CgIdInfo)] -> CgInfoDownwards -> CgState -> CgState
61 addFreeBSlots :: [Int] -> [Int] -> [Int]
62 costCentresC :: _PackedString -> [CAddrMode] -> CgInfoDownwards -> CgState -> CgState
63 costCentresFlag :: CgInfoDownwards -> CgState -> (Bool, CgState)
64 fixC :: (a -> CgInfoDownwards -> CgState -> (a, CgState)) -> CgInfoDownwards -> CgState -> (a, CgState)
65 forkAbsC :: (CgInfoDownwards -> CgState -> CgState) -> CgInfoDownwards -> CgState -> (AbstractC, CgState)
66 forkAlts :: [CgInfoDownwards -> CgState -> (a, CgState)] -> [CgInfoDownwards -> CgState -> (a, CgState)] -> (CgInfoDownwards -> CgState -> (b, CgState)) -> CgInfoDownwards -> CgState -> (([a], b), CgState)
67 forkClosureBody :: (CgInfoDownwards -> CgState -> CgState) -> CgInfoDownwards -> CgState -> CgState
68 forkEval :: EndOfBlockInfo -> (CgInfoDownwards -> CgState -> CgState) -> (CgInfoDownwards -> CgState -> (Sequel, CgState)) -> CgInfoDownwards -> CgState -> (EndOfBlockInfo, CgState)
69 forkEvalHelp :: EndOfBlockInfo -> (CgInfoDownwards -> CgState -> CgState) -> (CgInfoDownwards -> CgState -> (a, CgState)) -> CgInfoDownwards -> CgState -> ((Int, Int, a), CgState)
70 forkStatics :: (CgInfoDownwards -> CgState -> (a, CgState)) -> CgInfoDownwards -> CgState -> (a, CgState)
71 getAbsC :: (CgInfoDownwards -> CgState -> CgState) -> CgInfoDownwards -> CgState -> (AbstractC, CgState)
72 getEndOfBlockInfo :: CgInfoDownwards -> CgState -> (EndOfBlockInfo, CgState)
73 getIntSwitchChkrC :: CgInfoDownwards -> CgState -> ((Int -> GlobalSwitch) -> Labda Int, CgState)
74 getUnstubbedAStackSlots :: Int -> CgInfoDownwards -> CgState -> ([Int], CgState)
75 heapIdInfo :: Id -> HeapOffset -> LambdaFormInfo -> CgIdInfo
76 initC :: CompilationInfo -> (CgInfoDownwards -> CgState -> CgState) -> AbstractC
77 isStringSwitchSetC :: ([Char] -> GlobalSwitch) -> CgInfoDownwards -> CgState -> (Bool, CgState)
78 isStubbed :: StubFlag -> Bool
79 isSwitchSetC :: GlobalSwitch -> CgInfoDownwards -> CgState -> (Bool, CgState)
80 listCs :: [CgInfoDownwards -> CgState -> CgState] -> CgInfoDownwards -> CgState -> CgState
81 listFCs :: [CgInfoDownwards -> CgState -> (a, CgState)] -> CgInfoDownwards -> CgState -> ([a], CgState)
82 lookupBindC :: Id -> CgInfoDownwards -> CgState -> (CgIdInfo, CgState)
83 mapCs :: (a -> CgInfoDownwards -> CgState -> CgState) -> [a] -> CgInfoDownwards -> CgState -> CgState
84 mapFCs :: (a -> CgInfoDownwards -> CgState -> (b, CgState)) -> [a] -> CgInfoDownwards -> CgState -> ([b], CgState)
85 modifyBindC :: Id -> (CgIdInfo -> CgIdInfo) -> CgInfoDownwards -> CgState -> CgState
86 moduleName :: CgInfoDownwards -> CgState -> (_PackedString, CgState)
87 noBlackHolingFlag :: CgInfoDownwards -> CgState -> (Bool, CgState)
88 nopC :: CgInfoDownwards -> CgState -> CgState
89 nukeDeadBindings :: UniqFM Id -> CgInfoDownwards -> CgState -> CgState
90 profCtrC :: _PackedString -> [CAddrMode] -> CgInfoDownwards -> CgState -> CgState
91 returnFC :: a -> CgInfoDownwards -> CgState -> (a, CgState)
92 sequelToAmode :: Sequel -> CgInfoDownwards -> CgState -> (CAddrMode, CgState)
93 setEndOfBlockInfo :: EndOfBlockInfo -> (CgInfoDownwards -> CgState -> CgState) -> CgInfoDownwards -> CgState -> CgState
94 stableAmodeIdInfo :: Id -> CAddrMode -> LambdaFormInfo -> CgIdInfo
95 thenC :: (CgInfoDownwards -> CgState -> CgState) -> (CgInfoDownwards -> CgState -> a) -> CgInfoDownwards -> CgState -> a
96 thenFC :: (CgInfoDownwards -> CgState -> (a, CgState)) -> (a -> CgInfoDownwards -> CgState -> b) -> CgInfoDownwards -> CgState -> b
97 instance Eq CLabel
98 instance Eq GlobalSwitch
99 instance Eq Id
100 instance Eq Unique
101 instance Ord CLabel
102 instance Ord GlobalSwitch
103 instance Ord Id
104 instance Ord Unique
105 instance NamedThing Id
106 instance Outputable Id
107 instance Text Unique
108