[commit: ghc] master: Remove stale, commented-out code about heap checks (ca88359)

Simon Peyton Jones simonpj at microsoft.com
Sat Mar 9 17:35:05 CET 2013


Repository : http://darcs.haskell.org/ghc.git/

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/ca88359191fe14e5b36d41b111f27df19d843a6c

>---------------------------------------------------------------

commit ca88359191fe14e5b36d41b111f27df19d843a6c
Author: Simon Peyton Jones <simonpj at microsoft.com>
Date:   Sat Mar 9 16:32:48 2013 +0000

    Remove stale, commented-out code about heap checks

>---------------------------------------------------------------

 compiler/codeGen/StgCmmHeap.hs | 83 ------------------------------------------
 1 file changed, 83 deletions(-)

diff --git a/compiler/codeGen/StgCmmHeap.hs b/compiler/codeGen/StgCmmHeap.hs
index 5fe3db1..b1cddbe 100644
--- a/compiler/codeGen/StgCmmHeap.hs
+++ b/compiler/codeGen/StgCmmHeap.hs
@@ -594,86 +594,3 @@ do_checks mb_stk_hwm checkYield mb_alloc_lit do_gc = do
                 -- stack check succeeds.  Otherwise we might end up
                 -- with slop at the end of the current block, which can
                 -- confuse the LDV profiler.
-
-{-
-
-{- Unboxed tuple alternatives and let-no-escapes (the two most annoying
-constructs to generate code for!)  For unboxed tuple returns, there
-are an arbitrary number of possibly unboxed return values, some of
-which will be in registers, and the others will be on the stack.  We
-always organise the stack-resident fields into pointers &
-non-pointers, and pass the number of each to the heap check code. -}
-
-unbxTupleHeapCheck
-        :: [(Id, GlobalReg)]    -- Live registers
-        -> WordOff      -- no. of stack slots containing ptrs
-        -> WordOff      -- no. of stack slots containing nonptrs
-        -> CmmAGraph    -- code to insert in the failure path
-        -> FCode ()
-        -> FCode ()
-
-unbxTupleHeapCheck regs ptrs nptrs fail_code code
-  -- We can't manage more than 255 pointers/non-pointers
-  -- in a generic heap check.
-  | ptrs > 255 || nptrs > 255 = panic "altHeapCheck"
-  | otherwise
-  = initHeapUsage $ \ hpHw -> do
-        { codeOnly $ do { do_checks 0 {- no stack check -} hpHw
-                                    full_fail_code rts_label
-                        ; tickyAllocHeap hpHw }
-        ; setRealHp hpHw
-        ; code }
-  where
-    full_fail_code  = fail_code `plusStmts` oneStmt assign_liveness
-    assign_liveness = CmmAssign (CmmGlobal (VanillaReg 9))      -- Ho ho ho!
-                                (CmmLit (mkWordCLit liveness))
-    liveness        = mkRegLiveness regs ptrs nptrs
-    rts_label       = CmmLit (CmmLabel (mkRtsCodeLabel (sLit "stg_gc_ut")))
-
-
-{- Old Gransim com -- I have no idea whether it still makes sense (SLPJ Sep07)
-For GrAnSim the code for doing a heap check and doing a context switch
-has been separated. Especially, the HEAP_CHK macro only performs a
-heap check. THREAD_CONTEXT_SWITCH should be used for doing a context
-switch. GRAN_FETCH_AND_RESCHEDULE must be put at the beginning of
-every slow entry code in order to simulate the fetching of
-closures. If fetching is necessary (i.e. current closure is not local)
-then an automatic context switch is done. -}
-
-
-When failing a check, we save a return address on the stack and
-jump to a pre-compiled code fragment that saves the live registers
-and returns to the scheduler.
-
-The return address in most cases will be the beginning of the basic
-block in which the check resides, since we need to perform the check
-again on re-entry because someone else might have stolen the resource
-in the meantime.
-
-%************************************************************************
-%*                                                                      *
-     Generic Heap/Stack Checks - used in the RTS
-%*                                                                      *
-%************************************************************************
-
-\begin{code}
-hpChkGen :: CmmExpr -> CmmExpr -> CmmExpr -> FCode ()
-hpChkGen bytes liveness reentry
-  = do_checks' bytes True assigns stg_gc_gen
-  where
-    assigns = mkStmts [
-                CmmAssign (CmmGlobal (VanillaReg 9))  liveness,
-                CmmAssign (CmmGlobal (VanillaReg 10)) reentry
-                ]
-
--- a heap check where R1 points to the closure to enter on return, and
--- we want to assign to Sp[0] on failure (used in AutoApply.cmm:BUILD_PAP).
-hpChkNodePointsAssignSp0 :: CmmExpr -> CmmExpr -> FCode ()
-hpChkNodePointsAssignSp0 bytes sp0
-  = do_checks' bytes True assign stg_gc_enter1
-  where assign = oneStmt (CmmStore (CmmReg spReg) sp0)
-
-stg_gc_gen    = CmmLit (CmmLabel (mkRtsCodeLabel (sLit "stg_gc_gen")))
-\end{code}
-
--}





More information about the ghc-commits mailing list