Simplify ptr - 0
authorMarc Glisse <marc.glisse@inria.fr>
Thu, 23 Nov 2017 19:53:09 +0000 (20:53 +0100)
committerMarc Glisse <glisse@gcc.gnu.org>
Thu, 23 Nov 2017 19:53:09 +0000 (19:53 +0000)
2017-11-23  Marc Glisse  <marc.glisse@inria.fr>

* match.pd (ptr-0): New transformation.

From-SVN: r255113

gcc/ChangeLog
gcc/match.pd

index 704d4e22c932723da43a66441c9872080eb93ca6..be8dbe492d1aabff3c1f41ad95aa6eb667444d3f 100644 (file)
@@ -1,3 +1,7 @@
+2017-11-23  Marc Glisse  <marc.glisse@inria.fr>
+
+       * match.pd (ptr-0): New transformation.
+
 2017-11-23  Charles Baylis  <charles.baylis@linaro.org>
 
        * config/arm/arm-protos.h (enum arm_addr_mode_op): New.
index 0949a9bcd2c9ea6164f23b8c3d9b7843afa6e485..84db1ee7360bc23717cd91e6d00f856df669dcba 100644 (file)
@@ -102,6 +102,11 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
  (pointer_plus integer_zerop @1)
  (non_lvalue (convert @1)))
 
+/* ptr - 0 -> (type)ptr */
+(simplify
+ (pointer_diff @0 integer_zerop)
+ (convert @0))
+
 /* See if ARG1 is zero and X + ARG1 reduces to X.
    Likewise if the operands are reversed.  */
 (simplify