On Thu, 17 Apr 2025 00:08:55 GMT, Chen Liang <li...@openjdk.org> wrote:
> The downcallHandle method in Linker has a complex implementation, and type > switches is triggered in multiple places in that handle. > > After bytestacks analysis of a simple program that links the native > implementation of Class::forName0, it turns out that: > 1. there are a few missed usages of type switch in ClassFile API > 2. type switch can speed up generation by using explicit stack maps, as stack > map gen is over 50% of the generation instructions because the switch is > branch-heavy, but the frames are actually simple. > > These two combined are not that significant in the overall overhead of > downcallHandle, but would be helpful for other workloads. src/java.base/share/classes/jdk/internal/classfile/impl/BlockCodeBuilderImpl.java line 78: > 76: return bcb.topLocal; > 77: } > 78: return findTerminal(parent).curTopLocal(); This advanced switch prevents `CodeBuilder::ifThen` or `ifThenElse` from being used in early bootstrap. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/24705#discussion_r2049547487