RFR: 8331117: [PPC64] secondary_super_cache does not scale well [v6]
Martin Doerr
mdoerr at openjdk.org
Fri Jun 14 21:08:28 UTC 2024
On Fri, 14 Jun 2024 15:35:43 GMT, Amit Kumar <amitkumar at openjdk.org> wrote:
>> Martin Doerr has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Minor improvements according to review suggestions.
>
> src/hotspot/cpu/ppc/macroAssembler_ppc.cpp line 2160:
>
>> 2158: r_array_length == R5_ARG3 && \
>> 2159: (r_array_index == R6_ARG4 || r_array_index == noreg) && \
>> 2160: (r_sub_klass == R7_ARG5 || r_sub_klass == noreg) && \
>
> Maybe we can set `r_super_klass = R5` and `r_sub_klass =R7` to keep consistency in `c1_Runtime1_ppc.cpp`:
>
>
> case slow_subtype_check_id:
> { // Support for uint StubRoutine::partial_subtype_check( Klass sub, Klass super );
> const Register sub_klass = R5,
> super_klass = R4,
> temp1_reg = R6,
> temp2_reg = R0;
> __ check_klass_subtype_slow_path(sub_klass, super_klass, temp1_reg, temp2_reg); // returns with CR0.eq if successful
> __ crandc(CCR0, Assembler::equal, CCR0, Assembler::equal); // failed: CR0.ne
> __ blr();
> }
> break;
>
>
> I can see this being done for `aarch64`, `x86` and `risc-v` as well.
Ok, using the same registers for sub_klass and super_klass as C1 should do no harm. See latest commit.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/19368#discussion_r1640355111
More information about the hotspot-compiler-dev
mailing list