[project @ 2004-12-08 14:32:28 by simonpj]
authorsimonpj <unknown>
Wed, 8 Dec 2004 14:32:34 +0000 (14:32 +0000)
committersimonpj <unknown>
Wed, 8 Dec 2004 14:32:34 +0000 (14:32 +0000)
Comments and asserts only

ghc/compiler/codeGen/CgBindery.lhs
ghc/compiler/codeGen/CgClosure.lhs
ghc/compiler/codeGen/CgMonad.lhs
ghc/compiler/codeGen/CodeGen.lhs

index 2254ff7..e6e1043 100644 (file)
@@ -91,7 +91,7 @@ voidIdInfo id = CgIdInfo { cg_id = id, cg_vol = NoVolatileLoc
                         , cg_rep = VoidArg }
        -- Used just for VoidRep things
 
-data VolatileLoc
+data VolatileLoc       -- These locations die across a call
   = NoVolatileLoc
   | RegLoc     CmmReg             -- In one of the registers (global or local)
   | VirHpLoc   VirtualHpOffset  -- Hp+offset (address of closure)
index 0369b1b..3c8066b 100644 (file)
@@ -1,7 +1,7 @@
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-% $Id: CgClosure.lhs,v 1.65 2004/11/26 16:20:03 simonmar Exp $
+% $Id: CgClosure.lhs,v 1.66 2004/12/08 14:32:29 simonpj Exp $
 %
 \section[CgClosure]{Code generation for closures}
 
@@ -237,7 +237,7 @@ So it should set up an update frame (if it is shared).
 NB: Thunks cannot have a primitive type!
 
 \begin{code}
-closureCodeBody binder_info cl_info cc [] body = do
+closureCodeBody binder_info cl_info cc [{- No args i.e. thunk -}] body = do
   { body_absC <- getCgStmts $ do
        { tickyEnterThunk cl_info
        ; ldvEnter (CmmReg nodeReg)  -- NB: Node always points when profiling
@@ -261,8 +261,9 @@ argSatisfactionCheck (by calling fetchAndReschedule).  There info if
 Node points to closure is available. -- HWL
 
 \begin{code}
-closureCodeBody binder_info cl_info cc args body = do
-  {    -- Get the current virtual Sp (it might not be zero, 
+closureCodeBody binder_info cl_info cc args body 
+  = ASSERT( length args > 0 )
+  do {         -- Get the current virtual Sp (it might not be zero, 
        -- eg. if we're compiling a let-no-escape).
     vSp <- getVirtSp
   ; let (reg_args, other_args) = assignCallRegs (addIdReps args)
index d9d0801..4ba8f09 100644 (file)
@@ -1,7 +1,7 @@
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-% $Id: CgMonad.lhs,v 1.42 2004/11/26 16:20:10 simonmar Exp $
+% $Id: CgMonad.lhs,v 1.43 2004/12/08 14:32:31 simonpj Exp $
 %
 \section[CgMonad]{The code generation monad}
 
@@ -280,7 +280,7 @@ data StackUsage
         hwSp :: VirtualSpOffset
   }               -- Highest value ever taken by virtSp
 
--- INVARAINT: The environment contains no Stable references to
+-- INVARIANT: The environment contains no Stable references to
 --           stack slots below (lower offset) frameSp
 --           It can contain volatile references to this area though.
 
index 056fb1e..608ff92 100644 (file)
@@ -295,7 +295,7 @@ cgTopBinding dflags (StgRec pairs, srts)
        ; bndrs' <- mapFCs maybeExternaliseId bndrs
        ; let pairs' = zip bndrs' rhss
        ; mapM_ (mkSRT dflags bndrs')  srts
-       ; new_binds <- fixC (\ new_binds -> do 
+       ; _new_binds <- fixC (\ new_binds -> do 
                { addBindsC new_binds
                ; mapFCs ( \ (b,e) -> cgTopRhs b e ) pairs' })
        ; nopC }