hotspot/src/share/vm/opto/loopTransform.cpp
changeset 360 21d113ecbf6a
parent 212 cd4963e67949
child 762 1b26adb5fea1
child 670 ddf3e9583f2f
equal deleted inserted replaced
357:f4edb0d9f109 360:21d113ecbf6a
  1511         if( bol && bol->req() > 1 && bol->in(1) &&
  1511         if( bol && bol->req() > 1 && bol->in(1) &&
  1512             ((bol->in(1)->Opcode() == Op_StorePConditional ) ||
  1512             ((bol->in(1)->Opcode() == Op_StorePConditional ) ||
  1513              (bol->in(1)->Opcode() == Op_StoreLConditional ) ||
  1513              (bol->in(1)->Opcode() == Op_StoreLConditional ) ||
  1514              (bol->in(1)->Opcode() == Op_CompareAndSwapI ) ||
  1514              (bol->in(1)->Opcode() == Op_CompareAndSwapI ) ||
  1515              (bol->in(1)->Opcode() == Op_CompareAndSwapL ) ||
  1515              (bol->in(1)->Opcode() == Op_CompareAndSwapL ) ||
  1516              (bol->in(1)->Opcode() == Op_CompareAndSwapP )))
  1516              (bol->in(1)->Opcode() == Op_CompareAndSwapP ) ||
       
  1517              (bol->in(1)->Opcode() == Op_CompareAndSwapN )))
  1517           return;               // Allocation loops RARELY take backedge
  1518           return;               // Allocation loops RARELY take backedge
  1518         // Find the OTHER exit path from the IF
  1519         // Find the OTHER exit path from the IF
  1519         Node* ex = iff->proj_out(1-test_con);
  1520         Node* ex = iff->proj_out(1-test_con);
  1520         float p = iff->_prob;
  1521         float p = iff->_prob;
  1521         if( !phase->is_member( this, ex ) && iff->_fcnt == COUNT_UNKNOWN ) {
  1522         if( !phase->is_member( this, ex ) && iff->_fcnt == COUNT_UNKNOWN ) {