670 lrg_ends = true;
671 for (DUIterator_Fast jmax, j = src_n->fast_outs(jmax); j < jmax; j++) {
672 Node* m = src_n->fast_out(j); // Get user
673 if (m == n) continue;
674 if (!m->is_Mach()) continue;
675 MachNode *mach = m->as_Mach();
676 bool src_matches = false;
677 int iop = mach->ideal_Opcode();
678
679 switch (iop) {
680 case Op_StoreB:
681 case Op_StoreC:
682 case Op_StoreCM:
683 case Op_StoreD:
684 case Op_StoreF:
685 case Op_StoreI:
686 case Op_StoreL:
687 case Op_StoreP:
688 case Op_StoreN:
689 case Op_StoreVector:
690 case Op_StoreNKlass:
691 for (uint k = 1; k < m->req(); k++) {
692 Node *in = m->in(k);
693 if (in == src_n) {
694 src_matches = true;
695 break;
696 }
697 }
698 break;
699
700 default:
701 src_matches = true;
702 break;
703 }
704
705 // If we have a store as our use, ignore the non source operands
706 if (src_matches == false) continue;
707
708 // Mark every unscheduled use which is not n with a recalculation
709 if ((get_block_for_node(m) == block) && (!m->is_scheduled())) {
|
670 lrg_ends = true;
671 for (DUIterator_Fast jmax, j = src_n->fast_outs(jmax); j < jmax; j++) {
672 Node* m = src_n->fast_out(j); // Get user
673 if (m == n) continue;
674 if (!m->is_Mach()) continue;
675 MachNode *mach = m->as_Mach();
676 bool src_matches = false;
677 int iop = mach->ideal_Opcode();
678
679 switch (iop) {
680 case Op_StoreB:
681 case Op_StoreC:
682 case Op_StoreCM:
683 case Op_StoreD:
684 case Op_StoreF:
685 case Op_StoreI:
686 case Op_StoreL:
687 case Op_StoreP:
688 case Op_StoreN:
689 case Op_StoreVector:
690 case Op_StoreVectorScatter:
691 case Op_StoreNKlass:
692 for (uint k = 1; k < m->req(); k++) {
693 Node *in = m->in(k);
694 if (in == src_n) {
695 src_matches = true;
696 break;
697 }
698 }
699 break;
700
701 default:
702 src_matches = true;
703 break;
704 }
705
706 // If we have a store as our use, ignore the non source operands
707 if (src_matches == false) continue;
708
709 // Mark every unscheduled use which is not n with a recalculation
710 if ((get_block_for_node(m) == block) && (!m->is_scheduled())) {
|