RFR: couple small fixes from lucene testing

Roman Kennke rkennke at redhat.com
Thu Oct 11 09:27:55 UTC 2018


I have seen this pattern elsewhere in our big upstream diff:

-      this->set_req(1, lhs);
-      this->set_req(2, rhs);
+      PhaseIterGVN* igvn = phase->is_IterGVN();
+      if (igvn != NULL) {
+        set_req_X(1, lhs, igvn);
+        set_req_X(2, rhs, igvn);
+      } else {
+        set_req(1, lhs);
+        set_req(2, rhs);
+      }

This probably warrants a little abstraction. Not necessarily in this
patch, but whenever you want to upstream it.

Roman


> http://cr.openjdk.java.net/~roland/shenandoah/lucene-fixes/webrev.00/
> 
> This should fix:
> 
> assert(n->Opcode() != Op_ShenandoahWriteBarrier || n->outcnt() > 1) failed: bad shenandoah write barrier
> 
> and
> 
> assert(dom_use->adr_type() != TypePtr::BOTTOM) failed: no bottom memory phi
> 
> crashes.
> 
> Roland.
> 



More information about the shenandoah-dev mailing list