ruby-changes:34717
From: normal <ko1@a...>
Date: Sun, 13 Jul 2014 16:47:03 +0900 (JST)
Subject: [ruby-changes:34717] normal:r46800 (trunk): vm_core.h (struct rb_call_info_struct): improve packing
normal 2014-07-13 16:46:46 +0900 (Sun, 13 Jul 2014) New Revision: 46800 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=46800 Log: vm_core.h (struct rb_call_info_struct): improve packing * vm_core.h (struct rb_call_info_struct): improve packing On x86-64, it goes from 112 to 104 bytes. This results in ~20K of savings from just "./ruby -e exit" Modified files: trunk/ChangeLog trunk/vm_core.h Index: ChangeLog =================================================================== --- ChangeLog (revision 46799) +++ ChangeLog (revision 46800) @@ -1,3 +1,7 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1 +Sun Jul 13 16:44:56 2014 Eric Wong <e@8...> + + * vm_core.h (struct rb_call_info_struct): improve packing + Sun Jul 13 15:53:25 2014 Eric Wong <e@8...> * vm_core.h (struct rb_iseq_struct): stack_max is uint32_t Index: vm_core.h =================================================================== --- vm_core.h (revision 46799) +++ vm_core.h (revision 46800) @@ -141,8 +141,10 @@ typedef struct rb_call_info_struct { https://github.com/ruby/ruby/blob/trunk/vm_core.h#L141 /* fixed at compile time */ ID mid; VALUE flag; - int orig_argc; rb_iseq_t *blockiseq; + int orig_argc; + + int argc; /* temporary for method calling */ /* inline cache: keys */ rb_serial_t method_state; @@ -154,7 +156,6 @@ typedef struct rb_call_info_struct { https://github.com/ruby/ruby/blob/trunk/vm_core.h#L156 VALUE defined_class; /* temporary values for method calling */ - int argc; struct rb_block_struct *blockptr; VALUE recv; union { -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/