On Tue, 16 Dec 2025 18:54:34 GMT, Chen Liang <[email protected]> wrote:
>> Currently, the hotspot compiler (as in ciField) trusts final fields in >> hidden classes, record classes, and selected jdk packages. Some classes in >> the JDK wish to be trusted, but they cannot apply package-wide opt-in due to >> other legacy classes in the package, such as java.util. >> >> They currently can use `@Stable` as a workaround, but this is fragile >> because a stable final field may hold a trusted null, zero, or false value, >> which is currently treated as non-constant by ciField. >> >> We should add an annotation to opt-in for a whole class, mainly for legacy >> packages. This would benefit greatly some of our classes already using a lot >> of Stable, such as java.util.Optional, whose empty instance is now >> constant-foldable, as demonstrated in a new IR test. >> >> Paging @minborg who requested Optional folding for review. >> >> I think we can remove redundant Stable in a few other java.util classes >> after this patch is integrated. I plan to do that in subsequent patches. > > Chen Liang has updated the pull request with a new target base due to a merge > or a rebase. The incremental webrev excludes the unrelated changes brought in > by the merge/rebase. The pull request contains 14 additional commits since > the last revision: > > - Recommended test tweaks > - Merge branch 'master' of https://github.com/openjdk/jdk into > feature/class-final-trusting > - Merge branch 'master' of https://github.com/openjdk/jdk into > feature/class-final-trusting > - Jorn review > - Merge branch 'master' of https://github.com/openjdk/jdk into > feature/class-final-trusting > - bracket styles > - Doc tweaks > - Essay > - Spurious change > - Merge branch 'master' of https://github.com/openjdk/jdk into > feature/class-final-trusting > - ... and 4 more: https://git.openjdk.org/jdk/compare/c6348e62...567e8925 Marked as reviewed by alanb (Reviewer). ------------- PR Review: https://git.openjdk.org/jdk/pull/28540#pullrequestreview-3587543908
