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