RFR(S): 8222738: Shenandoah: assert(is_Proj()) failed when running cometd benchmarks

Roland Westrelin rwestrel at redhat.com
Fri May 3 12:59:47 UTC 2019


Thanks for the review. Actually, I think it's safer to also make the
change below because we want to clone everything that's between the call
and the fallthrough/exception paths, that is everything with a control
of: the call itself or its control projection.

Roland.


diff -r f0739ec84bb4 -r 9968255985be src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp
--- a/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp	Thu Apr 11 12:00:33 2019 +0200
+++ b/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp	Thu May 02 20:47:23 2019 +0200
@@ -1362,7 +1362,7 @@
         if (idx < n->outcnt()) {
           Node* u = n->raw_out(idx);
           Node* c = phase->ctrl_or_self(u);
-          if (c == ctrl) {
+          if (phase->is_dominator(call, c) && phase->is_dominator(c, projs.fallthrough_proj)) {
             stack.set_index(idx+1);
             assert(!u->is_CFG(), "");
             stack.push(u, 0);



More information about the hotspot-compiler-dev mailing list