< prev index next >

src/hotspot/share/opto/loopPredicate.cpp

Print this page

        

@@ -534,10 +534,13 @@
   // the possibility to push n onto the stack for further processing.
   void visit(Node* use, Node* n) {
     if (_lpt->is_invariant(n)) { // known invariant
       _invariant.set(n->_idx);
     } else if (!n->is_CFG()) {
+      if (n->Opcode() == Op_ShenandoahWriteBarrier) {
+        return;
+      }
       Node *n_ctrl = _phase->ctrl_or_self(n);
       Node *u_ctrl = _phase->ctrl_or_self(use); // self if use is a CFG
       if (_phase->is_dominator(n_ctrl, u_ctrl)) {
         _stack.push(n, n->in(0) == NULL ? 1 : 0);
       }

@@ -859,10 +862,17 @@
     } else {
       // No overflow possible
       max_idx_expr = new AddINode(max_idx_expr, offset);
     }
     register_new_node(max_idx_expr, ctrl);
+    if (TraceLoopPredicate) {
+      if (offset->is_Con()) {
+        predString->print("+ %d ", offset->get_int());
+      } else {
+        predString->print("+ offset ");
+      }
+    }
   }
 
   CmpNode* cmp = NULL;
   if (overflow) {
     // Integer expressions may overflow, do long comparison
< prev index next >