2778 ((bol->in(1)->Opcode() == Op_StorePConditional ) ||
2779 (bol->in(1)->Opcode() == Op_StoreIConditional ) ||
2780 (bol->in(1)->Opcode() == Op_StoreLConditional ) ||
2781 (bol->in(1)->Opcode() == Op_CompareAndExchangeB ) ||
2782 (bol->in(1)->Opcode() == Op_CompareAndExchangeS ) ||
2783 (bol->in(1)->Opcode() == Op_CompareAndExchangeI ) ||
2784 (bol->in(1)->Opcode() == Op_CompareAndExchangeL ) ||
2785 (bol->in(1)->Opcode() == Op_CompareAndExchangeP ) ||
2786 (bol->in(1)->Opcode() == Op_CompareAndExchangeN ) ||
2787 (bol->in(1)->Opcode() == Op_WeakCompareAndSwapB ) ||
2788 (bol->in(1)->Opcode() == Op_WeakCompareAndSwapS ) ||
2789 (bol->in(1)->Opcode() == Op_WeakCompareAndSwapI ) ||
2790 (bol->in(1)->Opcode() == Op_WeakCompareAndSwapL ) ||
2791 (bol->in(1)->Opcode() == Op_WeakCompareAndSwapP ) ||
2792 (bol->in(1)->Opcode() == Op_WeakCompareAndSwapN ) ||
2793 (bol->in(1)->Opcode() == Op_CompareAndSwapB ) ||
2794 (bol->in(1)->Opcode() == Op_CompareAndSwapS ) ||
2795 (bol->in(1)->Opcode() == Op_CompareAndSwapI ) ||
2796 (bol->in(1)->Opcode() == Op_CompareAndSwapL ) ||
2797 (bol->in(1)->Opcode() == Op_CompareAndSwapP ) ||
2798 (bol->in(1)->Opcode() == Op_CompareAndSwapN )))
2799 return; // Allocation loops RARELY take backedge
2800 // Find the OTHER exit path from the IF
2801 Node* ex = iff->proj_out(1-test_con);
2802 float p = iff->_prob;
2803 if( !phase->is_member( this, ex ) && iff->_fcnt == COUNT_UNKNOWN ) {
2804 if( top == Op_IfTrue ) {
2805 if( p < (PROB_FAIR + PROB_UNLIKELY_MAG(3))) {
2806 iff->_prob = PROB_STATIC_FREQUENT;
2807 }
2808 } else {
2809 if( p > (PROB_FAIR - PROB_UNLIKELY_MAG(3))) {
2810 iff->_prob = PROB_STATIC_INFREQUENT;
2811 }
2812 }
2813 }
2814 }
2815 }
2816 test = phase->idom(test);
2817 }
2818 }
|
2778 ((bol->in(1)->Opcode() == Op_StorePConditional ) ||
2779 (bol->in(1)->Opcode() == Op_StoreIConditional ) ||
2780 (bol->in(1)->Opcode() == Op_StoreLConditional ) ||
2781 (bol->in(1)->Opcode() == Op_CompareAndExchangeB ) ||
2782 (bol->in(1)->Opcode() == Op_CompareAndExchangeS ) ||
2783 (bol->in(1)->Opcode() == Op_CompareAndExchangeI ) ||
2784 (bol->in(1)->Opcode() == Op_CompareAndExchangeL ) ||
2785 (bol->in(1)->Opcode() == Op_CompareAndExchangeP ) ||
2786 (bol->in(1)->Opcode() == Op_CompareAndExchangeN ) ||
2787 (bol->in(1)->Opcode() == Op_WeakCompareAndSwapB ) ||
2788 (bol->in(1)->Opcode() == Op_WeakCompareAndSwapS ) ||
2789 (bol->in(1)->Opcode() == Op_WeakCompareAndSwapI ) ||
2790 (bol->in(1)->Opcode() == Op_WeakCompareAndSwapL ) ||
2791 (bol->in(1)->Opcode() == Op_WeakCompareAndSwapP ) ||
2792 (bol->in(1)->Opcode() == Op_WeakCompareAndSwapN ) ||
2793 (bol->in(1)->Opcode() == Op_CompareAndSwapB ) ||
2794 (bol->in(1)->Opcode() == Op_CompareAndSwapS ) ||
2795 (bol->in(1)->Opcode() == Op_CompareAndSwapI ) ||
2796 (bol->in(1)->Opcode() == Op_CompareAndSwapL ) ||
2797 (bol->in(1)->Opcode() == Op_CompareAndSwapP ) ||
2798 (bol->in(1)->Opcode() == Op_CompareAndSwapN ) ||
2799 (bol->in(1)->Opcode() == Op_ShenandoahCompareAndExchangeP ) ||
2800 (bol->in(1)->Opcode() == Op_ShenandoahCompareAndExchangeN ) ||
2801 (bol->in(1)->Opcode() == Op_ShenandoahWeakCompareAndSwapP ) ||
2802 (bol->in(1)->Opcode() == Op_ShenandoahWeakCompareAndSwapN ) ||
2803 (bol->in(1)->Opcode() == Op_ShenandoahCompareAndSwapP ) ||
2804 (bol->in(1)->Opcode() == Op_ShenandoahCompareAndSwapN )))
2805 return; // Allocation loops RARELY take backedge
2806 // Find the OTHER exit path from the IF
2807 Node* ex = iff->proj_out(1-test_con);
2808 float p = iff->_prob;
2809 if( !phase->is_member( this, ex ) && iff->_fcnt == COUNT_UNKNOWN ) {
2810 if( top == Op_IfTrue ) {
2811 if( p < (PROB_FAIR + PROB_UNLIKELY_MAG(3))) {
2812 iff->_prob = PROB_STATIC_FREQUENT;
2813 }
2814 } else {
2815 if( p > (PROB_FAIR - PROB_UNLIKELY_MAG(3))) {
2816 iff->_prob = PROB_STATIC_INFREQUENT;
2817 }
2818 }
2819 }
2820 }
2821 }
2822 test = phase->idom(test);
2823 }
2824 }
|