comparison src/share/vm/opto/loopopts.cpp @ 12956:3213ba4d3dff

8024069: replace_in_map() should operate on parent maps Summary: type information gets lost because replace_in_map() doesn't update parent maps Reviewed-by: kvn, twisti
author roland
date Sat, 19 Oct 2013 12:16:43 +0200
parents c9ccd7b85f20
children f675976a61e7
comparison
equal deleted inserted replaced
12955:252d541466ea 12956:3213ba4d3dff
236 return; 236 return;
237 237
238 ProjNode* dp_proj = dp->as_Proj(); 238 ProjNode* dp_proj = dp->as_Proj();
239 ProjNode* unc_proj = iff->as_If()->proj_out(1 - dp_proj->_con)->as_Proj(); 239 ProjNode* unc_proj = iff->as_If()->proj_out(1 - dp_proj->_con)->as_Proj();
240 if (exclude_loop_predicate && 240 if (exclude_loop_predicate &&
241 is_uncommon_trap_proj(unc_proj, Deoptimization::Reason_predicate)) 241 unc_proj->is_uncommon_trap_proj(Deoptimization::Reason_predicate))
242 return; // Let IGVN transformation change control dependence. 242 return; // Let IGVN transformation change control dependence.
243 243
244 IdealLoopTree *old_loop = get_loop(dp); 244 IdealLoopTree *old_loop = get_loop(dp);
245 245
246 for (DUIterator_Fast imax, i = dp->fast_outs(imax); i < imax; i++) { 246 for (DUIterator_Fast imax, i = dp->fast_outs(imax); i < imax; i++) {