On Thu, 11 Jul 2024 23:22:19 GMT, Vladimir Ivanov <vliva...@openjdk.org> wrote:
>> src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp line 1433: >> >>> 1431: >>> 1432: // Don't check secondary_super_cache >>> 1433: if (super_check_offset.is_register() >> >> Do you see any effects from this particular change? >> >> It adds a runtime check on the fast path for all subtype checks >> (irrespective of whether it checks primary or secondary super). Moreover, >> the very same check is performed after primary super slot is checked. >> >> Unless `_secondary_super_cache` field is removed, unconditionally checking >> the slot at `super_check_offset` is benign. > > BTW `MacroAssembler::check_klass_subtype_fast_path` deserves a cleanup: > `super_check_offset` can be safely turned into `Register` thus eliminating > the code guarded by `super_check_offset.is_register() == false`. > Do you see any effects from this particular change? > > It adds a runtime check on the fast path for all subtype checks (irrespective > of whether it checks primary or secondary super). Moreover, the very same > check is performed after primary super slot is checked. OK. I think this was more for testing, but you make sense. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/19989#discussion_r1683178664