comparison src/share/vm/opto/loopopts.cpp @ 14383:5ec7dace41a6

8027422: assert(_gvn.type(obj)->higher_equal(tjp)) failed: cast_up is no longer needed Summary: type methods shouldn't always operate on speculative part Reviewed-by: kvn, twisti
author roland
date Fri, 24 Jan 2014 09:31:53 +0100
parents de6a9e811145
children cd5d10655495
comparison
equal deleted inserted replaced
14272:757ec609d8d5 14383:5ec7dace41a6
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);