RFR(S): 8241675: Shenandoah: assert(n->outcnt() > 0) at shenandoahSupport.cpp:2858 with java/util/Collections/FindSubList.java

Roland Westrelin rwestrel at redhat.com
Thu Mar 26 15:49:38 UTC 2020


http://cr.openjdk.java.net/~roland/8241675/webrev.00/

When the LRB is expanded, raw memory around the barrier has to be
correctly rewired. for this to happen regions that can be reached from
the point where the barrier is expanded must have a raw memory
Phi. There are cases where the new Phis will prove useless and optimize
out. Current code has logic to not create Phis where they are expected
to optimize out. This is done to save on compile time. That logic is
broken and skips a region that shouldn't be skipped (an early exit from
a loop). Rather than try to fix it, I propose dropping most of it. I ran
specjvm2008 and looked at compile time with and without it and it
doesn't seem to be affected or at least not in a way that appears to be
significant compared to the overall compile time.

Roland.



More information about the shenandoah-dev mailing list