diff src/share/vm/opto/ifnode.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 46ef27bcacb3
children de6a9e811145
line wrap: on
line diff
--- a/src/share/vm/opto/ifnode.cpp	Fri Oct 18 12:15:32 2013 -0700
+++ b/src/share/vm/opto/ifnode.cpp	Sat Oct 19 12:16:43 2013 +0200
@@ -1019,7 +1019,7 @@
   // be skipped. For example, range check predicate has two checks
   // for lower and upper bounds.
   ProjNode* unc_proj = proj_out(1 - prev_dom->as_Proj()->_con)->as_Proj();
-  if (PhaseIdealLoop::is_uncommon_trap_proj(unc_proj, Deoptimization::Reason_predicate))
+  if (unc_proj->is_uncommon_trap_proj(Deoptimization::Reason_predicate))
     prev_dom = idom;
 
   // Now walk the current IfNode's projections.