[project @ 2002-08-16 14:30:21 by simonmar]
authorsimonmar <unknown>
Fri, 16 Aug 2002 14:30:21 +0000 (14:30 +0000)
committersimonmar <unknown>
Fri, 16 Aug 2002 14:30:21 +0000 (14:30 +0000)
Use an stg_ap_2 thunk rather than an AP_UPD in rts_apply().  Saves one
word per rts_apply(), and a little time too.

ghc/rts/RtsAPI.c

index e144e84..7449bad 100644 (file)
@@ -1,5 +1,5 @@
 /* ----------------------------------------------------------------------------
- * $Id: RtsAPI.c,v 1.35 2002/06/19 20:45:14 sof Exp $
+ * $Id: RtsAPI.c,v 1.36 2002/08/16 14:30:21 simonmar Exp $
  *
  * (c) The GHC Team, 1998-2001
  *
@@ -232,12 +232,13 @@ rts_mkString (char *s)
 HaskellObj
 rts_apply (HaskellObj f, HaskellObj arg)
 {
-  StgAP_UPD *ap = (StgAP_UPD *)alloc(AP_sizeW(1));
-  SET_HDR(ap, &stg_AP_UPD_info, CCS_SYSTEM);
-  ap->n_args = 1;
-  ap->fun    = f;
-  ap->payload[0] = arg;
-  return (StgClosure *)ap;
+    StgClosure *ap;
+
+    ap = (StgClosure *)alloc(sizeofW(StgClosure) + 2);
+    SET_HDR(ap, (StgInfoTable *)&stg_ap_2_upd_info, CCS_SYSTEM);
+    ap->payload[0] = f;
+    ap->payload[1] = arg;
+    return (StgClosure *)ap;
 }
 
 /* ----------------------------------------------------------------------------