RFR: 8322630: Remove ICStubs and related safepoints [v6]
Erik Österlund
eosterlund at openjdk.org
Fri Feb 9 14:24:09 UTC 2024
On Thu, 8 Feb 2024 09:21:00 GMT, Dean Long <dlong at openjdk.org> wrote:
>> Erik Österlund has updated the pull request incrementally with one additional commit since the last revision:
>>
>> ARM32 fixes
>
> src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp line 295:
>
>> 293: // inline cache check; done before the frame is built.
>> 294: int LIR_Assembler::check_icache() {
>> 295: return __ ic_check(CodeEntryAlignment);
>
> Do we really want to remove the optimization that skips alignment for small methods?
It's not obvious to me how likely this optimization is to kick in, and if it does, how many bytes it really saves. It optimizes accessor methods, when the UEP can be squeezed down to 4 instructions. The previous inline_cache_check was >= 2 instructions, there is a jump to skip the far jump, and the far_jump is >= 1 instructions. So it seems like it would kick in when far jumps can just branch and the compressed class encoding is simple enough. However, with the new ic_check we always have at least 5 instructions, sometimes 7. So it seemed to me like the intended optimization wouldn't apply any longer anyway.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/17495#discussion_r1484387445
More information about the shenandoah-dev
mailing list