Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/2471a6bacccdf4d187aa4b31c382d5a5094b6fa5

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

commit 2471a6bacccdf4d187aa4b31c382d5a5094b6fa5
Author: Simon Marlow <[email protected]>
Date:   Tue Oct 23 09:45:05 2012 +0100

    Use canned heap checks to save a few bytes of code

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

 includes/Cmm.h  |    3 +++
 rts/PrimOps.cmm |    4 ++--
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/includes/Cmm.h b/includes/Cmm.h
index 9cb2dbc..2b5d93b 100644
--- a/includes/Cmm.h
+++ b/includes/Cmm.h
@@ -381,6 +381,9 @@
     TICK_ALLOC_PRIM(SIZEOF_StgHeader,bytes-SIZEOF_StgHeader,0); \
     CCCS_ALLOC(bytes);
 
+#define ALLOC_PRIM_(bytes,fun)                                  \
+    ALLOC_PRIM_WITH_CUSTOM_FAILURE(bytes,GC_PRIM(fun));
+
 #define ALLOC_PRIM_P(bytes,fun,arg)                             \
     ALLOC_PRIM_WITH_CUSTOM_FAILURE(bytes,GC_PRIM_P(fun,arg));
 
diff --git a/rts/PrimOps.cmm b/rts/PrimOps.cmm
index 6cba3f5..993088a 100644
--- a/rts/PrimOps.cmm
+++ b/rts/PrimOps.cmm
@@ -252,7 +252,7 @@ stg_newMutVarzh ( gcptr init )
 {
     W_ mv;
 
-    ALLOC_PRIM (SIZEOF_StgMutVar);
+    ALLOC_PRIM_P (SIZEOF_StgMutVar, stg_newMutVarzh, init);
 
     mv = Hp - SIZEOF_StgMutVar + WDS(1);
     SET_HDR(mv,stg_MUT_VAR_DIRTY_info,CCCS);
@@ -1154,7 +1154,7 @@ stg_newMVarzh ()
 {
     W_ mvar;
 
-    ALLOC_PRIM (SIZEOF_StgMVar);
+    ALLOC_PRIM_ (SIZEOF_StgMVar, stg_newMVarzh);
   
     mvar = Hp - SIZEOF_StgMVar + WDS(1);
     SET_HDR(mvar,stg_MVAR_DIRTY_info,CCCS);



_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to