RFR: 8348853: Fold layout helper check for objects implementing non-array interfaces [v2]
Marc Chevalier
mchevalier at openjdk.org
Mon Mar 31 06:49:50 UTC 2025
> If `TypeInstKlassPtr` represents an array type, it has to be `java.lang.Object`. From contraposition, if it is not `java.lang.Object`, we can conclude it is not an array, and we can skip some array checks, for instance.
>
> In this PR, we improve this deduction with an interface base reasoning: arrays implements only Cloneable and Serializable, so if a type implements anything else, it cannot be an array.
>
> This change partially reverts the changes from [JDK-8348631](https://bugs.openjdk.org/browse/JDK-8348631) (#23331) (in `LibraryCallKit::generate_array_guard_common`) and the test still passes.
>
> The way interfaces are check might be done differently. The current situation is a balance between visibility (not to leak too much things explicitly private), having not overly general methods for one use-case and avoiding too concrete (and brittle) interfaces.
>
> Tested with tier1..3, hs-precheckin-comp and hs-comp-stress
>
> Thanks,
> Marc
Marc Chevalier has updated the pull request incrementally with one additional commit since the last revision:
not reinventing the wheel
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/24245/files
- new: https://git.openjdk.org/jdk/pull/24245/files/a77c397c..daaaf9ae
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=24245&range=01
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=24245&range=00-01
Stats: 13 lines in 1 file changed: 0 ins; 12 del; 1 mod
Patch: https://git.openjdk.org/jdk/pull/24245.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/24245/head:pull/24245
PR: https://git.openjdk.org/jdk/pull/24245
More information about the hotspot-compiler-dev
mailing list