RFR (XS): Bad shift coalescing in C2 matrix update barrier

Aleksey Shipilev shade at redhat.com
Wed Mar 15 13:56:20 UTC 2017


Hi,

So I succumbed by Roman's nagging that something is wrong with C2 matrix update
barriers, and by staring into the code discovered an absolutely moronic
optimization I did there!

I assumed:
  [(x >> A) << B] is [X >> (A-B)]

...but you also need to mask out the lower B bits in the result!

Let's remove that optimization:
  http://cr.openjdk.java.net/~shade/shenandoah/matrix-c2-badshift/webrev.01/

I will figure out separately if shift coalescing + mask is still beneficial.

Testing: failing tests with matrix verification

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list