RFR: 8331341: secondary_super_cache does not scale well: C1 and interpreter [v6]
Andrew Haley
aph at openjdk.org
Thu Jul 25 13:59:35 UTC 2024
On Wed, 24 Jul 2024 19:09:06 GMT, Vladimir Ivanov <vlivanov at openjdk.org> wrote:
>>> > Also also, Klass::is_subtype_of() is used for C1 runtime.
>>>
>>> Can you elaborate, please?
>>
>> Sorry, that was rather vague. In C1-compiled code, the Java method `Class::isInstance(Object)`calls `Klass::is_subtype_of()`.
>>
>> In general, I find it difficult to decide how much work, if any, should be done to improve C1 performance. Clearly, if C1 exists only to help with startup time in a tiered compilation system, the answer is "not much".
>
> Thanks, now I see that `Class::isInstance(Object)` is backed by `Runtime1::is_instance_of()` which uses `oopDesc::is_a()` to do the job.
>
> If it turns out to be performance critical, the intrinsic implementation should be rewritten to exercise existing subtype checking support in C1. As it is implemented now, it's already quite inefficient.
I did write an intrinsic for that, but it made this patch even larger. I have a small patch for C1, for some other time.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/19989#discussion_r1691491950
More information about the core-libs-dev
mailing list