RFR: 8322726: C2: Unloaded signature class kills argument value

Dean Long dlong at openjdk.org
Fri Apr 26 19:19:53 UTC 2024


On Fri, 26 Apr 2024 11:35:25 GMT, Vladimir Ivanov <vlivanov at openjdk.org> wrote:

> For MethodHandle linkers all arguments are casted to signature classes when target method is known.
> 
> It causes problems when target method signature contains unloaded classes: when loaded class meets unloaded class it turns into a TOP. It effectively kills argument values which correspond to unloaded signature types.
> 
> Proposed fix avoids casts when signature class is unloaded. 
> 
> Testing: hs-tier1 - hs-tier4

This only detects TOP in the one place we know causes problems.  This bug went undetected for a long time because we have no detection for TOP being used as an argument value in general.  How do we know there aren't other places this could happen?  Can't we detect this for Call nodes at least, or is the problem that the whole sub-tree might be dead code?

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

PR Comment: https://git.openjdk.org/jdk/pull/18973#issuecomment-2079988076


More information about the hotspot-compiler-dev mailing list