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

ruby-changes:61237

From: Takashi <ko1@a...>
Date: Wed, 13 May 2020 14:50:43 +0900 (JST)
Subject: [ruby-changes:61237] fcd2576290 (master): Stop always inlining not-optimized get/setivar

https://git.ruby-lang.org/ruby.git/commit/?id=fcd2576290

From fcd257629063a345c48ff2d8057fa8ab910881f2 Mon Sep 17 00:00:00 2001
From: Takashi Kokubun <takashikkbn@g...>
Date: Tue, 12 May 2020 22:46:59 -0700
Subject: Stop always inlining not-optimized get/setivar

As we have the optimization in _mjit_compile_ivar.erb, we don't use
these functions if we successfully optimize ivars. Therefore it's
consuming code size where we can't optimize it well.

To decrease code size, we'd better avoid inlining them.

```
$ benchmark-driver -v --rbenv 'before --jit;after --jit' benchmark.yml --repeat-count=12 --output=all
before --jit: ruby 2.8.0dev (2020-05-13T04:49:21Z master 61d451d6ce) +JIT [x86_64-linux]
after --jit: ruby 2.8.0dev (2020-05-13T05:46:59Z master a072d323db) +JIT [x86_64-linux]
Calculating -------------------------------------
                                 before --jit           after --jit
Optcarrot Lan_Master.nes     69.8567095356444      73.0360609399857 fps
                             70.3283101279035      74.6106251902062
                             72.9135395729567      75.2797344839106
                             76.6944690546044      77.5705757485036
                             77.0027971817715      78.2269524040059
                             78.5069033659736      78.4457471014131
                             80.1873218604913      80.1273811685818
                             81.3079566400696      81.7148593303302
                             81.7285827817226      81.7637234555871
                             81.7657097839637      82.4520295422720
                             81.8310114206406      82.7532354379759
                             81.9886488857863      82.8358739858206
```

diff --git a/tool/transform_mjit_header.rb b/tool/transform_mjit_header.rb
index f3ca2c5..3e6aa6e 100644
--- a/tool/transform_mjit_header.rb
+++ b/tool/transform_mjit_header.rb
@@ -60,9 +60,6 @@ module MJITHeader https://github.com/ruby/ruby/blob/trunk/tool/transform_mjit_header.rb#L60
     'vm_opt_aref_with',
     'vm_opt_aset_with',
     'vm_opt_not',
-    'vm_getinstancevariable',
-    'vm_setinstancevariable',
-    'vm_setivar',
   ]
 
   # Return start..stop of last decl in CODE ending STOP
-- 
cgit v0.10.2


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

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