[jdk17] RFR: 8269285: Crash/miscompile in CallGenerator::for_method_handle_inline after JDK-8191998 [v2]
Vladimir Ivanov
vlivanov at openjdk.java.net
Wed Jun 30 17:02:44 UTC 2021
On Wed, 30 Jun 2021 16:17:36 GMT, Vladimir Ivanov <vlivanov at openjdk.org> wrote:
> Also, it won't require any additional changes when the type system is fixed.
I take it back: the sole need for joining `arg_type` and `sig_type` is to work around limitations imposed by `CheckCastPP`. And the sole purpose of `CheckCastPP` (compared to `CastPP`) is to work around limitations imposed by interface types. Once the type system is enhanced with proper support of interface types, I believe it will become possible to get rid of `CheckCastPP` in favor of `CastPP` and there won't be any need in explicit joining of types in `CallGenerator::for_method_handle_inline()` since `CastPPNode::Value()` will do "the right thing" and keep the speculative part along the way.
BTW I don't see any reason why `CheckCastPPNode::Value()` can't propagate speculative part of the input type right away, but that's something to consider as a followup enhancement.
-------------
PR: https://git.openjdk.java.net/jdk17/pull/169
More information about the hotspot-compiler-dev
mailing list