Fix Haddock errors.
[ghc-hetmet.git] / compiler / cmm / CmmInfo.hs
index 085f863..314a9ad 100644 (file)
@@ -1,8 +1,8 @@
-{-# OPTIONS_GHC -w #-}
+{-# OPTIONS -w #-}
 -- The above warning supression flag is a temporary kludge.
 -- While working on this module you are encouraged to remove it and fix
 -- any warnings in the module. See
---     http://hackage.haskell.org/trac/ghc/wiki/WorkingConventions#Warnings
+--     http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings
 -- for details
 
 module CmmInfo (
@@ -14,7 +14,6 @@ module CmmInfo (
 
 import Cmm
 import CmmUtils
-import PprCmm
 
 import CLabel
 import MachOp
@@ -28,7 +27,6 @@ import SMRep
 
 import Constants
 import StaticFlags
-import DynFlags
 import Unique
 import UniqSupply
 import Panic
@@ -80,7 +78,7 @@ mkInfoTable :: Unique -> CmmTop -> [RawCmmTop]
 mkInfoTable uniq (CmmData sec dat) = [CmmData sec dat]
 mkInfoTable uniq (CmmProc (CmmInfo _ _ info) entry_label arguments blocks) =
     case info of
-      -- | Code without an info table.  Easy.
+      -- Code without an info table.  Easy.
       CmmNonInfoTable -> [CmmProc [] entry_label arguments blocks]
 
       CmmInfoTable (ProfilingInfo ty_prof cl_prof) type_tag type_info ->
@@ -88,7 +86,7 @@ mkInfoTable uniq (CmmProc (CmmInfo _ _ info) entry_label arguments blocks) =
               ty_prof' = makeRelativeRefTo info_label ty_prof
               cl_prof' = makeRelativeRefTo info_label cl_prof
           in case type_info of
-          -- | A function entry point.
+          -- A function entry point.
           FunInfo (ptrs, nptrs) srt fun_type fun_arity pap_bitmap slow_entry ->
               mkInfoTableAndCode info_label std_info fun_extra_bits entry_label
                                  arguments blocks
@@ -106,7 +104,7 @@ mkInfoTable uniq (CmmProc (CmmInfo _ _ info) entry_label arguments blocks) =
               (srt_label, srt_bitmap) = mkSRTLit info_label srt
               layout = packHalfWordsCLit ptrs nptrs
 
-          -- | A constructor.
+          -- A constructor.
           ConstrInfo (ptrs, nptrs) con_tag descr ->
               mkInfoTableAndCode info_label std_info [con_name] entry_label
                                  arguments blocks
@@ -115,7 +113,7 @@ mkInfoTable uniq (CmmProc (CmmInfo _ _ info) entry_label arguments blocks) =
                 con_name = makeRelativeRefTo info_label descr
                 layout = packHalfWordsCLit ptrs nptrs
 
-          -- | A thunk.
+          -- A thunk.
           ThunkInfo (ptrs, nptrs) srt ->
               mkInfoTableAndCode info_label std_info srt_label entry_label
                                  arguments blocks
@@ -124,7 +122,7 @@ mkInfoTable uniq (CmmProc (CmmInfo _ _ info) entry_label arguments blocks) =
                 (srt_label, srt_bitmap) = mkSRTLit info_label srt
                 layout = packHalfWordsCLit ptrs nptrs
 
-          -- | A selector thunk.
+          -- A selector thunk.
           ThunkSelectorInfo offset srt ->
               mkInfoTableAndCode info_label std_info [{- no SRT -}] entry_label
                                  arguments blocks
@@ -152,15 +150,15 @@ mkInfoTableAndCode :: CLabel
                    -> [CmmLit]
                    -> [CmmLit]
                    -> CLabel
-                   -> CmmFormals
-                   -> [CmmBasicBlock]
+                   -> CmmFormalsWithoutKinds
+                   -> ListGraph CmmStmt
                    -> [RawCmmTop]
 mkInfoTableAndCode info_lbl std_info extra_bits entry_lbl args blocks
   | tablesNextToCode   -- Reverse the extra_bits; and emit the top-level proc
   = [CmmProc (map CmmStaticLit (reverse extra_bits ++ std_info))
              entry_lbl args blocks]
 
-  | null blocks -- No actual code; only the info table is significant
+  | ListGraph [] <- blocks -- No code; only the info table is significant
   =            -- Use a zero place-holder in place of the 
                -- entry-label in the info table
     [mkRODataLits info_lbl (zeroCLit : std_info ++ extra_bits)]
@@ -202,9 +200,11 @@ mkSRTLit info_label (C_SRT lbl off bitmap) =
 -- TODO: combine with CgCallConv.mkLiveness (see comment there)
 mkLiveness :: Unique
            -> [Maybe LocalReg]
-           -> (CmmLit,           -- ^ The bitmap (literal value or label)
-               [RawCmmTop],      -- ^ Large bitmap CmmData if needed
-               ClosureTypeTag)   -- ^ rET_SMALL or rET_BIG
+           -> (CmmLit, [RawCmmTop], ClosureTypeTag)
+              -- ^ Returns:
+              --   1. The bitmap (literal value or label)
+              --   2. Large bitmap CmmData if needed
+              --   3. rET_SMALL or rET_BIG
 mkLiveness uniq live =
   if length bits > mAX_SMALL_BITMAP_SIZE
     -- does not fit in one word
@@ -224,8 +224,8 @@ mkLiveness uniq live =
     is_non_ptr Nothing = True
     is_non_ptr (Just reg) =
         case localRegGCFollow reg of
-          KindNonPtr -> True
-          KindPtr -> False
+          GCKindNonPtr -> True
+          GCKindPtr -> False
 
     bits :: [Bool]
     bits = mkBits live
@@ -277,3 +277,4 @@ mkStdInfoTable type_descr closure_descr cl_type srt_len layout_lit
        | otherwise          = []
 
     type_lit = packHalfWordsCLit cl_type srt_len
+