From fcd257629063a345c48ff2d8057fa8ab910881f2 Mon Sep 17 00:00:00 2001 From: Takashi Kokubun Date: Tue, 12 May 2020 22:46:59 -0700 Subject: [PATCH] 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 ``` --- tool/transform_mjit_header.rb | 3 --- 1 file changed, 3 deletions(-) diff --git a/tool/transform_mjit_header.rb b/tool/transform_mjit_header.rb index f3ca2c5db0..3e6aa6e0d0 100644 --- a/tool/transform_mjit_header.rb +++ b/tool/transform_mjit_header.rb @@ -60,9 +60,6 @@ module MJITHeader '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