re PR middle-end/69983 (FAIL: gcc.dg/graphite/scop-sor.c scan-tree-dump-times graphit...
authorRichard Biener <rguenther@suse.de>
Tue, 1 Mar 2016 15:58:25 +0000 (15:58 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Tue, 1 Mar 2016 15:58:25 +0000 (15:58 +0000)
2016-03-01  Richard Biener  <rguenther@suse.de>

PR tree-optimization/69983
* tree-chrec.c (eq_evolutions_p): Handle conversions, compare
types and fall back to operand_equal_p.

From-SVN: r233856

gcc/ChangeLog
gcc/tree-chrec.c

index 397214896a18aed4b025da0440f4b513aa6c962c..254a403e55af4fed567f1040ec0f1750792d6778 100644 (file)
@@ -1,3 +1,9 @@
+2016-03-01  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/69983
+       * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
+       types and fall back to operand_equal_p.
+
 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
 
        Revert
index 7a2e10004d3dcf3a6c75da26ed6a5ce6a099cd95..ee789a2436f20d23680ba15a2e4f046818f8b1ee 100644 (file)
@@ -1468,11 +1468,11 @@ eq_evolutions_p (const_tree chrec0, const_tree chrec1)
   if (chrec0 == chrec1)
     return true;
 
+  if (! types_compatible_p (TREE_TYPE (chrec0), TREE_TYPE (chrec1)))
+    return false;
+
   switch (TREE_CODE (chrec0))
     {
-    case INTEGER_CST:
-      return operand_equal_p (chrec0, chrec1, 0);
-
     case POLYNOMIAL_CHREC:
       return (CHREC_VARIABLE (chrec0) == CHREC_VARIABLE (chrec1)
              && eq_evolutions_p (CHREC_LEFT (chrec0), CHREC_LEFT (chrec1))
@@ -1487,8 +1487,12 @@ eq_evolutions_p (const_tree chrec0, const_tree chrec1)
          && eq_evolutions_p (TREE_OPERAND (chrec0, 1),
                              TREE_OPERAND (chrec1, 1));
 
+    CASE_CONVERT:
+      return eq_evolutions_p (TREE_OPERAND (chrec0, 0),
+                             TREE_OPERAND (chrec1, 0));
+
     default:
-      return false;
+      return operand_equal_p (chrec0, chrec1, 0);
     }
 }