This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [tree-ssa] AST optimizer in C++?


On Mon, 26 Aug 2002, Chris Lattner wrote:

> On Sun, 25 Aug 2002, Diego Novillo wrote:
> > On Sun, 25 Aug 2002, Diego Novillo wrote:
> > > On Sun, 25 Aug 2002, Chris Lattner wrote:
> > > > Is there a reason that you'd like to have a SIMPLE form that is not in
> > > > SSA?
> 
> > > Only that nobody has bothered implementing it.  We'd need to
> 
> > Well, that and the fact that by encoding SSA into the IR you're
> > now forcing every transformation to know about SSA.  Not all of
> > them do.  In principle I don't see why dataflow and IR should be
> > tied to each other.
> 
> In practice, I have found that it is _very_ easy to extend traditional
> transformations to use SSA.  The one exception I've found is the SSA-PRE
> algorithm, which you need to wrap your mind around before it makes
> complete sense.  Once done, however, it's not a huge deal to implement it.
> 
Which is why I did so already.

> IMHO, the advantages of using SSA and having it available (for both
> convenience, optimizer efficiency, and more powerful algorithms than data
> flow can provide at times) greatly out-weigh the disadvantages of having
> to update it.

We already have it available, and used.
Nobody is saying we shouldn't use SSA algorithms when possible, or convert 
algorithms to SSA.
We aren't talking about whether to use SSA or not, we are talking about 
whether to keep it as annotations, or encode it into the IR.
Please address the benefits of *that*, not of SSA in general.
> 
> What kinds of transformations do you have in mind that would be
> inconvenient to implement in SSA form?

That's not quite relevant.
The real question is:
What does encoding it directly into the IR, rather than doing is as we do 
now, buy us, that makes it worth it, given the disadvantages?




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]