RFR: 8356949: AArch64: Tighten up template interpreter method entry code [v3]

Andrew Haley aph at openjdk.org
Wed May 28 08:29:52 UTC 2025


On Thu, 22 May 2025 20:58:17 GMT, Chad Rakoczy <duke at openjdk.org> wrote:

>> [JDK-8356949](https://bugs.openjdk.org/browse/JDK-8356949)
>> 
>> This change is the aarch64 version of [JDK-8352415](https://bugs.openjdk.org/browse/JDK-8352415). 
>> 
>> To improve interpreter performance, which is important for faster startup, the method entry code was refactored to reuse some memory accesses and also spread them out to allow more latency-hiding hardware mechanisms to kick in.
>> 
>> Additional testing:
>> 
>> - [x] Ad-hoc -Xint benchmarks
>> - [x] Linux aarch64 server fastdebug, tier 1/2/3/4
>
> Chad Rakoczy has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Style updates

src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp line 905:

> 903:   // Save ConstantPool* in r11_constants for later use to avoid loading multiple times
> 904:   Register r11_constants = r11;
> 905:   const Register r11 = noreg;

I understand the motivation here, but I really wouldn't want to see this practice deployed any further across the AArch64 back end. I have to read a _lot_ of code in `cpu/aarch64`, and it's confusing enough already. :-)
Rather that this, you could just use another register from the dozen or so that are free.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/25312#discussion_r2111260203


More information about the hotspot-dev mailing list