Mercurial > hg > graal-compiler
diff src/share/vm/opto/loopopts.cpp @ 850:fd50a67f97d1
6860469: remix_address_expressions sets incorrect control causing crash in split_if_with_block_post
Reviewed-by: never, kvn
Contributed-by: yamauchi@google.com, rasbold@google.com
author | never |
---|---|
date | Wed, 15 Jul 2009 13:37:35 -0700 |
parents | 0f2d888530e7 |
children | 18f526145aea |
line wrap: on
line diff
--- a/src/share/vm/opto/loopopts.cpp Mon Jul 13 15:00:22 2009 -0700 +++ b/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 );