< prev index next >
src/hotspot/share/opto/loopTransform.cpp
Print this page
*** 2793,2803 ****
(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 )))
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 ) {
--- 2793,2809 ----
(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_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 >