[project @ 1996-04-05 08:26:04 by partain]
[ghc-hetmet.git] / ghc / compiler / absCSyn / AbsCLoop.lhi
1 Breaks the loop caused by PprAbsC needing to
2 see big swathes of ClosureInfo.
3
4 Also from CLabel needing a couple of CgRetConv things.
5
6 Also from HeapOffs needing some MachMisc things.
7
8 \begin{code}
9 interface AbsCLoop where
10 import PreludeStdIO     ( Maybe )
11
12 import CgRetConv        ( ctrlReturnConvAlg,
13                           CtrlReturnConvention(..)
14                         )
15 import ClosureInfo      ( closureKind, closureLabelFromCI,
16                           closureNonHdrSize, closurePtrsSize,
17                           closureSMRep, closureSemiTag,
18                           closureSizeWithoutFixedHdr,
19                           closureTypeDescr, closureUpdReqd,
20                           infoTableLabelFromCI, maybeSelectorInfo,
21                           entryLabelFromCI,fastLabelFromCI,
22                           ClosureInfo
23                         )
24 import CLabel           ( CLabel )
25 import HeapOffs         ( HeapOffset )
26 import Id               ( Id(..) )
27 import MachMisc         ( fixedHdrSizeInWords, varHdrSizeInWords )
28 import SMRep            ( SMRep )
29 import TyCon            ( TyCon )
30
31 closureKind :: ClosureInfo -> [Char]
32 closureLabelFromCI :: ClosureInfo -> CLabel
33 closureNonHdrSize :: ClosureInfo -> Int
34 closurePtrsSize :: ClosureInfo -> Int
35 closureSMRep :: ClosureInfo -> SMRep
36 closureSemiTag :: ClosureInfo -> Int
37 closureSizeWithoutFixedHdr :: ClosureInfo -> HeapOffset
38 closureTypeDescr :: ClosureInfo -> [Char]
39 closureUpdReqd :: ClosureInfo -> Bool
40 entryLabelFromCI :: ClosureInfo -> CLabel
41 fastLabelFromCI :: ClosureInfo -> CLabel
42 infoTableLabelFromCI :: ClosureInfo -> CLabel
43 maybeSelectorInfo :: ClosureInfo -> Maybe (Id, Int)
44
45 ctrlReturnConvAlg :: TyCon -> CtrlReturnConvention
46 data CtrlReturnConvention   = VectoredReturn Int | UnvectoredReturn Int
47
48 fixedHdrSizeInWords :: Int
49 varHdrSizeInWords   :: SMRep -> Int
50 \end{code}