[svn:parrot] r41866 - branches/pcc_reapply/src/call

chromatic at svn.parrot.org chromatic at svn.parrot.org
Wed Oct 14 22:59:43 UTC 2009


Author: chromatic
Date: Wed Oct 14 22:59:42 2009
New Revision: 41866
URL: https://trac.parrot.org/parrot/changeset/41866

Log:
[PCC] Removed return signature string handling from
Parrot_pcc_build_sig_object_returns_from_op(), as nothing uses it.  This
produces a 10.093% performance improvement on the fib.pir benchmark.

Modified:
   branches/pcc_reapply/src/call/args.c

Modified: branches/pcc_reapply/src/call/args.c
==============================================================================
--- branches/pcc_reapply/src/call/args.c	Wed Oct 14 22:47:48 2009	(r41865)
+++ branches/pcc_reapply/src/call/args.c	Wed Oct 14 22:59:42 2009	(r41866)
@@ -755,8 +755,6 @@
     SETATTR_CallSignature_return_flags(interp, call_object, raw_sig);
     SETATTR_CallSignature_results(interp, call_object, returns);
 
-    string_sig = Parrot_str_append(interp, string_sig, CONST_STRING(interp, "->"));
-
     for (arg_index = 0; arg_index < arg_count; arg_index++) {
         STRING * const signature = CONST_STRING(interp, "signature");
         INTVAL arg_flags = VTABLE_get_integer_keyed_int(interp,
@@ -769,13 +767,11 @@
 
         switch (PARROT_ARG_TYPE_MASK_MASK(arg_flags)) {
             case PARROT_ARG_INTVAL:
-                string_sig = Parrot_str_append(interp, string_sig, CONST_STRING(interp, "I"));
                 VTABLE_set_pointer(interp, val_pointer, (void *) &(CTX_REG_INT(ctx, raw_index)));
                 VTABLE_set_string_keyed_str(interp, val_pointer, signature, CONST_STRING(interp, "I"));
                 VTABLE_push_pmc(interp, returns, val_pointer);
                 break;
             case PARROT_ARG_FLOATVAL:
-                string_sig = Parrot_str_append(interp, string_sig, CONST_STRING(interp, "N"));
                 VTABLE_set_pointer(interp, val_pointer, (void *) &(CTX_REG_NUM(ctx, raw_index)));
                 VTABLE_set_string_keyed_str(interp, val_pointer, signature, CONST_STRING(interp, "N"));
                 VTABLE_push_pmc(interp, returns, val_pointer);
@@ -790,7 +786,6 @@
                     VTABLE_push_pmc(interp, returns, name_string);
                 }
                 else {
-                    string_sig = Parrot_str_append(interp, string_sig, CONST_STRING(interp, "S"));
                     VTABLE_set_pointer(interp, val_pointer,
                                        (void *) &(CTX_REG_STR(ctx, raw_index)));
                     VTABLE_set_string_keyed_str(interp, val_pointer, signature, CONST_STRING(interp, "S"));
@@ -798,7 +793,6 @@
                 }
                 break;
             case PARROT_ARG_PMC:
-                string_sig = Parrot_str_append(interp, string_sig, CONST_STRING(interp, "P"));
                 VTABLE_set_pointer(interp, val_pointer, (void *) &(CTX_REG_PMC(ctx, raw_index)));
                 VTABLE_set_string_keyed_str(interp, val_pointer, signature, CONST_STRING(interp, "P"));
                 VTABLE_push_pmc(interp, returns, val_pointer);
@@ -809,7 +803,6 @@
 
     }
 
-    VTABLE_set_string_native(interp, call_object, string_sig);
     return call_object;
 }
 


More information about the parrot-commits mailing list