summaryrefslogtreecommitdiff
path: root/vm_insnhelper.c
diff options
context:
space:
mode:
authork0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2019-01-14 04:49:28 +0000
committerk0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2019-01-14 04:49:28 +0000
commit4840771afb158c544d583384404d33dcb4405afe (patch)
treea4eae19db3cbd1cb6a88df98c84df8e5bb10e901 /vm_insnhelper.c
parentedb65a6254a1e06bb2155678676d6798acd7a51e (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.c6
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)