RFR: 8310299: C2: 8275201 broke constant folding of array store check in some cases

Roland Westrelin roland at openjdk.org
Thu Jun 29 07:44:08 UTC 2023


On Wed, 21 Jun 2023 10:58:22 GMT, Tobias Hartmann <thartmann at openjdk.org> wrote:

>> 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.
>
> Looks good to me.

@TobiHartmann @vnkozlov thanks for the reviews
@sviswa7 thanks for running some testing with the patch

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

PR Comment: https://git.openjdk.org/jdk/pull/14536#issuecomment-1612566933


More information about the hotspot-compiler-dev mailing list