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

Reply via email to