RFR: Avoid stub when calling to write-barrier from C2, remove all related code

Roman Kennke rkennke at redhat.com
Mon Nov 19 10:39:08 UTC 2018


And rebased on top of removal of ShenandoahWriteBarrierCsetTestInIR:

http://cr.openjdk.java.net/~rkennke/remove-c2-wb-stub/webrev.01/

Roman

> I'd like to propose to let C2 call directly to write-barrier runtime,
> instead of going via the stub. The original reason for going through the
> stub was to do the cset-check there (which we now do in C2 IR), and to
> be able to use XMM spills are WB calls in fast path. We used to see
> fairly bad regressions in serial benchmark without that.
> 
> Given that:
> - We're basically working around limitation in C2 RA
> - We're adding a *lot* of code, some of it in shared paths (that we'd
> need to upstream somehow)
> - I don't see much impact when simply doing the right thing (see below)
> 
> I would like to propose to revert and get rid of all that fluff and do
> the straight call using CallLeaf to ShenandoahRuntime::write_barrier_JRT().
> 
> I checked the serial benchmark and it seems to be consistently 1% worse
> with this patch. Other benchmarks (specjbb/specjvm) seem unaffected.
> 
> I'd encourage you (esp. Aleksey) to run some benchmarks of your own to
> check this. I don't want to push anything that causes regressions.
> 
> http://cr.openjdk.java.net/~rkennke/remove-c2-wb-stub/webrev.00/
> 
> Testing: tier3_gc_shenandoah, selected benchmarks
> 
> Thoughts?
> 
> Roman
> 



More information about the shenandoah-dev mailing list