2014-12-10 Richard Biener <rguenther@suse.de>
* tree-ssa-loop-im.c (move_computations_dom_walker::before_dom_children): Clear SSA_NAME_RANGE_INFO on moved stmts. From-SVN: r218580
This commit is contained in:
parent
d170435892
commit
07faade69f
@ -1,3 +1,9 @@
|
|||||||
|
2014-12-10 Richard Biener <rguenther@suse.de>
|
||||||
|
|
||||||
|
* tree-ssa-loop-im.c
|
||||||
|
(move_computations_dom_walker::before_dom_children): Clear
|
||||||
|
SSA_NAME_RANGE_INFO on moved stmts.
|
||||||
|
|
||||||
2014-12-10 Martin Liska <mliska@suse.cz>
|
2014-12-10 Martin Liska <mliska@suse.cz>
|
||||||
|
|
||||||
* sreal.c (sreal::shift_right): New implementation
|
* sreal.c (sreal::shift_right): New implementation
|
||||||
|
@ -1232,6 +1232,11 @@ move_computations_dom_walker::before_dom_children (basic_block bb)
|
|||||||
COND_EXPR, t, arg0, arg1);
|
COND_EXPR, t, arg0, arg1);
|
||||||
todo_ |= TODO_cleanup_cfg;
|
todo_ |= TODO_cleanup_cfg;
|
||||||
}
|
}
|
||||||
|
if (INTEGRAL_TYPE_P (TREE_TYPE (gimple_assign_lhs (new_stmt)))
|
||||||
|
&& (!ALWAYS_EXECUTED_IN (bb)
|
||||||
|
|| (ALWAYS_EXECUTED_IN (bb) != level
|
||||||
|
&& !flow_loop_nested_p (ALWAYS_EXECUTED_IN (bb), level))))
|
||||||
|
SSA_NAME_RANGE_INFO (gimple_assign_lhs (new_stmt)) = NULL;
|
||||||
gsi_insert_on_edge (loop_preheader_edge (level), new_stmt);
|
gsi_insert_on_edge (loop_preheader_edge (level), new_stmt);
|
||||||
remove_phi_node (&bsi, false);
|
remove_phi_node (&bsi, false);
|
||||||
}
|
}
|
||||||
@ -1291,6 +1296,13 @@ move_computations_dom_walker::before_dom_children (basic_block bb)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
gsi_remove (&bsi, false);
|
gsi_remove (&bsi, false);
|
||||||
|
if (gimple_has_lhs (stmt)
|
||||||
|
&& TREE_CODE (gimple_get_lhs (stmt)) == SSA_NAME
|
||||||
|
&& INTEGRAL_TYPE_P (TREE_TYPE (gimple_get_lhs (stmt)))
|
||||||
|
&& (!ALWAYS_EXECUTED_IN (bb)
|
||||||
|
|| !(ALWAYS_EXECUTED_IN (bb) == level
|
||||||
|
|| flow_loop_nested_p (ALWAYS_EXECUTED_IN (bb), level))))
|
||||||
|
SSA_NAME_RANGE_INFO (gimple_get_lhs (stmt)) = NULL;
|
||||||
/* In case this is a stmt that is not unconditionally executed
|
/* In case this is a stmt that is not unconditionally executed
|
||||||
when the target loop header is executed and the stmt may
|
when the target loop header is executed and the stmt may
|
||||||
invoke undefined integer or pointer overflow rewrite it to
|
invoke undefined integer or pointer overflow rewrite it to
|
||||||
|
Loading…
Reference in New Issue
Block a user