[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