[15] RFR(S): 8239142: C2's UseUniqueSubclasses optimization is broken for array accesses
Vladimir Ivanov
vladimir.x.ivanov at oracle.com
Mon Feb 17 11:46:01 UTC 2020
> http://cr.openjdk.java.net/~thartmann/8239142/webrev.00/
Looks good.
Best regards,
Vladimir Ivanov
>
> While investigating a performance issue that Sergey reported with Valhalla, I've noticed that C2's
> UseUniqueSubclasses optimization for array accesses is broken since JDK 11 b15. When accessing an
> array of an abstract klass type that has only one subtype, C2 registers a dependency and narrows the
> type of the array elements to that one subtype:
> http://hg.openjdk.java.net/jdk/jdk/file/690fc7e5a90f/src/hotspot/share/opto/parse2.cpp#l126
>
> The fix for JDK-8202377 [1] added code that overwrites the elemtype and therefore disables this
> optimization: http://hg.openjdk.java.net/jdk/jdk/rev/ffa644980dff#l27.26
>
> My fix simply removes the lines that overwrite the elemtype. I've manually verified that the
> generated code is now equal to before JDK 11 b15.
>
> Thanks,
> Tobias
>
> [1] https://bugs.openjdk.java.net/browse/JDK-8202377
>
More information about the hotspot-compiler-dev
mailing list