diff options
author | k0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2019-01-14 04:49:28 +0000 |
---|---|---|
committer | k0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2019-01-14 04:49:28 +0000 |
commit | 4840771afb158c544d583384404d33dcb4405afe (patch) | |
tree | a4eae19db3cbd1cb6a88df98c84df8e5bb10e901 /vm_insnhelper.c | |
parent | edb65a6254a1e06bb2155678676d6798acd7a51e (diff) |
vm_insnhelper.c: make VM helpers inline
In r66597, both VM and JIT seem to be made slower:
```
$ benchmark-driver benchmark.yml --rbenv 'r66596::before --disable-gems;r66597::after --disable-gems;r66596+JIT::before --disable-gems --jit;r66597+JIT::after --disable-gems --jit' -v --repeat-count 24
r66596: ruby 2.7.0dev (2018-12-28 trunk 66596) [x86_64-linux]
r66597: ruby 2.7.0dev (2018-12-28 trunk 66597) [x86_64-linux]
r66596+JIT: ruby 2.7.0dev (2018-12-28 trunk 66596) +JIT [x86_64-linux]
r66597+JIT: ruby 2.7.0dev (2018-12-28 trunk 66597) +JIT [x86_64-linux]
Calculating -------------------------------------
r66596 r66597 r66596+JIT r66597+JIT
Optcarrot Lan_Master.nes 55.174 54.620 88.011 85.326 fps
Comparison:
Optcarrot Lan_Master.nes
r66596+JIT: 88.0 fps
r66597+JIT: 85.3 fps - 1.03x slower
r66596: 55.2 fps - 1.60x slower
r66597: 54.6 fps - 1.61x slower
```
This commit makes JIT's situation a little better. But in 2.7 we seem to
have some other regressions after that, and this can't still resurrect the
2.6.0's performance.
```
$ benchmark-driver benchmark.yml --rbenv 'before::before --disable-gems;after::after --disable-gems;before+JIT::before --disable-gems --jit;after+JIT::after --disable-gems --jit' -v --repeat-count 24
before: ruby 2.7.0dev (2019-01-13 trunk 66808) [x86_64-linux]
after: ruby 2.7.0dev (2019-01-13 trunk 66808) [x86_64-linux]
last_commit=vm_insnhelper.c: make VM helpers inline
before+JIT: ruby 2.7.0dev (2019-01-13 trunk 66808) +JIT [x86_64-linux]
after+JIT: ruby 2.7.0dev (2019-01-13 trunk 66808) +JIT [x86_64-linux]
last_commit=vm_insnhelper.c: make VM helpers inline
Calculating -------------------------------------
before after before+JIT after+JIT
Optcarrot Lan_Master.nes 51.710 51.535 83.629 85.486 fps
Comparison:
Optcarrot Lan_Master.nes
after+JIT: 85.5 fps
before+JIT: 83.6 fps - 1.02x slower
before: 51.7 fps - 1.65x slower
after: 51.5 fps - 1.66x slower
```
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66809 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm_insnhelper.c')
-rw-r--r-- | vm_insnhelper.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/vm_insnhelper.c b/vm_insnhelper.c index 230a3291ea..a1547478f9 100644 --- a/vm_insnhelper.c +++ b/vm_insnhelper.c @@ -1391,7 +1391,7 @@ opt_equal_fallback(VALUE recv, VALUE obj, CALL_INFO ci, CALL_CACHE cc) #define BUILTIN_CLASS_P(x, k) (!SPECIAL_CONST_P(x) && RBASIC_CLASS(x) == k) #define EQ_UNREDEFINED_P(t) BASIC_OP_UNREDEFINED_P(BOP_EQ, t##_REDEFINED_OP_FLAG) -static bool +static inline bool FIXNUM_2_P(VALUE a, VALUE b) { /* FIXNUM_P(a) && FIXNUM_P(b) @@ -1403,7 +1403,7 @@ FIXNUM_2_P(VALUE a, VALUE b) return z == 1; } -static bool +static inline bool FLONUM_2_P(VALUE a, VALUE b) { #if USE_FLONUM @@ -1654,7 +1654,7 @@ rb_simple_iseq_p(const rb_iseq_t *iseq) iseq->body->param.flags.has_block == FALSE; } -static void +static inline void CALLER_SETUP_ARG(struct rb_control_frame_struct *restrict cfp, struct rb_calling_info *restrict calling, const struct rb_call_info *restrict ci) |