Mercurial > hg > truffle
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); |