comparison src/share/vm/opto/loopopts.cpp @ 6853:d804e148cff8

Merge
author kvn
date Fri, 12 Oct 2012 09:22:52 -0700
parents b9a9ed0f8eeb 8e47bac5643a
children 2aff40cb4703
comparison
equal deleted inserted replaced
6842:b9a9ed0f8eeb 6853:d804e148cff8
548 } 548 }
549 // See if the Phi is used by a Cmp or Narrow oop Decode/Encode. 549 // See if the Phi is used by a Cmp or Narrow oop Decode/Encode.
550 // This will likely Split-If, a higher-payoff operation. 550 // This will likely Split-If, a higher-payoff operation.
551 for (DUIterator_Fast kmax, k = phi->fast_outs(kmax); k < kmax; k++) { 551 for (DUIterator_Fast kmax, k = phi->fast_outs(kmax); k < kmax; k++) {
552 Node* use = phi->fast_out(k); 552 Node* use = phi->fast_out(k);
553 if (use->is_Cmp() || use->is_DecodeN() || use->is_EncodeP()) 553 if (use->is_Cmp() || use->is_DecodeNarrowPtr() || use->is_EncodeNarrowPtr())
554 cost += ConditionalMoveLimit; 554 cost += ConditionalMoveLimit;
555 // Is there a use inside the loop? 555 // Is there a use inside the loop?
556 // Note: check only basic types since CMoveP is pinned. 556 // Note: check only basic types since CMoveP is pinned.
557 if (!used_inside_loop && is_java_primitive(bt)) { 557 if (!used_inside_loop && is_java_primitive(bt)) {
558 IdealLoopTree* u_loop = get_loop(has_ctrl(use) ? get_ctrl(use) : use); 558 IdealLoopTree* u_loop = get_loop(has_ctrl(use) ? get_ctrl(use) : use);
1004 // tried setting control edges on the x's to force them to 1004 // tried setting control edges on the x's to force them to
1005 // not combine, but the matching gets worried when it tries 1005 // not combine, but the matching gets worried when it tries
1006 // to fold a StoreP and an AddP together (as part of an 1006 // to fold a StoreP and an AddP together (as part of an
1007 // address expression) and the AddP and StoreP have 1007 // address expression) and the AddP and StoreP have
1008 // different controls. 1008 // different controls.
1009 if( !x->is_Load() && !x->is_DecodeN() ) _igvn._worklist.yank(x); 1009 if (!x->is_Load() && !x->is_DecodeNarrowPtr()) _igvn._worklist.yank(x);
1010 } 1010 }
1011 _igvn.remove_dead_node(n); 1011 _igvn.remove_dead_node(n);
1012 } 1012 }
1013 } 1013 }
1014 } 1014 }