equal
deleted
inserted
replaced
1626 } |
1626 } |
1627 if (use_op == Op_Initialize) { |
1627 if (use_op == Op_Initialize) { |
1628 Node* imem = use->as_Initialize()->proj_out_or_null(TypeFunc::Memory); |
1628 Node* imem = use->as_Initialize()->proj_out_or_null(TypeFunc::Memory); |
1629 if (imem != NULL) add_users_to_worklist0(imem); |
1629 if (imem != NULL) add_users_to_worklist0(imem); |
1630 } |
1630 } |
1631 // Loading the java mirror from a klass oop requires two loads and the type |
1631 // Loading the java mirror from a Klass requires two loads and the type |
1632 // of the mirror load depends on the type of 'n'. See LoadNode::Value(). |
1632 // of the mirror load depends on the type of 'n'. See LoadNode::Value(). |
|
1633 // If the code pattern requires a barrier for |
|
1634 // mirror = ((OopHandle)mirror)->resolve(); |
|
1635 // this won't match. |
1633 if (use_op == Op_LoadP && use->bottom_type()->isa_rawptr()) { |
1636 if (use_op == Op_LoadP && use->bottom_type()->isa_rawptr()) { |
1634 for (DUIterator_Fast i2max, i2 = use->fast_outs(i2max); i2 < i2max; i2++) { |
1637 for (DUIterator_Fast i2max, i2 = use->fast_outs(i2max); i2 < i2max; i2++) { |
1635 Node* u = use->fast_out(i2); |
1638 Node* u = use->fast_out(i2); |
1636 const Type* ut = u->bottom_type(); |
1639 const Type* ut = u->bottom_type(); |
1637 if (u->Opcode() == Op_LoadP && ut->isa_instptr()) { |
1640 if (u->Opcode() == Op_LoadP && ut->isa_instptr()) { |
1772 PhiNode* phi = countedloop_phi_from_cmp((CmpINode*)m, n); |
1775 PhiNode* phi = countedloop_phi_from_cmp((CmpINode*)m, n); |
1773 if (phi != NULL) { |
1776 if (phi != NULL) { |
1774 worklist.push(phi); |
1777 worklist.push(phi); |
1775 } |
1778 } |
1776 } |
1779 } |
1777 // Loading the java mirror from a klass oop requires two loads and the type |
1780 // Loading the java mirror from a Klass requires two loads and the type |
1778 // of the mirror load depends on the type of 'n'. See LoadNode::Value(). |
1781 // of the mirror load depends on the type of 'n'. See LoadNode::Value(). |
|
1782 // If the code pattern requires a barrier for |
|
1783 // mirror = ((OopHandle)mirror)->resolve(); |
|
1784 // this won't match. |
1779 if (m_op == Op_LoadP && m->bottom_type()->isa_rawptr()) { |
1785 if (m_op == Op_LoadP && m->bottom_type()->isa_rawptr()) { |
1780 for (DUIterator_Fast i2max, i2 = m->fast_outs(i2max); i2 < i2max; i2++) { |
1786 for (DUIterator_Fast i2max, i2 = m->fast_outs(i2max); i2 < i2max; i2++) { |
1781 Node* u = m->fast_out(i2); |
1787 Node* u = m->fast_out(i2); |
1782 const Type* ut = u->bottom_type(); |
1788 const Type* ut = u->bottom_type(); |
1783 if (u->Opcode() == Op_LoadP && ut->isa_instptr() && ut != type(u)) { |
1789 if (u->Opcode() == Op_LoadP && ut->isa_instptr() && ut != type(u)) { |