Relates :
|
|
Relates :
|
We found this during Shenandoah performance work. In GC barriers fastpath, we have the shape like (Set cr (CmpI (AndI (LoadUB op1) op2) opZ)), which compiles down to: mov $op2, %r1 andb ($op1), %r1 test %r1, %r1 ...while it can be compiled to just: testb ($op1), $op2 ...thus saving the %r1. G1 SATB checks have similar shape, but without the mask, and they waste the register in the same way.
|