[project @ 2000-07-14 08:14:53 by simonpj]
[ghc-hetmet.git] / ghc / compiler / codeGen / CgTailCall.lhs
index 82c64a4..7428e5e 100644 (file)
@@ -1,7 +1,7 @@
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-% $Id: CgTailCall.lhs,v 1.24 2000/03/23 17:45:19 simonpj Exp $
+% $Id: CgTailCall.lhs,v 1.26 2000/07/14 08:14:53 simonpj Exp $
 %
 %********************************************************
 %*                                                     *
@@ -30,7 +30,7 @@ import CgMonad
 import AbsCSyn
 import PprAbsC         ( pprAmode )
 
-import AbsCUtils       ( mkAbstractCs, mkAbsCStmts, getAmodeRep )
+import AbsCUtils       ( mkAbstractCs, getAmodeRep )
 import CgBindery       ( getArgAmodes, getCAddrMode, getCAddrModeAndInfo )
 import CgRetConv       ( dataReturnConvPrim,
                          ctrlReturnConvAlg, CtrlReturnConvention(..),
@@ -48,7 +48,6 @@ import ClosureInfo    ( nodeMustPointToIt,
 import CmdLineOpts     ( opt_DoSemiTagging )
 import Id              ( Id, idType, idName )
 import DataCon         ( DataCon, dataConTyCon, dataConTag, fIRST_TAG )
-import Literal         ( mkMachInt )
 import Maybes          ( assocMaybe, maybeToBool )
 import PrimRep         ( PrimRep(..) )
 import StgSyn          ( StgArg, GenStgArg(..) )
@@ -404,8 +403,6 @@ doTailCall arg_amodes arg_regs finish_code arity pending_assts
   = getEndOfBlockInfo  `thenFC` \ eob@(EndOfBlockInfo args_sp sequel) ->
 
     let
-       no_of_args = length arg_amodes
-
        (reg_arg_amodes, stk_arg_amodes) = splitAt (length arg_regs) arg_amodes
            -- We get some stk_arg_amodes if (a) no regs, or 
            --                               (b) args beyond arity
@@ -429,7 +426,6 @@ doTailCall arg_amodes arg_regs finish_code arity pending_assts
                splitAt arity stk_arg_amodes
 
        -- eager blackholing, at the end of the basic block.
-       node_save = CTemp (mkPseudoUnique1 2) DataPtrRep
        (r1_tmp_asst, bh_asst)
         = case sequel of
 #if 0
@@ -442,6 +438,8 @@ doTailCall arg_amodes arg_regs finish_code arity pending_assts
                    CAssign (CVal (CIndex node_save (mkIntCLit 0) PtrRep) 
                                  PtrRep)
                            (CLbl mkBlackHoleInfoTableLabel DataPtrRep))
+                  where
+                    node_save = CTemp (mkPseudoUnique1 2) DataPtrRep
 #endif
                _ -> (AbsCNop, AbsCNop)
     in