diff options
Diffstat (limited to 'gcc/tree-ssa-dom.c')
-rw-r--r-- | gcc/tree-ssa-dom.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/gcc/tree-ssa-dom.c b/gcc/tree-ssa-dom.c index 949acf1..f8207e0 100644 --- a/gcc/tree-ssa-dom.c +++ b/gcc/tree-ssa-dom.c @@ -2154,12 +2154,10 @@ optimize_stmt (basic_block bb, gimple_stmt_iterator si) /* Check for redundant computations. Do this optimization only for assignments that have no volatile ops and conditionals. */ - may_optimize_p = (!gimple_has_volatile_ops (stmt) - && ((is_gimple_assign (stmt) - && !gimple_rhs_has_side_effects (stmt)) + may_optimize_p = (!gimple_has_side_effects (stmt) + && (is_gimple_assign (stmt) || (is_gimple_call (stmt) - && gimple_call_lhs (stmt) != NULL_TREE - && !gimple_rhs_has_side_effects (stmt)) + && gimple_call_lhs (stmt) != NULL_TREE) || gimple_code (stmt) == GIMPLE_COND || gimple_code (stmt) == GIMPLE_SWITCH)); |