DDG - Implementing Swing Modulo Scheduling in GCC (cont.)
Daniel Berlin
dberlin@dberlin.org
Fri Dec 12 02:36:00 GMT 2003
> So in general the data design looks ok to me of course if it is enough
> for your implementation of SMS. I've found some simplifications in
> data
> analysis. You are searching dependencies between iterations with only
> the distance equal to 1. It is better to use a general framework
> dependence.c (now it is not a part of gcc mainline because it is not
> used by any part of gcc) written by Stan Cox. If it is hard to
> understand or support this, you could implement at least the same
> functionality.
I *strongly* recommend against reviving dependence.c, for the following
reasons:
1. As submitted, it didn't work (it required some modifications and
hooks into the c front end that were never committed/approved).
2. What did "work" (ie when you put in the right hooks) was buggy and
often segfaulted (i tried to use it for something for about a week or
two before giving up because it kept segfaulting on trivial code).
3. It constructs it's own def-use chains from trees
4. It tries to do dependence on our arbitrarily complex tree structure
3 and 4 are artifacts of trying to do dependence without tree-ssa.
Most of the code in dependence.c was dealing with these def-use chains,
so you'd be better off not using it as a starting point.
If you must have better tree->rtl dependence info passed down (which is
what dependence.c did), i'd suggest starting with Sebastian Pop's
recently posted work, and having the results passed down to the RTL
level somewhat like dependence.c does.
Though starting with some simple RTL dependence and then using more
advanced tree dependence info passed down to RTL when tree-ssa arrives
sounds like a good option.
--Dan
More information about the Gcc
mailing list