mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-22 03:54:33 +02:00
6889300
: assert(i != k || is_new || i->outcnt() > 0, "don't return dead nodes")
PhiNode::Ideal() should return TOP for Phi node with no users. Reviewed-by: never, jrose
This commit is contained in:
parent
9a22acef05
commit
998bcbaf4b
2 changed files with 12 additions and 3 deletions
|
@ -240,13 +240,13 @@ static Node* split_if(IfNode *iff, PhaseIterGVN *igvn) {
|
|||
// as a single huge transform.
|
||||
igvn->register_new_node_with_optimizer( region_c );
|
||||
igvn->register_new_node_with_optimizer( region_x );
|
||||
phi_x = phase->transform( phi_x );
|
||||
// Prevent the untimely death of phi_x. Currently he has no uses. He is
|
||||
// about to get one. If this only use goes away, then phi_x will look dead.
|
||||
// However, he will be picking up some more uses down below.
|
||||
Node *hook = new (igvn->C, 4) Node(4);
|
||||
hook->init_req(0, phi_x);
|
||||
hook->init_req(1, phi_c);
|
||||
phi_x = phase->transform( phi_x );
|
||||
|
||||
// Make the compare
|
||||
Node *cmp_c = phase->makecon(t);
|
||||
|
@ -322,6 +322,7 @@ static Node* split_if(IfNode *iff, PhaseIterGVN *igvn) {
|
|||
phi_s = PhiNode::make_blank(region_s,phi);
|
||||
phi_s->init_req( 1, phi_c );
|
||||
phi_s->init_req( 2, phi_x );
|
||||
hook->add_req(phi_s);
|
||||
phi_s = phase->transform(phi_s);
|
||||
}
|
||||
proj_path_data = phi_s;
|
||||
|
@ -333,6 +334,7 @@ static Node* split_if(IfNode *iff, PhaseIterGVN *igvn) {
|
|||
phi_f = PhiNode::make_blank(region_f,phi);
|
||||
phi_f->init_req( 1, phi_c );
|
||||
phi_f->init_req( 2, phi_x );
|
||||
hook->add_req(phi_f);
|
||||
phi_f = phase->transform(phi_f);
|
||||
}
|
||||
proj_path_data = phi_f;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue