Hello,

> >is there the data reference for it in the datarefs array?
> >
> >Zdenek
> >
> 
> Using this code after the construction of the data dependance :
> 
> 
>       datarefs = VEC_alloc (data_reference_p, heap, 10);
>       dependence_relations = VEC_alloc (ddr_p, heap, 10 * 10);
>       compute_data_dependences_for_loop (loop_nest, true, &datarefs,
>                                          &dependence_relations);
> 
>       static int cnt = 0;
>       char s[128];
>       sprintf(s,"output%d",cnt++);
>       FILE *f = fopen(s,"w");
>       dump_data_references(f,datarefs);
>       fclose(f);
> 
> With this program :
> 
> #include <stdio.h>
> 
> int fct(int *t);
> 
> int main()
> {
>     int tab[10];
>     int i;
> 
>     printf("Hello World %d\n",tab[5]);
> 
>     printf("Sum is : %d\n",fct(tab));
> 
>     return 0;
> }
> 
> int fct(int *t)
> {
>     int i=9;
>     int res=0;
>     int j,a,b;
> 
> 
>     for(i=0;i<10;i++)
>            for(j=i+1;j<10;j++)
>               {
>               a = t[j];
>               b = t[i-1];
>               res += b - a;
>               }
>     return res;
> }
> 
> 
> I got :
> 
> 
> For the main :
> 
> (Data Ref:
>   stmt:
>   ref:
>   base_object:
> )
> 
> For fct :
> 
> (Data Ref:
>   stmt: a_16 = *D.2144_15;
>   ref: *D.2144_15;
>   base_object:
>   Access function 0: {0B, +, 1B}_2
> )

one possibility is that the t[i-1] load got moved out of the loop by
PRE; could you check that the load is still present in the loop?

Zdenek

Reply via email to