re PR middle-end/66916 (FAIL: gcc.target/arm/pr43920-2.c object-size text <= 54)
authorRichard Biener <rguenther@suse.de>
Thu, 23 Jul 2015 07:29:53 +0000 (07:29 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Thu, 23 Jul 2015 07:29:53 +0000 (07:29 +0000)
2015-07-23  Richard Biener  <rguenther@suse.de>

PR middle-end/66916
* match.pd: Guard widen and sign-change comparison simplification
with single_use.

From-SVN: r226089

gcc/ChangeLog
gcc/match.pd

index e89f685cb8cb5e06077df90bd75036874f8c2425..51649b63c2b7326b9d3d2bb8160202993267ca6a 100644 (file)
@@ -1,3 +1,9 @@
+2015-07-23  Richard Biener  <rguenther@suse.de>
+
+       PR middle-end/66916
+       * match.pd: Guard widen and sign-change comparison simplification
+       with single_use.
+
 2015-07-23  Richard Biener  <rguenther@suse.de>
 
        PR tree-optimization/66945
index 9a66f5274bb6316ded3f9afece86a7566797c4a0..9cf02783c46c273e434c3252a659b59e300974f5 100644 (file)
@@ -1679,7 +1679,8 @@ along with GCC; see the file COPYING3.  If not see
          type on targets that require function pointer canonicalization.  */
        && !(targetm.have_canonicalize_funcptr_for_compare ()
            && TREE_CODE (TREE_TYPE (@00)) == POINTER_TYPE
-           && TREE_CODE (TREE_TYPE (TREE_TYPE (@00))) == FUNCTION_TYPE))
+           && TREE_CODE (TREE_TYPE (TREE_TYPE (@00))) == FUNCTION_TYPE)
+       && single_use (@0))
    (if (TYPE_PRECISION (TREE_TYPE (@00)) == TYPE_PRECISION (TREE_TYPE (@0))
        && (TREE_CODE (@10) == INTEGER_CST
            || (@1 != @10 && types_match (TREE_TYPE (@10), TREE_TYPE (@00))))