RFR: 8310299: C2: 8275201 broke constant folding of array store check in some cases
Roland Westrelin
roland at openjdk.org
Mon Jun 19 09:05:20 UTC 2023
Before 8275201, loading the element klass of an array returned:
TypeKlassPtr::make(tkls->ptr(), elem, 0/*offset*/);
that is exact if the array type is exact. I changed it to:
tkls->is_aryklassptr()->elem();
When the array type is exact (newly allocated array for instance) but
the element class has subclasses, this doesn't return an exact class
(so the logic is different from the one that was there before). That
affects array store checks that no longer constant fold.
-------------
Commit messages:
- fix & test
Changes: https://git.openjdk.org/jdk/pull/14536/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=14536&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8310299
Stats: 64 lines in 3 files changed: 63 ins; 0 del; 1 mod
Patch: https://git.openjdk.org/jdk/pull/14536.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/14536/head:pull/14536
PR: https://git.openjdk.org/jdk/pull/14536
More information about the hotspot-compiler-dev
mailing list