[project @ 1996-01-08 20:28:12 by partain]
[ghc-hetmet.git] / ghc / compiler / codeGen / CgClosure.hi
1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface CgClosure where
3 import AbsCSyn(AbstractC)
4 import CgBindery(CgIdInfo, StableLoc, VolatileLoc)
5 import CgMonad(CgInfoDownwards, CgState, CompilationInfo, EndOfBlockInfo, StubFlag)
6 import ClosureInfo(LambdaFormInfo)
7 import CmdLineOpts(GlobalSwitch)
8 import CostCentre(CostCentre)
9 import HeapOffs(HeapOffset)
10 import Id(Id, IdDetails)
11 import IdInfo(IdInfo)
12 import Maybes(Labda)
13 import PreludePS(_PackedString)
14 import PrimOps(PrimOp)
15 import StgSyn(StgAtom, StgBinderInfo, StgBinding, StgCaseAlternatives, StgExpr, UpdateFlag)
16 import UniType(UniType)
17 import UniqFM(UniqFM)
18 import Unique(Unique)
19 data CgIdInfo   {-# GHC_PRAGMA MkCgIdInfo Id VolatileLoc StableLoc LambdaFormInfo #-}
20 data CgInfoDownwards    {-# GHC_PRAGMA MkCgInfoDown CompilationInfo (UniqFM CgIdInfo) EndOfBlockInfo #-}
21 data CgState    {-# GHC_PRAGMA MkCgState AbstractC (UniqFM CgIdInfo) ((Int, [(Int, StubFlag)], Int, Int), (Int, [Int], Int, Int), (HeapOffset, HeapOffset)) #-}
22 data CompilationInfo    {-# GHC_PRAGMA MkCompInfo (GlobalSwitch -> Bool) _PackedString #-}
23 data HeapOffset 
24 data Id         {-# GHC_PRAGMA Id Unique UniType IdInfo IdDetails #-}
25 data Labda a    {-# GHC_PRAGMA Hamna | Ni a #-}
26 data StgExpr a b        {-# GHC_PRAGMA StgApp (StgAtom b) [StgAtom b] (UniqFM b) | StgConApp Id [StgAtom b] (UniqFM b) | StgPrimApp PrimOp [StgAtom b] (UniqFM b) | StgCase (StgExpr a b) (UniqFM b) (UniqFM b) Unique (StgCaseAlternatives a b) | StgLet (StgBinding a b) (StgExpr a b) | StgLetNoEscape (UniqFM b) (UniqFM b) (StgBinding a b) (StgExpr a b) | StgSCC UniType CostCentre (StgExpr a b) #-}
27 data UpdateFlag         {-# GHC_PRAGMA ReEntrant | Updatable | SingleEntry #-}
28 cgRhsClosure :: Id -> CostCentre -> StgBinderInfo -> [Id] -> [Id] -> StgExpr Id Id -> LambdaFormInfo -> CgInfoDownwards -> CgState -> ((Id, CgIdInfo), CgState)
29         {-# GHC_PRAGMA _A_ 7 _U_ 222222222 _N_ _S_ "LLLLLLS" _N_ _N_ #-}
30 cgTopRhsClosure :: Id -> CostCentre -> StgBinderInfo -> [Id] -> StgExpr Id Id -> LambdaFormInfo -> CgInfoDownwards -> CgState -> ((Id, CgIdInfo), CgState)
31         {-# GHC_PRAGMA _A_ 6 _U_ 22222222 _N_ _N_ _N_ _N_ #-}
32