< prev index next >

src/share/vm/opto/loopPredicate.cpp

Print this page
rev 8961 : [mq]: diff-shenandoah.patch

@@ -439,11 +439,11 @@
         if (all_inputs_invariant) {
           // If n's control is a predicate that was moved out of the
           // loop, it was marked invariant but n is only invariant if
           // it depends only on that test. Otherwise, unless that test
           // is out of the loop, it's not invariant.
-          if (n->is_CFG() || n->depends_only_on_test() || n->in(0) == NULL || !_phase->is_member(_lpt, n->in(0))) {
+          if (n->Opcode() == Op_ShenandoahWBMemProj || n->is_CFG() || n->depends_only_on_test() || n->in(0) == NULL || !_phase->is_member(_lpt, n->in(0))) {
             _invariant.set(n->_idx); // I am a invariant too
           }
         }
       } else { // process next input
         _stack.set_index(idx + 1);
< prev index next >