C1 still uses a logic based on fields attributes to handle flat values, and not the LayoutKind layout info, which leads to bugs like this one:
bool needs_atomic_access = !field->is_null_free() || (field->is_volatile() && !is_naturally_atomic);
needs_atomic_access is false for a flat field with the ATOMIC_FLAT layout and a value type with multiple fields.
C1 code should be updated to be based on LayoudKind layout info and helper methods fromJDK-8371915.
bool needs_atomic_access = !field->is_null_free() || (field->is_volatile() && !is_naturally_atomic);
needs_atomic_access is false for a flat field with the ATOMIC_FLAT layout and a value type with multiple fields.
C1 code should be updated to be based on LayoudKind layout info and helper methods from
- caused by
-
JDK-8341759 [lworld] JIT support for nullable, atomic, flat fields
-
- Resolved
-
- relates to
-
JDK-8371915 [lworld] LayoutKind enum should have helper methods
-
- Resolved
-