4d4fa91ca1b49c94607be1df9cd98d4a51d67658
[ghc-hetmet.git] / ghc / compiler / codeGen / CgBindery.hi
1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface CgBindery where
3 import AbsCSyn(AbstractC, CAddrMode, CExprMacro, CStmtMacro, MagicId, RegRelative, ReturnInfo)
4 import BasicLit(BasicLit)
5 import CLabelInfo(CLabel)
6 import CgMonad(CgInfoDownwards, CgState, StubFlag)
7 import ClosureInfo(ClosureInfo, LambdaFormInfo)
8 import CostCentre(CostCentre)
9 import HeapOffs(HeapOffset)
10 import Id(Id)
11 import IdEnv(IdEnv(..))
12 import Maybes(Labda)
13 import PreludePS(_PackedString)
14 import PreludeRatio(Ratio(..))
15 import PrimKind(PrimKind)
16 import PrimOps(PrimOp)
17 import StgSyn(StgAtom)
18 import UniqFM(UniqFM)
19 import UniqSet(UniqSet(..))
20 import Unique(Unique)
21 data AbstractC 
22 data CAddrMode 
23 data MagicId 
24 data BasicLit 
25 data CLabel 
26 type CgBindings = UniqFM CgIdInfo
27 data CgIdInfo   = MkCgIdInfo Id VolatileLoc StableLoc LambdaFormInfo
28 data CgState 
29 data LambdaFormInfo 
30 data HeapOffset 
31 data Id 
32 type IdEnv a = UniqFM a
33 data Labda a 
34 data StableLoc 
35 data StgAtom a 
36 data UniqFM a 
37 type UniqSet a = UniqFM a
38 data Unique 
39 data VolatileLoc 
40 bindArgsToRegs :: [Id] -> [MagicId] -> CgInfoDownwards -> CgState -> CgState
41 bindNewPrimToAmode :: Id -> CAddrMode -> CgInfoDownwards -> CgState -> CgState
42 bindNewToAStack :: (Id, Int) -> CgInfoDownwards -> CgState -> CgState
43 bindNewToBStack :: (Id, Int) -> CgInfoDownwards -> CgState -> CgState
44 bindNewToNode :: Id -> HeapOffset -> LambdaFormInfo -> CgInfoDownwards -> CgState -> CgState
45 bindNewToReg :: Id -> MagicId -> LambdaFormInfo -> CgInfoDownwards -> CgState -> CgState
46 bindNewToTemp :: Id -> CgInfoDownwards -> CgState -> (CAddrMode, CgState)
47 getAtomAmode :: StgAtom Id -> CgInfoDownwards -> CgState -> (CAddrMode, CgState)
48 getAtomAmodes :: [StgAtom Id] -> CgInfoDownwards -> CgState -> ([CAddrMode], CgState)
49 getCAddrMode :: Id -> CgInfoDownwards -> CgState -> (CAddrMode, CgState)
50 getCAddrModeAndInfo :: Id -> CgInfoDownwards -> CgState -> ((CAddrMode, LambdaFormInfo), CgState)
51 getCAddrModeIfVolatile :: Id -> CgInfoDownwards -> CgState -> (Labda CAddrMode, CgState)
52 getVolatileRegs :: UniqFM Id -> CgInfoDownwards -> CgState -> ([MagicId], CgState)
53 heapIdInfo :: Id -> HeapOffset -> LambdaFormInfo -> CgIdInfo
54 idInfoToAmode :: PrimKind -> CgIdInfo -> CgInfoDownwards -> CgState -> (CAddrMode, CgState)
55 letNoEscapeIdInfo :: Id -> Int -> Int -> LambdaFormInfo -> CgIdInfo
56 maybeAStkLoc :: StableLoc -> Labda Int
57 maybeBStkLoc :: StableLoc -> Labda Int
58 newTempAmodeAndIdInfo :: Id -> LambdaFormInfo -> (CAddrMode, CgIdInfo)
59 nukeVolatileBinds :: UniqFM CgIdInfo -> UniqFM CgIdInfo
60 rebindToAStack :: Id -> Int -> CgInfoDownwards -> CgState -> CgState
61 rebindToBStack :: Id -> Int -> CgInfoDownwards -> CgState -> CgState
62 stableAmodeIdInfo :: Id -> CAddrMode -> LambdaFormInfo -> CgIdInfo
63