hotspot/src/share/vm/opto/loopopts.cpp
changeset 3267 519fbe71f995
parent 3187 f1471947cdf8
child 3283 c8b1b0aecdfe
--- a/hotspot/src/share/vm/opto/loopopts.cpp	Mon Jul 13 15:00:22 2009 -0700
+++ b/hotspot/src/share/vm/opto/loopopts.cpp	Wed Jul 15 13:37:35 2009 -0700
@@ -346,7 +346,10 @@
 
     // Yes!  Reshape address expression!
     Node *inv_scale = new (C, 3) LShiftINode( add_invar, scale );
-    register_new_node( inv_scale, add_invar_ctrl );
+    Node *inv_scale_ctrl =
+      dom_depth(add_invar_ctrl) > dom_depth(scale_ctrl) ?
+      add_invar_ctrl : scale_ctrl;
+    register_new_node( inv_scale, inv_scale_ctrl );
     Node *var_scale = new (C, 3) LShiftINode( add_var, scale );
     register_new_node( var_scale, n_ctrl );
     Node *var_add = new (C, 3) AddINode( var_scale, inv_scale );