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

Reply via email to