src/share/vm/opto/loopopts.cpp

changeset 6313
de95063c0e34
parent 6198
55fb97c4c58d
child 6375
085b304a1cc5
equal deleted inserted replaced
6312:04d32e7fad07 6313:de95063c0e34
1113 for( i = 1; i < phi->req(); i++ ) { 1113 for( i = 1; i < phi->req(); i++ ) {
1114 Node *n1 = phi->in(i)->in(1)->in(1); 1114 Node *n1 = phi->in(i)->in(1)->in(1);
1115 Node *n2 = phi->in(i)->in(1)->in(2); 1115 Node *n2 = phi->in(i)->in(1)->in(2);
1116 phi1->set_req( i, n1 ); 1116 phi1->set_req( i, n1 );
1117 phi2->set_req( i, n2 ); 1117 phi2->set_req( i, n2 );
1118 phi1->set_type( phi1->type()->meet(n1->bottom_type()) ); 1118 phi1->set_type( phi1->type()->meet_speculative(n1->bottom_type()));
1119 phi2->set_type( phi2->type()->meet(n2->bottom_type()) ); 1119 phi2->set_type( phi2->type()->meet_speculative(n2->bottom_type()));
1120 } 1120 }
1121 // See if these Phis have been made before. 1121 // See if these Phis have been made before.
1122 // Register with optimizer 1122 // Register with optimizer
1123 Node *hit1 = _igvn.hash_find_insert(phi1); 1123 Node *hit1 = _igvn.hash_find_insert(phi1);
1124 if( hit1 ) { // Hit, toss just made Phi 1124 if( hit1 ) { // Hit, toss just made Phi
1187 } else { 1187 } else {
1188 n1 = n2 = cmp_top; 1188 n1 = n2 = cmp_top;
1189 } 1189 }
1190 phi1->set_req( j, n1 ); 1190 phi1->set_req( j, n1 );
1191 phi2->set_req( j, n2 ); 1191 phi2->set_req( j, n2 );
1192 phi1->set_type( phi1->type()->meet(n1->bottom_type()) ); 1192 phi1->set_type(phi1->type()->meet_speculative(n1->bottom_type()));
1193 phi2->set_type( phi2->type()->meet(n2->bottom_type()) ); 1193 phi2->set_type(phi2->type()->meet_speculative(n2->bottom_type()));
1194 } 1194 }
1195 1195
1196 // See if these Phis have been made before. 1196 // See if these Phis have been made before.
1197 // Register with optimizer 1197 // Register with optimizer
1198 Node *hit1 = _igvn.hash_find_insert(phi1); 1198 Node *hit1 = _igvn.hash_find_insert(phi1);

mercurial