[前][次][番号順一覧][スレッド一覧]

ruby-changes:51839

From: k0kubun <ko1@a...>
Date: Wed, 25 Jul 2018 23:55:51 +0900 (JST)
Subject: [ruby-changes:51839] k0kubun:r64053 (trunk): insns.def: s/handles_frame/handles_sp/

k0kubun	2018-07-25 23:55:43 +0900 (Wed, 25 Jul 2018)

  New Revision: 64053

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=64053

  Log:
    insns.def: s/handles_frame/handles_sp/
    
    because it's more suitable to describe the current behavior now.
    
    tool/ruby_vm/models/bare_instructions.rb: ditto.
    tool/ruby_vm/views/_insn_entry.erb: ditto.
    tool/ruby_vm/views/_mjit_compile_insn_body.erb: ditto.
    tool/ruby_vm/views/_mjit_compile_pc_and_sp.erb: ditto.

  Modified files:
    trunk/insns.def
    trunk/tool/ruby_vm/models/bare_instructions.rb
    trunk/tool/ruby_vm/views/_insn_entry.erb
    trunk/tool/ruby_vm/views/_mjit_compile_insn_body.erb
    trunk/tool/ruby_vm/views/_mjit_compile_pc_and_sp.erb
Index: insns.def
===================================================================
--- insns.def	(revision 64052)
+++ insns.def	(revision 64053)
@@ -43,7 +43,7 @@ https://github.com/ruby/ruby/blob/trunk/insns.def#L43
        * sp_inc: Used to dynamically calculate sp increase in
          `insn_stack_increase`.
 
-       * handles_frame: If it is true, VM deals with sp in the insn.
+       * handles_sp: If it is true, VM deals with sp in the insn.
 
    - Attributes can access operands, but not stack (push/pop) variables.
 
@@ -687,7 +687,7 @@ defineclass https://github.com/ruby/ruby/blob/trunk/insns.def#L687
 (ID id, ISEQ class_iseq, rb_num_t flags)
 (VALUE cbase, VALUE super)
 (VALUE val)
