This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Fix for data deps classical distance vector


On 7/29/07, Sebastian Pop <sebpop@gmail.com> wrote:
> Hi,
>
> I've just committed to trunk the attached patch.  It should fix the ICE
> that you saw when trying to represent non integer distance vectors.
> The patch passed bootstrap and test on amd64-linux.
>
> Sebastian
>
	* tree-data-ref.c (add_multivariate_self_dist): Parametric access
	functions cannot be represented as classical distance vectors.

Index: gcc/tree-data-ref.c
===================================================================
--- gcc/tree-data-ref.c	(revision 126917)
+++ gcc/tree-data-ref.c	(working copy)
@@ -2810,10 +2810,14 @@ add_multivariate_self_dist (struct data_
   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;
     }
 

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]