[autovect] [patch] branch merge

Ira Rosen IRAR@il.ibm.com
Mon Apr 11 07:17:00 GMT 2005





Daniel Berlin <dberlin@dberlin.org> wrote on 11/04/2005 01:24:41:

> It looks like someone has broken the dataref stuff so that it no longer
> tries to actually resolve the data dependence, even if you tell it to do
> "detailed analysis" (ie change the incorrect call in tree-loop-linear
> that passes false as the "detailed_analysis" parameter to
> compute_data_dependences).
>

I am looking into it. There are several issues here.

The first problem is in function compute_all_dependences. I changed it to
ignore dependences between the same data-ref, i.e., to avoid creation of
DDR with same DRA and DRB, and to avoid read-read dependencies. As I
understand, linear loop transform needs such DDRs. I'll fix this.

The second problem is that in build_classic_dist_vector incorrect access
function were analyzed in case of INDIRECT_REF. This problem existed before
my changes to data refs analysis. I am now working on the patch to fix this
problem. I'll send it soon.
Before checking distance, we must be sure, that the bases of the data refs
are the same. After that, we can check their access functions to build the
distance vector. The problem with INDIRECT_REF is that its access function
doesn't correspond to its base. E.g., for access function {p + offset, +,
4B} the base will be p, while it should not be the part of initial
condition. In my patch, I am going to fix the access function to {offset/4,
+, 1}.

There is another problem that causes failure in build_classic_dist_vector
on gcc_assert (lca_depth < nb_loops). I am working now to find the reason.

Ira




More information about the Gcc-patches mailing list