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
