6860469: remix_address_expressions sets incorrect control causing crash in split_if_with_block_post

Co-authored-by: Chuck Rasbold <rasbold@google.com>
Reviewed-by: never, kvn
This commit is contained in:
Hiroshi Yamauchi 2009-07-15 13:37:35 -07:00 committed by Tom Rodriguez
parent df1c3da3f8
commit a24ea182cc
2 changed files with 75 additions and 1 deletions

View file

@ -346,7 +346,10 @@ Node *PhaseIdealLoop::remix_address_expressions( Node *n ) {
// 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 );