Mercurial > hg > graal-compiler
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++) { |