Merge upstream C2 modularization

Roman Kennke rkennke at redhat.com
Thu Jun 7 20:16:29 UTC 2018


This merges:

changeset:   50518:ffa644980dff
parent:      50515:d9bc8557ae16
user:        eosterlund
date:        Fri May 18 14:51:06 2018 +0200
summary:     8202377: Modularize C2 GC barriers

And implements the Shenandoah infra:
- Move all the Shenandoah barriers stuff from graphKit.* to
shenandoahBarrierSetC2.*
- Move _shenandoah_barriers and related stuff from compile.* to
shenandoahBarrierSetC2.*
- Remove a few hooks and replace them with appropriate barrierSetC2
hooks - but only where easy and obvious
- Retain all RB and WB hooks, but renamed to access_resolve_for_read()
and access_resolve_for_write(). The API and many of the hooks will have
to be upstreamed soon. Some hooks will go away when we move the barriers
inside the access_load, access_store and cmpxchg/xchg implementations.

There's plenty of stuff to improve. I tried to stay close to current way
of doing it, and only introduce the basic infrastructure. This infra can
now be used to reduce our C2 clutter even more.

Testing: tier3_gc_shenandoah (fastdebug/release) pending, specjvm point
testing using adaptive/traversal/connected heuristics to check
compilation of all barriers

http://cr.openjdk.java.net/~rkennke/upstream-merge-2018-06-07/webrev.01/

Ok?

Roman



More information about the shenandoah-dev mailing list