diff options
author | Richard Biener <rguenther@suse.de> | 2016-10-07 13:47:40 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2016-10-07 13:47:40 +0000 |
commit | d7f336f846f4333c3e55cc222fba21b4bc154119 (patch) | |
tree | 4f3aacf0249259991ac7ae2c63b406c8b1311937 /gcc/tree-vrp.c | |
parent | a9172bf307dd49fa001387f4b514ea49d38f2092 (diff) | |
download | gcc-d7f336f846f4333c3e55cc222fba21b4bc154119.zip gcc-d7f336f846f4333c3e55cc222fba21b4bc154119.tar.gz gcc-d7f336f846f4333c3e55cc222fba21b4bc154119.tar.bz2 |
tree-ssa-propagate.c (replace_phi_args_in): Remove no longer required hack.
2016-10-07 Richard Biener <rguenther@suse.de>
* tree-ssa-propagate.c (replace_phi_args_in): Remove no longer
required hack.
(substitute_and_fold_dom_walker::before_dom_children):
Substitute and fold before pass specific folding to avoid
feeding that with SSA names that will be later released.
* tree-ssa-ccp.c (get_value_for_expr): Guard for new SSA names
introduced by folding and visited by evaluate_stmt called during
ccp_fold_stmt.
(likely_value): Likewise.
(evaluate_stmt): Likewise.
* tree-vrp.c (simplify_truth_ops_using_ranges): Fold modified stmt.
(simplify_div_or_mod_using_ranges): Likewise.
(simplify_min_or_max_using_ranges): Likewise.
(simplify_abs_using_ranges): Likewise.
(simplify_conversion_using_ranges): Likewise.
(simplify_float_conversion_using_ranges): Likewise.
(simplify_stmt_using_ranges): Likewise.
* gcc.dg/tree-ssa/vrp01.c: Adjust.
* gcc.dg/tree-ssa/vrp34.c: Likewise.
From-SVN: r240865
Diffstat (limited to 'gcc/tree-vrp.c')
-rw-r--r-- | gcc/tree-vrp.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c index c9ecf3d..4e70431 100644 --- a/gcc/tree-vrp.c +++ b/gcc/tree-vrp.c @@ -9055,6 +9055,7 @@ simplify_truth_ops_using_ranges (gimple_stmt_iterator *gsi, gimple *stmt) else gimple_assign_set_rhs_with_ops (gsi, BIT_XOR_EXPR, op0, op1); update_stmt (gsi_stmt (*gsi)); + fold_stmt (gsi, follow_single_use_edges); return true; } @@ -9156,6 +9157,7 @@ simplify_div_or_mod_using_ranges (gimple_stmt_iterator *gsi, gimple *stmt) } update_stmt (stmt); + fold_stmt (gsi, follow_single_use_edges); return true; } @@ -9204,6 +9206,7 @@ simplify_min_or_max_using_ranges (gimple *stmt) gimple_stmt_iterator gsi = gsi_for_stmt (stmt); gimple_assign_set_rhs_from_tree (&gsi, res); update_stmt (stmt); + fold_stmt (&gsi, follow_single_use_edges); return true; } @@ -9256,6 +9259,8 @@ simplify_abs_using_ranges (gimple *stmt) else gimple_assign_set_rhs_code (stmt, NEGATE_EXPR); update_stmt (stmt); + gimple_stmt_iterator gsi = gsi_for_stmt (stmt); + fold_stmt (&gsi, follow_single_use_edges); return true; } } @@ -9906,7 +9911,8 @@ simplify_conversion_using_ranges (gimple *stmt) return false; gimple_assign_set_rhs1 (stmt, innerop); - update_stmt (stmt); + gimple_stmt_iterator gsi = gsi_for_stmt (stmt); + fold_stmt (&gsi, follow_single_use_edges); return true; } @@ -9971,7 +9977,7 @@ simplify_float_conversion_using_ranges (gimple_stmt_iterator *gsi, conv = gimple_build_assign (tem, NOP_EXPR, rhs1); gsi_insert_before (gsi, conv, GSI_SAME_STMT); gimple_assign_set_rhs1 (stmt, tem); - update_stmt (stmt); + fold_stmt (gsi, follow_single_use_edges); return true; } @@ -10176,6 +10182,7 @@ simplify_stmt_using_ranges (gimple_stmt_iterator *gsi) new_rhs1, new_rhs2); update_stmt (gsi_stmt (*gsi)); + fold_stmt (gsi, follow_single_use_edges); return true; } } |