RFR: 8356946: x86: Optimize interpreter profile updates

Aleksey Shipilev shade at openjdk.org
Wed May 14 09:53:01 UTC 2025


Noticed two awkward things in current x86 interpreter profiling code.

First, we carry the implementation for counter decrements without using them. This is dead code, and can be purged.

Second, we care about overflows for 64-bit for some reason. I think this is a reminiscent of 32-bit x86 support, where we can plausibly have 32-bit counter overflow in a reasonable timeframe. But for 64-bit counter, we need tens of years of constantly bashing the counter to get it to overflow. No other profile counter update code, e.g. in C1, cares about this.

So we can save a few instructions / memory accesses on this path. 

Additional testing:
 - [x] Linux x86_64 server fastdebug, `tier1`
 - [ ] Linux x86_64 server fastdebug, `all`

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

Commit messages:
 - Touchup
 - Fix

Changes: https://git.openjdk.org/jdk/pull/25223/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=25223&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8356946
  Stats: 40 lines in 2 files changed: 0 ins; 30 del; 10 mod
  Patch: https://git.openjdk.org/jdk/pull/25223.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/25223/head:pull/25223

PR: https://git.openjdk.org/jdk/pull/25223


More information about the hotspot-compiler-dev mailing list