This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: DDG - Implementing Swing Modulo Scheduling in GCC (cont.)
- From: Daniel Berlin <dberlin at dberlin dot org>
- To: mustafa at il dot ibm dot com,vmakarov at redhat dot com
- Cc: zaks at il dot ibm dot com,gcc mailing list <gcc at gcc dot gnu dot org>,David Edelsohn <dje at watson dot ibm dot com>
- Date: Thu, 11 Dec 2003 21:33:04 -0500
- Subject: Re: DDG - Implementing Swing Modulo Scheduling in GCC (cont.)
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