Add {-# OPTIONS_GHC -w #-} and some blurb to all compiler modules
[ghc-hetmet.git] / compiler / codeGen / CgHeapery.lhs
index 4a12849..10f5049 100644 (file)
@@ -5,6 +5,13 @@
 \section[CgHeapery]{Heap management functions}
 
 \begin{code}
+{-# OPTIONS_GHC -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
+-- for details
+
 module CgHeapery (
        initHeapUsage, getVirtHp, setVirtHp, setRealHp, 
        getHpRelOffset, hpRel,
@@ -45,6 +52,8 @@ import Util
 import Constants
 import PackageConfig
 import Outputable
+
+import Data.List
 \end{code}
 
 
@@ -112,8 +121,7 @@ getHpRelOffset virtual_offset
 
 \begin{code}
 layOutDynConstr, layOutStaticConstr
-       :: PackageId
-       -> DataCon      
+       :: DataCon
        -> [(CgRep,a)]
        -> (ClosureInfo,
            [(a,VirtualHpOffset)])
@@ -121,8 +129,8 @@ layOutDynConstr, layOutStaticConstr
 layOutDynConstr    = layOutConstr False
 layOutStaticConstr = layOutConstr True
 
-layOutConstr  is_static this_pkg data_con args
-   = (mkConInfo this_pkg is_static data_con tot_wds ptr_wds,
+layOutConstr is_static data_con args
+   = (mkConInfo is_static data_con tot_wds ptr_wds,
       things_w_offsets)
   where
     (tot_wds,           --  #ptr_wds + #nonptr_wds
@@ -286,6 +294,9 @@ hpStkCheck cl_info is_fun reg_save_code code
        = noStmts
        | otherwise
        = oneStmt (CmmAssign nodeReg (CmmLit (CmmLabel closure_lbl)))
+        -- Strictly speaking, we should tag node here.  But if
+        -- node doesn't point to the closure, the code for the closure
+        -- cannot depend on the value of R1 anyway, so we're safe.
     closure_lbl = closureLabelFromCI cl_info
 
     full_save_code = node_asst `plusStmts` reg_save_code
@@ -454,7 +465,7 @@ do_checks' stk_expr hp_expr stk_nonzero hp_nonzero reg_save_code rts_lbl
                  [CmmMachOp mo_wordSub [CmmReg spReg, stk_expr],
                   CmmReg (CmmGlobal SpLim)]
 
-       -- Hp overflow if (Hpp > HpLim)
+       -- Hp overflow if (Hp > HpLim)
        -- (Hp has been incremented by now)
        -- HpLim points to the LAST WORD of valid allocation space.
     hp_oflo = CmmMachOp mo_wordUGt