b28900e54838be4d296dfeb8ea631c3efc17f3c7
[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           ( mkReturnPtLabel, CLabel )
25 import HeapOffs         ( HeapOffset )
26 import Id               ( Id(..) )
27 import MachMisc         ( fixedHdrSizeInWords, varHdrSizeInWords )
28 import SMRep            ( SMRep )
29 import TyCon            ( TyCon )
30 import Unique           ( Unique )
31
32 closureKind :: ClosureInfo -> [Char]
33 closureLabelFromCI :: ClosureInfo -> CLabel
34 closureNonHdrSize :: ClosureInfo -> Int
35 closurePtrsSize :: ClosureInfo -> Int
36 closureSMRep :: ClosureInfo -> SMRep
37 closureSemiTag :: ClosureInfo -> Int
38 closureSizeWithoutFixedHdr :: ClosureInfo -> HeapOffset
39 closureTypeDescr :: ClosureInfo -> [Char]
40 closureUpdReqd :: ClosureInfo -> Bool
41 entryLabelFromCI :: ClosureInfo -> CLabel
42 fastLabelFromCI :: ClosureInfo -> CLabel
43 infoTableLabelFromCI :: ClosureInfo -> CLabel
44 maybeSelectorInfo :: ClosureInfo -> Maybe (Id, Int)
45
46 mkReturnPtLabel :: Unique -> CLabel
47
48 ctrlReturnConvAlg :: TyCon -> CtrlReturnConvention
49 data CtrlReturnConvention   = VectoredReturn Int | UnvectoredReturn Int
50
51 fixedHdrSizeInWords :: Int
52 varHdrSizeInWords   :: SMRep -> Int
53 \end{code}