RFR (L): implement inlining support for JSR 292
Thomas Wuerthinger
thomas.wuerthinger at oracle.com
Tue May 14 01:30:29 PDT 2013
This looks great - thanks for the contribution! Could you actually push your patch anyway? I think it should pass the gate (as we do not _yet_ exercise invokedynamic there). We will subsequently fix the order of canonicalization and scanning for new invokes in the inlining phase.
Good to see that even without any fine tuning, the performance looks already promising ;).
- thomas
On May 13, 2013, at 9:59 PM, Christian Thalinger <christian.thalinger at oracle.com> wrote:
> http://cr.openjdk.java.net/~twisti/GRAAL-249/webrev/
>
> This adds inlining support of method handle invokes.
>
> However, the patch is missing a little piece that is required so that calls are actually inlined. That little change needs some bigger changes in Graal itself so I cannot push it right now. Thomas knows about this issue and I hope he (or someone else) will fix it soon.
>
> Here are some JRuby and Nashorn numbers (with the little change, obviously):
>
> $ bin/jruby.sh -J-showversion ../rubybench/time/bench_fib_recursive.rb 5 35
> java version "1.8.0-ea"
> Java(TM) SE Runtime Environment (build 1.8.0-ea-b88)
> Java HotSpot(TM) 64-Bit Server VM (build 25.0-b30, mixed mode)
>
> 1.080000 0.000000 1.080000 ( 0.996000)
> 0.850000 0.000000 0.850000 ( 0.826000)
> 0.830000 0.000000 0.830000 ( 0.827000)
> 0.820000 0.010000 0.830000 ( 0.823000)
> 0.860000 0.000000 0.860000 ( 0.830000)
>
> $ bin/jruby.sh -J-showversion ../rubybench/time/bench_fib_recursive.rb 5 35
> Bootstrapping Graal............................ in 20527 ms
> java version "1.8.0-ea"
> Java(TM) SE Runtime Environment (build 1.8.0-ea-b88)
> OpenJDK 64-Bit Graal VM (build 25.0-b29-internal, mixed mode)
>
> 91.040000 0.280000 91.320000 ( 12.076000)
> 0.830000 0.000000 0.830000 ( 0.678000)
> 0.900000 0.100000 1.000000 ( 0.666000)
> 0.660000 0.000000 0.660000 ( 0.659000)
> 0.660000 0.000000 0.660000 ( 0.664000)
>
> $ java -showversion -jar dist/nashorn.jar test/script/basic/run-octane.js -- test/script/external/octane/richards.js --iterations 10 --verbose
> java version "1.8.0-ea"
> Java(TM) SE Runtime Environment (build 1.8.0-ea-b88)
> Java HotSpot(TM) 64-Bit Server VM (build 25.0-b30, mixed mode)
>
> command line: running richards.js...
> Score: 498
> Score: 1774
> Score: 1968
> Score: 2005
> Score: 2111
> Score: 2150
> Score: 2125
> Score: 2127
> Score: 2115
> Score: 2196
> command line: Richards (version 8): 498-2196
>
> $ java -showversion -jar dist/nashorn.jar test/script/basic/run-octane.js -- test/script/external/octane/richards.js --iterations 10 --verbose
> Bootstrapping Graal............................ in 20774 ms
> java version "1.8.0-ea"
> Java(TM) SE Runtime Environment (build 1.8.0-ea-b88)
> OpenJDK 64-Bit Graal VM (build 25.0-b29-internal, mixed mode)
>
> command line: running richards.js...
> Score: 66.4
> Score: 1471
> Score: 1452
> Score: 1668
> Score: 1675
> Score: 1677
> Score: 1534
> Score: 1705
> Score: 1709
> Score: 1703
> command line: Richards (version 8): 66.4-1709
>
More information about the graal-dev
mailing list