This patch re-enables the `EliminateAutoBox` functionality when 
`--enable-preview` is set, i.e. when the primitive boxes are value classes. 
`EliminateAutoBox` has multiple effects, including an impact on inlining 
decisions but its main goal is to avoid boxing via `Integer.valueOf(int)` etc 
by replacing that call. I added support for scalarized returns from that method 
and also added support for removing unboxing via `Integer.intValue` etc.

With this fix, I'm seeing various improvements:

<img width="570" height="513" alt="Screenshot from 2026-06-02 11-08-53" 
src="https://github.com/user-attachments/assets/7c62b35b-a8ea-44ce-aa5c-d6a66f113973";
 />

(The regressions are not significant and due to high variance of the benchmark)

There's more we could do here but I already spent way too much time on this, so 
I'll defer follow-up work to 
[JDK-8385809](https://bugs.openjdk.org/browse/JDK-8385809).

Thanks,
Tobias

---------
- [x] I confirm that I make this contribution in accordance with the [OpenJDK 
Interim AI Policy](https://openjdk.org/legal/ai).

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

Commit messages:
 - Merge branch 'lworld' into JDK-8328675_v2
 - Typo
 - TODO
 - Cleanups, test improvements
 - Keep oop
 - Small cleanup
 - next version of prototype
 - Merge branch 'lworld' into JDK-8328675_v2
 - Prototype

Changes: https://git.openjdk.org/valhalla/pull/2446/files
  Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=2446&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8328675
  Stats: 495 lines in 9 files changed: 467 ins; 7 del; 21 mod
  Patch: https://git.openjdk.org/valhalla/pull/2446.diff
  Fetch: git fetch https://git.openjdk.org/valhalla.git pull/2446/head:pull/2446

PR: https://git.openjdk.org/valhalla/pull/2446

Reply via email to