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 ( mkReturnPtLabel, CLabel )
25 import HeapOffs ( HeapOffset )
27 import MachMisc ( fixedHdrSizeInWords, varHdrSizeInWords )
28 import SMRep ( SMRep )
29 import TyCon ( TyCon )
30 import Unique ( Unique )
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)
46 mkReturnPtLabel :: Unique -> CLabel
48 ctrlReturnConvAlg :: TyCon -> CtrlReturnConvention
49 data CtrlReturnConvention = VectoredReturn Int | UnvectoredReturn Int
51 fixedHdrSizeInWords :: Int
52 varHdrSizeInWords :: SMRep -> Int