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/