On Fri, 29 May 2026 09:08:27 GMT, Maurizio Cimadamore <[email protected]> wrote:
> This PR cleans the handling of unset strict fields which is needed for > stackmap generation. > In the current impl, this is done with UnsetFieldsInfo which is prepared by > Flow, and then propagated to Gen/Code. > The problem with this approach is that we introduce unnecessary coupling, as > we need to keep track where, at the AST level, an assignment to a strict > uninit variable takes place. > This leads to issues as the AST-oriented view is too high-level for the kind > of manipulation that Code needs. > By modelling unset fields as a bitset in Code.State (same as what we do to > keep track of local variable ranges), state merges are dealt with more > naturally and succinctly. > > --------- > - [x] I confirm that I make this contribution in accordance with the [OpenJDK > Interim AI Policy](https://openjdk.org/legal/ai). This pull request has now been integrated. Changeset: ed3bfbc1 Author: Maurizio Cimadamore <[email protected]> URL: https://git.openjdk.org/valhalla/commit/ed3bfbc15219a2d712f15aaabc0a6567c256ae3c Stats: 234 lines in 6 files changed: 28 ins; 184 del; 22 mod 8385629: [lworld] UnsetFieldInfo should be replaced by bit sets in Code.State Reviewed-by: vromero ------------- PR: https://git.openjdk.org/valhalla/pull/2487
