Fix warnings in StgCmmTicky
[ghc-hetmet.git] / compiler / codeGen / CgTailCall.lhs
index d5943f5..4f89099 100644 (file)
@@ -5,11 +5,11 @@
 % Code generation for tail calls.
 
 \begin{code}
-{-# 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 CgTailCall (
@@ -34,7 +34,6 @@ import CgUtils
 import CgTicky
 import ClosureInfo
 import SMRep
-import MachOp
 import Cmm     
 import CmmUtils
 import CLabel
@@ -42,6 +41,7 @@ import Type
 import Id
 import StgSyn
 import PrimOp
+import FastString
 import Outputable
 
 import Control.Monad
@@ -117,7 +117,7 @@ performTailCall fun_info arg_amodes pending_assts
        ; EndOfBlockInfo sp _ <- getEndOfBlockInfo
        ; this_pkg <- getThisPackage
 
-       ; case (getCallMethod fun_name lf_info (length arg_amodes)) of
+       ; case (getCallMethod fun_name fun_has_cafs lf_info (length arg_amodes)) of
 
            -- Node must always point to things we enter
            EnterIt -> do
@@ -184,8 +184,10 @@ performTailCall fun_info arg_amodes pending_assts
                }
        }
   where
-    fun_name  = idName (cgIdInfoId fun_info)
+    fun_id    = cgIdInfoId fun_info
+    fun_name  = idName fun_id
     lf_info   = cgIdInfoLF fun_info
+    fun_has_cafs = idCafInfo fun_id
     untag_node = CmmAssign nodeReg (cmmUntag (CmmReg nodeReg))
     -- Test if closure is a constructor
     maybeSwitchOnCons enterClosure eob
@@ -227,6 +229,7 @@ performTailCall fun_info arg_amodes pending_assts
         where
           --cond1 tag  = cmmULtWord tag lowCons
           -- More efficient than the above?
+{-
           tag_expr   = cmmGetClosureType (CmmReg nodeReg)
           cond1 tag  = cmmEqWord tag (CmmLit (mkIntCLit 0))
           cond2 tag  = cmmUGtWord tag highCons
@@ -234,11 +237,9 @@ performTailCall fun_info arg_amodes pending_assts
             -- CONSTR
           highCons   = CmmLit (mkIntCLit 8)
             -- CONSTR_NOCAF_STATIC (from ClosureType.h)
+-}
 
 
-untagCmmAssign (CmmAssign r cmmExpr) = CmmAssign r (cmmUntag cmmExpr)
-untagCmmAssign stmt                  = stmt
-
 directCall sp lbl args extra_args assts = do
   let
        -- First chunk of args go in registers
@@ -475,3 +476,4 @@ adjustSpAndHp newRealSp
        ; setRealHp vHp
        }
 \end{code}
+