This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Fix for data deps classical distance vector
- From: "Sebastian Pop" <sebpop at gmail dot com>
- To: "Alexander Monakov" <amonakov at gmail dot com>, "GCC Patches" <gcc-patches at gcc dot gnu dot org>
- Date: Sun, 29 Jul 2007 13:08:39 +0200
- Subject: Re: Fix for data deps classical distance vector
- References: <cb9d34b20707290407j1dc228d1hbed05671313969dd@mail.gmail.com>
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;
}