Nodes generated from a flat access should be pinned so that pointer-looking-like integers do not float across safepoints. I think flat stores are good because the CastP2XNode is pinned under the current control, preventing the node from floating above a SafePointNode, and safepoints consume all memory, preventing the StoreNode from floating below them. But for flat loads I'm not so sure, while the LoadNode cannot float above safepoints because it has a control input, I don't see why the CastI2N cannot float below a SafePointNode.
- relates to
-
JDK-8376173 Add C2_PINNED_CONTROL_LOAD
-
- Open
-
-
JDK-8341759 [lworld] JIT support for nullable, atomic, flat fields
-
- Resolved
-
-
JDK-8375718 [lworld] Emit verification code that CastI2N is really working with a correct narrow oop
-
- Open
-