On Mon, 8 Dec 2025 08:13:34 GMT, Christian Hagedorn <[email protected]> 
wrote:

> This patch turns the boolean flag `_flat_in_array` into a new `FlatInArray` 
> enum to properly define a (Boolean) lattice. This mainly allows us to cleanly 
> represent "maybe flat in array" and "not flat in array". The dedicated top 
> element is the dual of "maybe flat in array".
> 
> To simplify the review and to better understand what the changes are, I added 
> code comments directly in the PR.
> 
> Here is a high-level overview of the changes:
> - `FlatInArray` enum to define a lattice for `flat_in_array`:
> https://github.com/openjdk/valhalla/blob/6b1930c7b9a359223a998d0086a1326a9d7905e7/src/hotspot/share/opto/type.hpp#L1182-L1199
> - Updated `meet` operations accordingly. Needed to be careful when doing the 
> meet above the centerline.
> - Added single `compute_flat_in_array()` method to properly compute the 
> `flat_in_array` property from the information we have when we need to set 
> flat in array newly (this was no properly done before).
> - In `flatten_alias_type()`, we flatten to "maybe flat in array".
> 
> #### Testing:
> - t1-4 + valhalla-comp-stress
> 
> Thanks for your feedback,
> Christian

This pull request has now been integrated.

Changeset: a826fbd0
Author:    Christian Hagedorn <[email protected]>
URL:       
https://git.openjdk.org/valhalla/commit/a826fbd06ab41c483f59c06fed1757fae8c3a183
Stats:     530 lines in 11 files changed: 288 ins; 141 del; 101 mod

8332406: [lworld] C2: Turn flat in array property into proper lattice in type 
system to address remaining issues

Reviewed-by: thartmann

-------------

PR: https://git.openjdk.org/valhalla/pull/1774

Reply via email to