equal
deleted
inserted
replaced
1402 // Split through Phi (see original code in loopopts.cpp). |
1402 // Split through Phi (see original code in loopopts.cpp). |
1403 assert(C->have_alias_type(t_oop), "instance should have alias type"); |
1403 assert(C->have_alias_type(t_oop), "instance should have alias type"); |
1404 |
1404 |
1405 // Do nothing here if Identity will find a value |
1405 // Do nothing here if Identity will find a value |
1406 // (to avoid infinite chain of value phis generation). |
1406 // (to avoid infinite chain of value phis generation). |
1407 if (!phase->eqv(this, this->Identity(phase))) |
1407 if (!phase->eqv(this, phase->apply_identity(this))) |
1408 return NULL; |
1408 return NULL; |
1409 |
1409 |
1410 // Select Region to split through. |
1410 // Select Region to split through. |
1411 Node* region; |
1411 Node* region; |
1412 if (!base_is_phi) { |
1412 if (!base_is_phi) { |
1492 igvn->set_type(x, t); |
1492 igvn->set_type(x, t); |
1493 // If x is a TypeNode, capture any more-precise type permanently into Node |
1493 // If x is a TypeNode, capture any more-precise type permanently into Node |
1494 // otherwise it will be not updated during igvn->transform since |
1494 // otherwise it will be not updated during igvn->transform since |
1495 // igvn->type(x) is set to x->Value() already. |
1495 // igvn->type(x) is set to x->Value() already. |
1496 x->raise_bottom_type(t); |
1496 x->raise_bottom_type(t); |
1497 Node *y = x->Identity(igvn); |
1497 Node *y = igvn->apply_identity(x); |
1498 if (y != x) { |
1498 if (y != x) { |
1499 x = y; |
1499 x = y; |
1500 } else { |
1500 } else { |
1501 y = igvn->hash_find_insert(x); |
1501 y = igvn->hash_find_insert(x); |
1502 if (y) { |
1502 if (y) { |