RFR: 8341415: Optimize RawBytecodeHelper::next
Shaojin Wen
swen at openjdk.org
Wed Oct 2 13:49:11 UTC 2024
On Wed, 2 Oct 2024 11:09:52 GMT, ExE Boss <duke at openjdk.org> wrote:
>> A small optimization to the RawBytecodeHelper::next method
>> * Remove `len <= 0` once
>> * merge store opcode and isWide
>
> src/java.base/share/classes/jdk/internal/classfile/impl/RawBytecodeHelper.java line 350:
>
>> 348: */
>> 349: public boolean isWide() {
>> 350: return (opcode & (WIDE << 8)) != 0;
>
> Suggestion:
>
> return (opcode >>> 8) == WIDE;
WIDE is a constant, WIDE << 8 will do constant folding, your suggestion will be longer in bytecode.
> src/java.base/share/classes/jdk/internal/classfile/impl/RawBytecodeHelper.java line 449:
>
>> 447: }
>> 448:
>> 449: if ((nextBci += len) > end) {
>
> This change makes it that `nextBci` will no longer monotonically increase in case of a malformed special instruction.
>
> Suggestion:
>
> if (len <= 0 || (nextBci += len) > end) {
The checkSpecialInstruction has already added the 'len <= 0' process, so there is no need to check 'len <= '0' again.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/21300#discussion_r1784531869
PR Review Comment: https://git.openjdk.org/jdk/pull/21300#discussion_r1784533279
More information about the core-libs-dev
mailing list