MH compilation is broken in valhalla(mvt branch) build
David Simms
david.simms at oracle.com
Mon Jun 19 08:05:50 UTC 2017
Thanks for reporting this Sergey, I filed a "mvt" labelled bug for tracking:
https://bugs.openjdk.java.net/browse/JDK-8182453
Cheers
/David Simms
On 17/06/17 01:13, Sergey Kuksenko wrote:
> I found that in valhalla build (mvt branch) MH compilation is broken
> if MH is stored in non-final field. Cost of MH invocation is increased
> ~100x times.
>
> Benchmark sources and compiled jar file could be found:
> http://cr.openjdk.java.net/~skuksenko/valhalla/mh_issue/
>
> Results:
> * on Java9 & Java8
>
> Benchmark Mode Cnt Score Error Units
> XMH.walkFinal avgt 5 4.500 ± 0.276 ns/op
> XMH.walkNonFinal avgt 5 4.856 ± 0.011 ns/op
>
> * on MVT
> Benchmark Mode Cnt Score Error Units
> XMH.walkFinal avgt 5 4.406 ± 0.016 ns/op
> XMH.walkNonFinal avgt 5 457.484 ± 10.550 ns/op
>
> These benchmarks are Java8 compatible and doesn't contain any Q-types.
>
> Besides, Vladimir told me that:
>
> > I briefly looked into the benchmarks and it seems the difference is
> caused by a compiler bug: there are no compilations happening for
> stand-alone lambda forms with Q-types.
> > So, when inlining doesn't happen, the Q-typed LF code stays
> interpreted forever.
>
> Maybe that issues are related. Also I'd like to ask is infinite
> interpreting of Q-types LF code known behavior? If yes, are there any
> estimations when Q-types LF will be compiled?
More information about the valhalla-dev
mailing list