A small optimization to reduce the code size of StackMapGenerator.Frame's pushStack and setLocalsFromArg methods
Below is the compiler log of C2 # baseline jdk.internal.classfile.impl.StackMapGenerator$Frame::pushStack (27 bytes) failed to inline: callee uses too much stack jdk.internal.classfile.impl.StackMapGenerator$Frame::pushStack (46 bytes) failed to inline: callee is too large jdk.internal.classfile.impl.StackMapGenerator$Frame::pushStack (183 bytes) failed to inline: callee is too large jdk.internal.classfile.impl.StackMapGenerator$Frame::setLocalsFromArg (367 bytes) failed to inline: callee is too large # current jdk.internal.classfile.impl.StackMapGenerator$Frame::pushStack (26 bytes) inline jdk.internal.classfile.impl.StackMapGenerator$Frame::pushStack (37 bytes) failed to inline: callee is too large jdk.internal.classfile.impl.StackMapGenerator$Frame::pushStack (82 bytes) jdk.internal.classfile.impl.StackMapGenerator$Frame::setLocalsFromArg (255 bytes) failed to inline: callee is too large ------------- Commit messages: - from @liach 's suggestion - Update src/java.base/share/classes/jdk/internal/classfile/impl/StackMapGenerator.java - optimize frame#setLocalsFromArg - optimize frame#pushStack Changes: https://git.openjdk.org/jdk/pull/20756/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=20756&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8339205 Stats: 41 lines in 1 file changed: 10 ins; 9 del; 22 mod Patch: https://git.openjdk.org/jdk/pull/20756.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/20756/head:pull/20756 PR: https://git.openjdk.org/jdk/pull/20756