[jdk17] RFR: 8269285: Crash/miscompile in CallGenerator::for_method_handle_inline after JDK-8191998

Igor Veresov iveresov at openjdk.java.net
Tue Jun 29 22:09:07 UTC 2021


On Tue, 29 Jun 2021 09:01:23 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

> See the bug report for more details.
> 
> I believe the [JDK-8191998](https://bugs.openjdk.java.net/browse/JDK-8191998) change introduced a slight regression, where the speculative type join may empty the type. It would then crash on assert in `fastdebug` builds, or miscompile the null-check to `true` in `release` bits. New test captures both failure modes.
> 
> This is not a recent regression, but a regression nevertheless, so I would like to have that fix in JDK 17. Please review carefully, or speak up if you want to move it to JDK 18+ and then backport later.
> 
> Additional testing:
>  - [x] New test fails without the patch, passes with it
>  - [x] Linux x86_64 `fastdebug` `tier1`

Come to think of it, this pathology arises because one of these guys is an interface. The type system doesn't quite know how to deal with that. Perhaps we should guard for it and not attempt the join if the argument type is an interface?

-------------

PR: https://git.openjdk.java.net/jdk17/pull/169


More information about the hotspot-compiler-dev mailing list