diff options
author | Marc Glisse <marc.glisse@inria.fr> | 2017-11-24 13:09:14 +0100 |
---|---|---|
committer | Marc Glisse <glisse@gcc.gnu.org> | 2017-11-24 12:09:14 +0000 |
commit | 406520e26f53e3c38118886f79b9e3f7e355e978 (patch) | |
tree | ef3903e9980c30f58c98133ed57fa3cca8796713 | |
parent | f4118c878d89d2105501f85ee63709497c4c7f15 (diff) | |
download | gcc-406520e26f53e3c38118886f79b9e3f7e355e978.zip gcc-406520e26f53e3c38118886f79b9e3f7e355e978.tar.gz gcc-406520e26f53e3c38118886f79b9e3f7e355e978.tar.bz2 |
Simplify 0 - ptr.
2017-11-24 Marc Glisse <marc.glisse@inria.fr>
* match.pd (0-ptr): New transformation.
From-SVN: r255139
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/match.pd | 4 |
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 92b355a..b866e25 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2017-11-24 Marc Glisse <marc.glisse@inria.fr> + + * match.pd (0-ptr): New transformation. + 2017-11-24 Jan Hubicka <hubicka@ucw.cz> PR bootstrap/83015 diff --git a/gcc/match.pd b/gcc/match.pd index 84db1ee..9db48bd 100644 --- a/gcc/match.pd +++ b/gcc/match.pd @@ -2456,9 +2456,13 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) (if (INTEGRAL_TYPE_P (type)) (mult @0 { build_int_cst (type, 2); })))) +/* 0 - X -> -X. */ (simplify (minus integer_zerop @1) (negate @1)) +(simplify + (pointer_diff integer_zerop @1) + (negate (convert @1))) /* (ARG0 - ARG1) is the same as (-ARG1 + ARG0). So check whether ARG0 is zero and X + ARG0 reduces to X, since that would mean |