aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vrp.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2016-10-07 13:47:40 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2016-10-07 13:47:40 +0000
commitd7f336f846f4333c3e55cc222fba21b4bc154119 (patch)
tree4f3aacf0249259991ac7ae2c63b406c8b1311937 /gcc/tree-vrp.c
parenta9172bf307dd49fa001387f4b514ea49d38f2092 (diff)
downloadgcc-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.c11
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;
}
}