aboutsummaryrefslogtreecommitdiff
path: root/src/share/vm/opto/ifnode.cpp
diff options
context:
space:
mode:
authorcfang <none@none>2009-10-16 14:08:44 -0700
committercfang <none@none>2009-10-16 14:08:44 -0700
commitbe37f814b87891b3a1e5a9e357e762d31ebdf7fd (patch)
treee8cd982c9225d4462e822e257e4164c30f1b97b3 /src/share/vm/opto/ifnode.cpp
parent13a924eb8a5257dbf8f63dcc5d16c4cf9031c274 (diff)
parent3c2ef0072a199ba07c0ba7f6c3ff46b10fd0d1f0 (diff)
Merge
Diffstat (limited to 'src/share/vm/opto/ifnode.cpp')
-rw-r--r--src/share/vm/opto/ifnode.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/share/vm/opto/ifnode.cpp b/src/share/vm/opto/ifnode.cpp
index 277b28814..51ca8fe28 100644
--- a/src/share/vm/opto/ifnode.cpp
+++ b/src/share/vm/opto/ifnode.cpp
@@ -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;