RFR: 8339401: Optimize ClassFile load and store instructions
Chen Liang
liach at openjdk.org
Mon Sep 2 14:31:18 UTC 2024
On Mon, 2 Sep 2024 14:01:36 GMT, Shaojin Wen <swen at openjdk.org> wrote:
>> src/java.base/share/classes/jdk/internal/classfile/impl/BytecodeHelpers.java line 61:
>>
>>> 59: return switch (tk) {
>>> 60: case INT, SHORT, BYTE, CHAR, BOOLEAN
>>> 61: -> iload(slot);
>>
>> Can you do
>>
>> switch (tk.asLoadable()) {
>> case INT -> iload(slot);
>
> I'm not sure if that's better, because there's a getField and branch in the implementation of asLoadable
Logically I think `asLoadable` is clearer and reduces switch size.
And enum `ordinal` field is already constant-folded: https://bugs.openjdk.org/browse/JDK-81612454
So it can be elided by JIT if the enum argument is constant.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/20739#discussion_r1741000967
More information about the core-libs-dev
mailing list