diff options
author | Jackson Woodruff <jackson.woodruff@arm.com> | 2017-09-15 16:17:55 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2017-09-15 10:17:55 -0600 |
commit | ed17cb57b8ddfa4d0c48e0428d0b1df4384a90c5 (patch) | |
tree | 9f1fdd7b65e117f00b289049338c93b0a1f172d2 /gcc | |
parent | 7b9361409dda228eedb13a3abe547c3cafbe957b (diff) | |
download | gcc-ed17cb57b8ddfa4d0c48e0428d0b1df4384a90c5.zip gcc-ed17cb57b8ddfa4d0c48e0428d0b1df4384a90c5.tar.gz gcc-ed17cb57b8ddfa4d0c48e0428d0b1df4384a90c5.tar.bz2 |
re PR tree-optimization/71026 (Missing division optimizations)
2017-09-15 Jackson Woodruff <jackson.woodruff@arm.com>
PR tree-optimization/71026
* match.pd: Move RDIV patterns from fold-const.c
* fold-const.c (distribute_real_division): Removed.
(fold_binary_loc): Remove calls to distribute_real_divison.
PR tree-optimization/71026
* gcc/testsuire/gcc.dg/fold-div-1.c: Use -O1.
From-SVN: r252827
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/match.pd | 7 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/fold-div-1.c | 2 |
4 files changed, 20 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7119112..7147d5d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2017-09-15 Jackson Woodruff <jackson.woodruff@arm.com> + + PR tree-optimization/71026 + * match.pd: Move RDIV patterns from fold-const.c + * fold-const.c (distribute_real_division): Removed. + (fold_binary_loc): Remove calls to distribute_real_divison. + 2017-09-15 Jakub Jelinek <jakub@redhat.com> * doc/invoke.texi: Document -std=c++17 and -std=gnu++17 and document diff --git a/gcc/match.pd b/gcc/match.pd index dbfceaf..e9017e4 100644 --- a/gcc/match.pd +++ b/gcc/match.pd @@ -3517,6 +3517,13 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) (if (!HONOR_SNANS (type)) @0)) + (for op (plus minus) + /* Simplify (A / C) +- (B / C) -> (A +- B) / C. */ + (simplify + (op (rdiv @0 @1) + (rdiv @2 @1)) + (rdiv (op @0 @2) @1))) + /* Simplify sqrt(x) * sqrt(y) -> sqrt(x*y). */ (for root (SQRT CBRT) (simplify diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e53e7be..240544f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2017-09-15 Jackson Woodruff <jackson.woodruff@arm.com> + + PR tree-optimization/71026 + * gcc/testsuire/gcc.dg/fold-div-1.c: Use -O1. + 2017-09-15 Jakub Jelinek <jakub@redhat.com> * lib/g++-dg.exp (g++-dg-runtest): Use 17 instead of 1z. diff --git a/gcc/testsuite/gcc.dg/fold-div-1.c b/gcc/testsuite/gcc.dg/fold-div-1.c index c1c7250..73b7586 100644 --- a/gcc/testsuite/gcc.dg/fold-div-1.c +++ b/gcc/testsuite/gcc.dg/fold-div-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-funsafe-math-optimizations -fdump-tree-gimple" } */ +/* { dg-options "-O1 -funsafe-math-optimizations -fdump-tree-gimple" } */ float f(float x) { |