-// attr bool handles_frame = true;
+// attr bool handles_sp = true;
 {
     VALUE klass = vm_find_or_create_class_by_id(id, flags, cbase, super);
 
@@ -714,7 +714,7 @@ send https://github.com/ruby/ruby/blob/trunk/insns.def#L714
 (CALL_INFO ci, CALL_CACHE cc, ISEQ blockiseq)
 (...)
 (VALUE val)
-// attr bool handles_frame = true;
+// attr bool handles_sp = true;
 // attr rb_snum_t sp_inc = - (int)(ci->orig_argc + ((ci->flag & VM_CALL_ARGS_BLOCKARG) ? 1 : 0));
 {
     struct rb_calling_info calling;
@@ -768,7 +768,7 @@ opt_send_without_block https://github.com/ruby/ruby/blob/trunk/insns.def#L768
 (CALL_INFO ci, CALL_CACHE cc)
 (...)
 (VALUE val)
-// attr bool handles_frame = true;
+// attr bool handles_sp = true;
 // attr rb_snum_t sp_inc = -ci->orig_argc;
 {
     struct rb_calling_info calling;
@@ -783,7 +783,7 @@ invokesuper https://github.com/ruby/ruby/blob/trunk/insns.def#L783
 (CALL_INFO ci, CALL_CACHE cc, ISEQ blockiseq)
 (...)
 (VALUE val)
-// attr bool handles_frame = true;
+// attr bool handles_sp = true;
 // attr rb_snum_t sp_inc = - (int)(ci->orig_argc + ((ci->flag & VM_CALL_ARGS_BLOCKARG) ? 1 : 0));
 {
     struct rb_calling_info calling;
@@ -801,7 +801,7 @@ invokeblock https://github.com/ruby/ruby/blob/trunk/insns.def#L801
 (CALL_INFO ci)
 (...)
 (VALUE val)
-// attr bool handles_frame = true;
+// attr bool handles_sp = true;
 // attr rb_snum_t sp_inc = 1 - ci->orig_argc;
 {
     struct rb_calling_info calling;
@@ -828,7 +828,7 @@ leave https://github.com/ruby/ruby/blob/trunk/insns.def#L828
 ()
 (VALUE val)
 (VALUE val)
-// attr bool handles_frame = true;
+// attr bool handles_sp = true;
 {
     if (OPT_CHECKED_RUN) {
 	const VALUE *const bp = vm_base_ptr(reg_cfp);
@@ -1376,7 +1376,7 @@ opt_call_c_function https://github.com/ruby/ruby/blob/trunk/insns.def#L1376
 (rb_insn_func_t funcptr)
 ()
 ()
-// attr bool handles_frame = true;
+// attr bool handles_sp = true;
 {
     reg_cfp = (funcptr)(ec, reg_cfp);
 
Index: tool/ruby_vm/models/bare_instructions.rb
===================================================================
--- tool/ruby_vm/models/bare_instructions.rb	(revision 64052)
+++ tool/ruby_vm/models/bare_instructions.rb	(revision 64053)
@@ -101,8 +101,8 @@ class RubyVM::BareInstructions https://github.com/ruby/ruby/blob/trunk/tool/ruby_vm/models/bare_instructions.rb#L101
     }.join
   end
 
-  def handles_frame?
-    /\b(false|0)\b/ !~ @attrs['handles_frame'].expr.expr
+  def handles_sp?
+    /\b(false|0)\b/ !~ @attrs['handles_sp'].expr.expr
   end
 
   def inspect
@@ -129,7 +129,7 @@ class RubyVM::BareInstructions https://github.com/ruby/ruby/blob/trunk/tool/ruby_vm/models/bare_instructions.rb#L129
     generate_attribute 'rb_num_t', 'retn', rets.size
     generate_attribute 'rb_num_t', 'width', width
     generate_attribute 'rb_snum_t', 'sp_inc', rets.size - pops.size
-    generate_attribute 'bool', 'handles_frame', false
+    generate_attribute 'bool', 'handles_sp', false
   end
 
   def typesplit a
Index: tool/ruby_vm/views/_insn_entry.erb
===================================================================
--- tool/ruby_vm/views/_insn_entry.erb	(revision 64052)
+++ tool/ruby_vm/views/_insn_entry.erb	(revision 64053)
@@ -30,7 +30,7 @@ INSN_ENTRY(<%= insn.name %>) https://github.com/ruby/ruby/blob/trunk/tool/ruby_vm/views/_insn_entry.erb#L30
 % end
     DEBUG_ENTER_INSN(INSN_ATTR(name));
     ADD_PC(INSN_ATTR(width));
-% if insn.handles_frame?
+% if insn.handles_sp?
     POPN(INSN_ATTR(popn));
 % end
     COLLECT_USAGE_INSN(INSN_ATTR(bin));
@@ -39,7 +39,7 @@ INSN_ENTRY(<%= insn.name %>) https://github.com/ruby/ruby/blob/trunk/tool/ruby_vm/views/_insn_entry.erb#L39
 % end
 <%= render_c_expr insn.expr -%>
     CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn));
-% if insn.handles_frame?
+% if insn.handles_sp?
 %   insn.rets.reverse_each do |ret|
     PUSH(<%= insn.cast_to_VALUE ret %>);
 %   end
Index: tool/ruby_vm/views/_mjit_compile_insn_body.erb
===================================================================
--- tool/ruby_vm/views/_mjit_compile_insn_body.erb	(revision 64052)
+++ tool/ruby_vm/views/_mjit_compile_insn_body.erb	(revision 64053)
@@ -75,13 +75,13 @@ https://github.com/ruby/ruby/blob/trunk/tool/ruby_vm/views/_mjit_compile_insn_body.erb#L75
         fprintf(f, "            reg_cfp->pc = original_body_iseq + %d;\n", pos);
         fprintf(f, "            goto cancel;\n");
 %   else
-%     if insn.handles_frame?
-%       # If insn.handles_frame? is true, cfp->sp might be changed inside insns (like vm_caller_setup_arg_block)
-%       # and thus we need to use cfp->sp, even when local_stack_p is TRUE. When insn.handles_frame? is true,
+%     if insn.handles_sp?
+%       # If insn.handles_sp? is true, cfp->sp might be changed inside insns (like vm_caller_setup_arg_block)
+%       # and thus we need to use cfp->sp, even when local_stack_p is TRUE. When insn.handles_sp? is true,
 %       # cfp->sp should be available too because _mjit_compile_pc_and_sp.erb sets it.
         fprintf(f, <%= to_cstr.call(line) %>);
 %     else
-%       # If local_stack_p is TRUE and insn.handles_frame? is false, stack values are only available in local variables
+%       # If local_stack_p is TRUE and insn.handles_sp? is false, stack values are only available in local variables
 %       # for stack. So we need to replace those macros if local_stack_p is TRUE here.
 %       case line
 %       when /\bGET_SP\(\)/
Index: tool/ruby_vm/views/_mjit_compile_pc_and_sp.erb
===================================================================
--- tool/ruby_vm/views/_mjit_compile_pc_and_sp.erb	(revision 64052)
+++ tool/ruby_vm/views/_mjit_compile_pc_and_sp.erb	(revision 64053)
@@ -13,9 +13,9 @@ https://github.com/ruby/ruby/blob/trunk/tool/ruby_vm/views/_mjit_compile_pc_and_sp.erb#L13
 %
 % # JIT: move sp to use or preserve stack variables
         if (status->local_stack_p) {
-% # sp motion is optimized away for `handles_frame? #=> false` case.
+% # sp motion is optimized away for `handles_sp? #=> false` case.
 % # Thus sp should be set properly before `goto cancel`.
-% if insn.handles_frame?
+% if insn.handles_sp?
 %           # JIT-only behavior (pushing JIT's local variables to VM's stack):
             {
                 rb_snum_t i, push_size;
@@ -28,7 +28,7 @@ https://github.com/ruby/ruby/blob/trunk/tool/ruby_vm/views/_mjit_compile_pc_and_sp.erb#L28
 % end
         }
         else {
-% if insn.handles_frame?
+% if insn.handles_sp?
             fprintf(f, "    reg_cfp->sp = (VALUE *)reg_cfp->bp + %d;\n", b->stack_size + 1 - <%= insn.pops.size %>); /* POPN(INSN_ATTR(popn)); */
 % else
             fprintf(f, "    reg_cfp->sp = (VALUE *)reg_cfp->bp + %d;\n", b->stack_size + 1);

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]