28362e74a3151730de6778fa737b2ada84660ab8
[ghc-hetmet.git] / ghc / compiler / codeGen / CodeGen.hi
1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface CodeGen where
3 import AbsCSyn(AbstractC, CAddrMode, CStmtMacro, MagicId, RegRelative, ReturnInfo)
4 import BasicLit(BasicLit)
5 import CLabelInfo(CLabel)
6 import ClosureInfo(ClosureInfo)
7 import CmdLineOpts(GlobalSwitch, SwitchResult)
8 import CostCentre(CostCentre)
9 import FiniteMap(FiniteMap)
10 import Id(Id, IdDetails)
11 import IdInfo(IdInfo)
12 import Maybes(Labda)
13 import PreludePS(_PackedString)
14 import PrimOps(PrimOp)
15 import StgSyn(StgBinding, StgRhs)
16 import TyCon(TyCon)
17 import UniType(UniType)
18 import UniqFM(UniqFM)
19 import Unique(Unique)
20 data AbstractC  {-# GHC_PRAGMA AbsCNop | AbsCStmts AbstractC AbstractC | CAssign CAddrMode CAddrMode | CJump CAddrMode | CFallThrough CAddrMode | CReturn CAddrMode ReturnInfo | CSwitch CAddrMode [(BasicLit, AbstractC)] AbstractC | CCodeBlock CLabel AbstractC | CInitHdr ClosureInfo RegRelative CAddrMode Bool | COpStmt [CAddrMode] PrimOp [CAddrMode] Int [MagicId] | CSimultaneous AbstractC | CMacroStmt CStmtMacro [CAddrMode] | CCallProfCtrMacro _PackedString [CAddrMode] | CCallProfCCMacro _PackedString [CAddrMode] | CStaticClosure CLabel ClosureInfo CAddrMode [CAddrMode] | CClosureInfoAndCode ClosureInfo AbstractC (Labda AbstractC) CAddrMode [Char] | CRetVector CLabel [Labda CAddrMode] AbstractC | CRetUnVector CLabel CAddrMode | CFlatRetVector CLabel [CAddrMode] | CCostCentreDecl Bool CostCentre | CClosureUpdInfo AbstractC | CSplitMarker #-}
21 data FiniteMap a b      {-# GHC_PRAGMA EmptyFM | Branch a b Int# (FiniteMap a b) (FiniteMap a b) #-}
22 data Id         {-# GHC_PRAGMA Id Unique UniType IdInfo IdDetails #-}
23 data StgBinding a b     {-# GHC_PRAGMA StgNonRec a (StgRhs a b) | StgRec [(a, StgRhs a b)] #-}
24 data UniqFM a   {-# GHC_PRAGMA EmptyUFM | LeafUFM Int# a | NodeUFM Int# Int# (UniqFM a) (UniqFM a) #-}
25 codeGen :: _PackedString -> ([CostCentre], [CostCentre]) -> [_PackedString] -> (GlobalSwitch -> SwitchResult) -> [TyCon] -> FiniteMap TyCon [[Labda UniType]] -> [StgBinding Id Id] -> AbstractC
26         {-# GHC_PRAGMA _A_ 7 _U_ 2112112 _N_ _S_ "LU(LL)LSLLL" _N_ _N_ #-}
27