vnmakarov / ruby

The Ruby Programming Language
http://www.ruby-lang.org/
Other
207 stars 1 forks source link

The project became dormant as IMHO YJIT is moving into the right direction and competition with YJIT is not reasonable anymore. Please feel free to use any ideas and code if you need this.

Update May 2022: sir-mirjit-base and sir-mirjit branches were merged with May 2023 ruby trunk.

What's the branch about

Specialized VM insns

Project related files

SIR flow

IR flow

Current state of the project

Major differences between MIRJIT and YJIT

Ideas to improve MIRJIT generated code more

The current performance SIR interpreter and MIRJIT

Micro-benchmark results (May 11, 2023)

Elapsed time: base sir yjit mir
aread.rb 1.0 3.74 7.21 8.78
aref.rb 1.0 3.76 5.06 9.24
aset.rb 1.0 3.41 3.12 8.91
awrite.rb 1.0 4.44 3.2 10.09
bench.rb 1.0 1.19 1.63 1.17
call.rb 1.0 2.1 4.82 4.87
complex-mandelbrot.rb 1.0 1.16 1.48 1.16
const2.rb 1.0 2.47 2.66 6.66
const.rb 1.0 2.46 2.66 6.7
fannk.rb 1.0 1.15 1.0 1.22
fib.rb 1.0 1.94 5.63 3.86
ivread.rb 1.0 2.19 6.22 3.54
ivwrite.rb 1.0 2.86 5.57 5.44
mandelbrot.rb 1.0 1.43 1.91 1.78
meteor.rb 1.0 1.29 1.35 1.25
nbody.rb 1.0 1.3 1.8 1.69
nest-ntimes.rb 1.0 2.06 1.3 1.96
nest-while.rb 1.0 3.53 0.99 10.24
norm.rb 1.0 1.67 2.13 2.2
pent.rb 1.0 1.11 1.31 0.9
red-black.rb 1.0 1.39 3.84 1.77
sieve.rb 1.0 2.41 1.25 3.15
trees.rb 1.0 1.38 2.23 1.48
while.rb 1.0 2.23 5.66 9.85
GeoMean. 1.0 2.0 2.55 3.28


base sir yjit mir
GeoMean. 1.0 1.21 1.03 2.41

Optcarrot results

base sir yjit mir
optcarrot 82.4 105.0 262.1 123.1
optcarrot --opt 211.5 356.4 232.9 416.4