RFR (S): JDK-8172434: CompareAndExchangeObject inserts two pre-barriers

Roman Kennke rkennke at redhat.com
Mon Feb 13 21:11:28 UTC 2017


in LibaryCallKit::inline_unsafe_access(), the pre_barrier() gets
inserted twice for LS_cmp_exchange, in one case it is treated like the
other CAS instructions, and at the end it is treated like get_and_set.
It's not causing incorrect behaviour, but might impact performance.

The fix is to leave out the 2nd pre-barrier for CAE by checking for
get_and_set.

Testing: jcstress

http://cr.openjdk.java.net/~rkennke/fix-cae-prebarrier/webrev.01/

Roman


More information about the hotspot-compiler-dev mailing list