Strict final instance fields are not subject to concurrent writes during a read access, so they can be flattened even if they are nullable and bigger than 64 bits. The NULLABLE_NON_ATOMIC_FLAT layout is added for this particular case. This new layout can also be used in the special case of nullable empty value classes, because their payload contains a single entry, the null-marker, which is naturally atomic.
------------- Commit messages: - Cleanups and fixes - Fix Copyright years - Fix compilation - Merge remote-tracking branch 'upstream/lworld' into flat_final - Improve tests - Merge remote-tracking branch 'upstream/lworld' into flat_final - Merge remote-tracking branch 'upstream/lworld' into flat_final - Add empty values case and some LayoutKindHelper cleanup - Merge remote-tracking branch 'upstream/lworld' into flat_final - Fix build after merge - ... and 3 more: https://git.openjdk.org/valhalla/compare/093d033c...972768c8 Changes: https://git.openjdk.org/valhalla/pull/1407/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1407&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8374800 Stats: 673 lines in 16 files changed: 589 ins; 10 del; 74 mod Patch: https://git.openjdk.org/valhalla/pull/1407.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1407/head:pull/1407 PR: https://git.openjdk.org/valhalla/pull/1407
