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