summaryrefslogtreecommitdiff
path: root/gcc/tree-data-ref.c
diff options
context:
space:
mode:
authorSebastian Pop <spop@gcc.gnu.org>2007-07-29 10:41:23 +0000
committerSebastian Pop <spop@gcc.gnu.org>2007-07-29 10:41:23 +0000
commitb1e759547fa63a16c51093ded69cd79570946c7b (patch)
tree88c72843af4a93a371cbc5cbf16aa887f60ca625 /gcc/tree-data-ref.c
parent5a2197e9be31fa04a2917ec688e8e663ce7cca35 (diff)
downloadgcc-b1e759547fa63a16c51093ded69cd79570946c7b.tar.gz
tree-data-ref.c (add_multivariate_self_dist): Parametric access functions cannot be represented as classical distance vectors.
* tree-data-ref.c (add_multivariate_self_dist): Parametric access functions cannot be represented as classical distance vectors. From-SVN: r127041
Diffstat (limited to 'gcc/tree-data-ref.c')
-rw-r--r--gcc/tree-data-ref.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/gcc/tree-data-ref.c b/gcc/tree-data-ref.c
index b88fbc2ddbb..85e6d725f1c 100644
--- a/gcc/tree-data-ref.c
+++ b/gcc/tree-data-ref.c
@@ -2809,10 +2809,14 @@ add_multivariate_self_dist (struct data_dependence_relation *ddr, tree c_2)
lambda_vector dist_v;
int v1, v2, cd;
- /* Polynomials with more than 2 variables are not handled yet. */
- if (TREE_CODE (c_0) != INTEGER_CST)
+ /* Polynomials with more than 2 variables are not handled yet. When
+ the evolution steps are parameters, it is not possible to
+ represent the dependence using classical distance vectors. */
+ if (TREE_CODE (c_0) != INTEGER_CST
+ || TREE_CODE (CHREC_RIGHT (c_1)) != INTEGER_CST
+ || TREE_CODE (CHREC_RIGHT (c_2)) != INTEGER_CST)
{
- DDR_ARE_DEPENDENT (ddr) = chrec_dont_know;
+ DDR_AFFINE_P (ddr) = false;
return;
}