RFR: 8331341: secondary_super_cache does not scale well: C1 and interpreter
    Andrew Haley 
    aph at openjdk.org
       
    Thu Jul 18 16:39:33 UTC 2024
    
    
  
On Thu, 11 Jul 2024 23:22:19 GMT, Vladimir Ivanov <vlivanov at 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
    
    
More information about the hotspot-dev
mailing list