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). ------------- Commit messages: - Initial push Changes: https://git.openjdk.org/valhalla/pull/2487/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=2487&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8385629 Stats: 233 lines in 6 files changed: 28 ins; 183 del; 22 mod Patch: https://git.openjdk.org/valhalla/pull/2487.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/2487/head:pull/2487 PR: https://git.openjdk.org/valhalla/pull/2487
