< prev index next >

src/hotspot/share/opto/loopTransform.cpp

Print this page

        

@@ -2793,11 +2793,17 @@
              (bol->in(1)->Opcode() == Op_CompareAndSwapB ) ||
              (bol->in(1)->Opcode() == Op_CompareAndSwapS ) ||
              (bol->in(1)->Opcode() == Op_CompareAndSwapI ) ||
              (bol->in(1)->Opcode() == Op_CompareAndSwapL ) ||
              (bol->in(1)->Opcode() == Op_CompareAndSwapP ) ||
-             (bol->in(1)->Opcode() == Op_CompareAndSwapN )))
+             (bol->in(1)->Opcode() == Op_CompareAndSwapN ) ||
+             (bol->in(1)->Opcode() == Op_ShenandoahCompareAndExchangeP ) ||
+             (bol->in(1)->Opcode() == Op_ShenandoahCompareAndExchangeN ) ||
+             (bol->in(1)->Opcode() == Op_ShenandoahWeakCompareAndSwapP ) ||
+             (bol->in(1)->Opcode() == Op_ShenandoahWeakCompareAndSwapN ) ||
+             (bol->in(1)->Opcode() == Op_ShenandoahCompareAndSwapP ) ||
+             (bol->in(1)->Opcode() == Op_ShenandoahCompareAndSwapN )))
           return;               // Allocation loops RARELY take backedge
         // Find the OTHER exit path from the IF
         Node* ex = iff->proj_out(1-test_con);
         float p = iff->_prob;
         if( !phase->is_member( this, ex ) && iff->_fcnt == COUNT_UNKNOWN ) {
< prev index next >