RFR (XS): C2: Missing matrix update for getAndSet intrinsic

Aleksey Shipilev shade at redhat.com
Tue Mar 14 12:05:09 UTC 2017


getAndSet jcstress tests like
tests.atomicity.varHandles.fields.GetAndSetTest.GetAndSetString are failing with

The failure goes like this: for current barrier set, can_move_pre_barrier is
true. Which moves the pre_barrier *after* the store, which then misses newval,
because pre_barrier is called with NULL!

The easiest fix is to avoid moving pre_barriers when matrix update is in order:

I failed to create a standalone reproducer, but jcstress seems happy now.

Testing: hotspot_gc_shenandoah, offending jcstress tests


More information about the shenandoah-dev mailing list