1 Breaks the loop caused by PprAbsC needing to
2 see big swathes of ClosureInfo.
4 Also from CLabel needing a couple of CgRetConv things.
6 Also from HeapOffs needing some MachMisc things.
9 interface AbsCLoop where
10 import PreludeStdIO ( Maybe )
12 import CgRetConv ( ctrlReturnConvAlg,
13 CtrlReturnConvention(..)
15 import ClosureInfo ( closureKind, closureLabelFromCI,
16 closureNonHdrSize, closurePtrsSize,
17 closureSMRep, closureSemiTag,
18 closureSizeWithoutFixedHdr,
19 closureTypeDescr, closureUpdReqd,
20 infoTableLabelFromCI, maybeSelectorInfo,
21 entryLabelFromCI,fastLabelFromCI,
24 import CLabel ( CLabel )
25 import HeapOffs ( HeapOffset )
27 import MachMisc ( fixedHdrSizeInWords, varHdrSizeInWords )
28 import SMRep ( SMRep )
29 import TyCon ( TyCon )
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)
45 ctrlReturnConvAlg :: TyCon -> CtrlReturnConvention
46 data CtrlReturnConvention = VectoredReturn Int | UnvectoredReturn Int
48 fixedHdrSizeInWords :: Int
49 varHdrSizeInWords :: SMRep -> Int