[14] RFR(S): 8230019: [REDO] compiler/types/correctness/* tests fail with "assert(recv == __null || recv->is_klass()) failed: wrong type"
Christian Hagedorn
christian.hagedorn at oracle.com
Thu Oct 24 10:04:51 UTC 2019
Hi
Please review the following patch:
https://bugs.openjdk.java.net/browse/JDK-8230019
http://cr.openjdk.java.net/~chagedorn/8230019/webrev.00/
This is an optimization of the previous fix [1, 2] which had a negative
impact on performance. A complete explanation of the problem and the
original fix can be found at [3].
In this patch, only the receiver klass information is cleared (which was
the source of the assertion failure) instead of using clear_row() which
also cleared the total count of the profile data as done in the fix of
8225670. I assume this prevented some inlining decisions which relied on
reading such a cleared counter as in Compile::call_generator() [4]. This
patch had no negative impact on performance anymore (verified with
regressing benchmarks).
Thank you!
Best regards,
Christian
[1] https://bugs.openjdk.java.net/browse/JDK-8225670
[2] http://cr.openjdk.java.net/~thartmann/8225670/webrev.00/
[3]
https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2019-August/034776.html
[4]
http://hg.openjdk.java.net/jdk/jdk/file/18c246ad2ff9/src/hotspot/share/opto/doCall.cpp#l85
More information about the hotspot-compiler-dev
mailing list