diff options
author | Richard Biener <rguenther@suse.de> | 2018-05-18 11:54:37 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2018-05-18 11:54:37 +0000 |
commit | b55fbca39ee2568d007ce835f7684f3d2ec2e986 (patch) | |
tree | 4d007324c8edb4387099ef7b0c12aff3b035a3e2 /gcc/gimple-ssa-evrp.c | |
parent | 6b9fc1782effc67dd9f6def16207653d79647553 (diff) |
gimple-ssa-evrp.c (class evrp_folder): Add simplify_stmt_using_ranges method.
2018-05-18 Richard Biener <rguenther@suse.de>
* gimple-ssa-evrp.c (class evrp_folder): Add simplify_stmt_using_ranges
method.
(evrp_dom_walker::before_dom_children): Call it.
* gcc.dg/tree-ssa/pr21559.c: Adjust.
* gcc.dg/tree-ssa/pr45397.c: Likewise.
* gcc.dg/tree-ssa/pr61839_1.c: Likewise.
* gcc.dg/tree-ssa/pr61839_2.c: Likewise.
* gcc.dg/tree-ssa/pr61839_4.c: Likewise.
* gcc.dg/tree-ssa/vrp17.c: Likewise.
* gcc.dg/tree-ssa/vrp18.c: Likewise.
* gcc.dg/tree-ssa/vrp23.c: Likewise.
* gcc.dg/tree-ssa/vrp24.c: Likewise.
* gcc.dg/tree-ssa/vrp58.c: Likewise.
* gcc.dg/vrp-min-max-1.c: Likewise.
* gcc.dg/vrp-min-max-3.c: New testcase.
From-SVN: r260357
Diffstat (limited to 'gcc/gimple-ssa-evrp.c')
-rw-r--r-- | gcc/gimple-ssa-evrp.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/gimple-ssa-evrp.c b/gcc/gimple-ssa-evrp.c index c9bbf09a406..b9a054fd2ee 100644 --- a/gcc/gimple-ssa-evrp.c +++ b/gcc/gimple-ssa-evrp.c @@ -47,6 +47,8 @@ class evrp_folder : public substitute_and_fold_engine public: tree get_value (tree) FINAL OVERRIDE; evrp_folder (class vr_values *vr_values_) : vr_values (vr_values_) { } + bool simplify_stmt_using_ranges (gimple_stmt_iterator *gsi) + { return vr_values->simplify_stmt_using_ranges (gsi); } class vr_values *vr_values; private: @@ -180,6 +182,12 @@ evrp_dom_walker::before_dom_children (basic_block bb) update_stmt (stmt); did_replace = true; } + if (evrp_folder.simplify_stmt_using_ranges (&gsi)) + { + stmt = gsi_stmt (gsi); + update_stmt (stmt); + did_replace = true; + } if (did_replace) { |