RFR (S) 8175887: C1 value numbering handling of Unsafe.get*Volatile is incorrect
vladimir.x.ivanov at oracle.com
Tue Feb 28 15:28:08 UTC 2017
Thanks for the fix, Aleksey.
> Updated after off-list review (renamed tests, used internal Unsafe):
I'm fine with the fix in do_UnsafeGetObject.
Changes in do_UnsafeGetRaw don't make much sense to me. Following the
reasoning in the comment ("better be safe than sorry") you have to
unconditionally kill memory for UnsafeGetObject as well :-)
If there's a need in ordering raw loads, I'd prefer to see a dedicated
flag (like UnsafeObjectOp::_is_volatile) introduced instead.
Right now, UnsafeGetRaw usage is very limited (only for restoring frame
state in OSR entry), so I don't see any reason in doing that.
So, please, leave it as is.
> Everything else still stands:
>> Testing: Linux x86_64/release hotspot/test/compiler, includes new tests
>> I need a sponsor. I think this bugfix is too important to miss 9, and it even
>> deserves backporting to 8u.
More information about the hotspot-compiler-dev