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)
11 import IdEnv(IdEnv(..))
13 import PreludePS(_PackedString)
14 import PreludeRatio(Ratio(..))
15 import PrimKind(PrimKind)
16 import PrimOps(PrimOp)
17 import StgSyn(StgAtom)
19 import UniqSet(UniqSet(..))
26 type CgBindings = UniqFM CgIdInfo
27 data CgIdInfo = MkCgIdInfo Id VolatileLoc StableLoc LambdaFormInfo
32 type IdEnv a = UniqFM a
37 type UniqSet a = UniqFM a
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