Push invalidation + bimorphic fix
Charles Oliver Nutter
headius at headius.com
Mon Aug 8 22:58:20 PDT 2011
I have set up a local build against "hsx" hotspot compiler dev branch,
thanks to Christian. I'll try to write something up with the process
tomorrow.
Anyway, I wanted to test out Tom's patch for GWT bimorphic inlining
and Christian's patch for push invalidation of mutable call sites. The
results were peculiar!
First I tried a build with no patches:
headius at headius-desktop:~/projects/jruby$
JAVA_HOME=~/hsx-hotspot/build/linux/jdk-linux-i586/ bin/jruby --server
bench/bench_fib_recursive.rb 5 35
9227465
1.977000 0.000000 1.977000 ( 1.867000)
9227465
1.524000 0.000000 1.524000 ( 1.524000)
9227465
1.524000 0.000000 1.524000 ( 1.524000)
9227465
1.535000 0.000000 1.535000 ( 1.535000)
9227465
1.529000 0.000000 1.529000 ( 1.529000)
Then with both Tom's and Christian's patches applied together:
headius at headius-desktop:~/projects/jruby$
JAVA_HOME=~/hsx-hotspot/build/linux/jdk-linux-i586/ bin/jruby --server
bench/bench_fib_recursive.rb 5 35
9227465
1.761000 0.000000 1.761000 ( 1.651000)
9227465
1.457000 0.000000 1.457000 ( 1.457000)
9227465
1.456000 0.000000 1.456000 ( 1.456000)
9227465
1.482000 0.000000 1.482000 ( 1.482000)
9227465
1.454000 0.000000 1.454000 ( 1.453000)
I like any improvements, so naturally I was happy. But Christian
expected a bigger improvement. So I tried with just Christian's patch:
headius at headius-desktop:~/projects/jruby$
JAVA_HOME=~/hsx-hotspot/build/linux/jdk-linux-i586/ bin/jruby --server
bench/bench_fib_recursive.rb 5 35
9227465
1.665000 0.000000 1.665000 ( 1.555000)
9227465
1.270000 0.000000 1.270000 ( 1.270000)
9227465
1.268000 0.000000 1.268000 ( 1.268000)
9227465
1.292000 0.000000 1.292000 ( 1.292000)
9227465
1.259000 0.000000 1.259000 ( 1.259000)
Interesting, eh?
- Charlie
More information about the mlvm-dev
mailing list