Add some missing UseShenandoahGC checks to 8u

Roland Westrelin rwestrel at redhat.com
Thu Sep 21 12:52:42 UTC 2017


> *) loopnode.cpp does not look right. With !UseShenandoahGC this predicate is always false?
>
>   3608       if (new_ctrl != least) {

upstream code for this is:

    if (ctrl_out && ctrl_out->is_CountedLoop() &&
        least == ctrl_out->in(LoopNode::EntryControl)) {
      Node* least_dom = idom(least);
      if (get_loop(least_dom)->is_member(get_loop(least))) {
        least = least_dom;
      }
    }

so to stick to upstream behaviour we only want the else line 3610 to
have a chance to succeed.

> *) Not sure if guards around is_g1_wb_pre_call do the right thing
> against upstream. It seems that we have added some of them for
> Shenandoah only? Need to see the patch against the upstream later.

Yes, the checks for is_g1_wb_pre_call() is new code that doesn't exist
upstream and that shouldn't trigger without Shenandoah but to be on the
safe side, I added the tests for UseShenandoahGC.

Roland.


More information about the shenandoah-dev mailing list