RFR: Improve AryEq

Aleksey Shipilev shade at redhat.com
Tue Dec 20 11:15:33 UTC 2016


On 12/20/2016 12:10 PM, Roman Kennke wrote:
> This adds an cmp-barrier to the code generated by AryEq. A false
> negative in the array ptr comparison would result in the slow-path
> being taken, even though it's not necessary. The barrier should get us
> on the fast path more often.
> 
> Ok?
> 
> http://cr.openjdk.java.net/~rkennke/aryeq/webrev.00/

Looks okay, but would be interesting to see if we can merge null-checking paths
with acmp barrier?

8603     oopDesc::bs()->asm_acmp_barrier(this, ary1, ary2);
8604     jcc(Assembler::equal, TRUE_LABEL);
8605
8606     // Need additional checks for arrays_equals.
8607     testptr(ary1, ary1);
8608     jcc(Assembler::zero, FALSE_LABEL);
8609     testptr(ary2, ary2);
8610     jcc(Assembler::zero, FALSE_LABEL);

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list