Takashi Kokubun
dbb4f19969
Allow inlining Integer#-@ and #~
...
```
$ benchmark-driver -v --rbenv 'before --jit;after --jit' benchmark/mjit_integer.yml --filter '(comp|uminus)'
before --jit: ruby 3.0.0dev (2020-12-23T05:41:44Z master 0dd4896175
) +JIT [x86_64-linux]
after --jit: ruby 3.0.0dev (2020-12-23T06:25:41Z master 8887d78992) +JIT [x86_64-linux]
last_commit=Allow inlining Integer#-@ and #~
Calculating -------------------------------------
before --jit after --jit
mjit_comp(1) 44.006M 70.417M i/s - 40.000M times in 0.908967s 0.568042s
mjit_uminus(1) 44.333M 68.422M i/s - 40.000M times in 0.902255s 0.584603s
Comparison:
mjit_comp(1)
after --jit: 70417331.4 i/s
before --jit: 44005980.4 i/s - 1.60x slower
mjit_uminus(1)
after --jit: 68422468.8 i/s
before --jit: 44333371.0 i/s - 1.54x slower
```
2020-12-22 22:32:19 -08:00
Alan Wu
c59b9a8c0c
Move docs for Integer#bit_length [ci skip]
2020-12-14 20:01:55 -05:00
卜部昌平
9721f477c7
inline Primitive.cexpr!
...
We can obtain the verbatim source code of Primitive.cexpr!. Why not
paste that content into the JITed program.
2020-07-13 08:56:18 +09:00
卜部昌平
bf3f03c925
integer.rbinc: do not generate C functions
...
This changeset changes for instance Integer#integer? from:
== disasm: #<ISeq:to_i@<internal:integer>:66 (66,2)-(69,5)> (catch: FALSE)
0000 opt_invokebuiltin_delegate_leave <builtin!_bi7/0>, 0 (68)[LiCa]
0003 leave (69)[Re]
to:
== disasm: #<ISeq:to_i@<internal:integer>:66 (66,2)-(69,5)> (catch: FALSE)
0000 putself (68)[LiCa]
0001 leave (69)[Re]
which is of course faster.
2020-07-02 14:34:30 +09:00
Kazuhiro NISHIYAMA
eefc2d8a3c
Fix a typo [ci skip]
2020-06-30 17:13:37 +09:00
Takashi Kokubun
0703e01471
Mark some Integer methods as inline ( #3264 )
2020-06-27 10:07:47 -07:00
Takashi Kokubun
7561db8c00
Introduce Primitive.attr! to annotate 'inline' ( #3242 )
...
[Feature #15589 ]
2020-06-20 17:13:03 -07:00
Nobuyoshi Nakada
d95249ade3
C-expression does not include a semicolon
2020-06-21 08:14:49 +09:00
Takashi Kokubun
95b0fed371
Make Integer#zero? a separated method and builtin ( #3226 )
...
A prerequisite to fix https://bugs.ruby-lang.org/issues/15589 with JIT.
This commit alone doesn't make a significant difference yet, but I thought
this commit should be committed independently.
This method override was discussed in [Misc #16961 ].
2020-06-20 14:55:09 -07:00