RFR: Protect exposed C2 paths with INCLUDE_SHENANDOAHGC
Aleksey Shipilev
shade at redhat.com
Mon Oct 22 15:58:31 UTC 2018
http://cr.openjdk.java.net/~shade/shenandoah/c2-protect-2/webrev.01/
Current sh/jdk is broken on platforms where Shenandoah is disabled:
/home/buildbot/worker/shenandoah-jdkX/build/src/hotspot/share/opto/loopopts.cpp: In member function
‘Node* PhaseIdealLoop::split_thru_phi(Node*, Node*, int, Node**)’:
/home/buildbot/worker/shenandoah-jdkX/build/src/hotspot/share/opto/loopopts.cpp:161:50: error:
expected type-specifier before ‘ShenandoahWBMemProjNode’
mem_phi->init_req(i, _igvn.transform(new ShenandoahWBMemProjNode(x)));
^~~~~~~~~~~~~~~~~~~~~~~
/home/buildbot/worker/shenandoah-jdkX/build/src/hotspot/share/opto/loopopts.cpp:163:27: error:
incomplete type ‘ShenandoahBarrierNode’ used in nested name specifier
Node* mem = n->in(ShenandoahBarrierNode::Memory);
^~~~~~~~~~~~~~~~~~~~~
/home/buildbot/worker/shenandoah-jdkX/build/src/hotspot/share/opto/loopopts.cpp:241:36: error:
‘ShenandoahWBMemProjNode’ has not been declared
set_ctrl(x, get_ctrl(x->in(ShenandoahWBMemProjNode::WriteBarrier)));
^~~~~~~~~~~~~~~~~~~~~~~
This is because recent C2 refactoring exposed Shenandoah paths in shared code. The apparent solution
is to guard those things with INCLUDE_SHENANDOAHGC.
Testing: builds with --with-jvm-features=-shenandoahgc
Thanks,
-Aleksey
More information about the shenandoah-dev
mailing list