From e546907cd952ac97968b579b2bf6942e08b302ef Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Tue, 1 Mar 2016 15:58:25 +0000 Subject: [PATCH] re PR middle-end/69983 (FAIL: gcc.dg/graphite/scop-sor.c scan-tree-dump-times graphite "number of SCoPs: 1" 1) 2016-03-01 Richard Biener 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 | 6 ++++++ gcc/tree-chrec.c | 12 ++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 397214896a1..254a403e55a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2016-03-01 Richard Biener + + 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 Revert diff --git a/gcc/tree-chrec.c b/gcc/tree-chrec.c index 7a2e10004d3..ee789a2436f 100644 --- a/gcc/tree-chrec.c +++ b/gcc/tree-chrec.c @@ -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); } } -- 2.30.2