This is the mail archive of the gcc-patches@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: Patch ping ^ 2


Hello,

> > > As for your earlier message that:
> > > 
> > > >1) It does not really bring any advantages over conventional
> > > >approaches.
> > > 
> > > This is not true.
> > > For example, you can do a neat form of promotion of entire blocks where
> > > the conditional test is invariant when it is in ssa form that you simply can't do
> > > easily without ssa form.

could you provide an example of what you mean?  I cannot imagine ssa
form for virtual operands would be useful for that.

> > > It would be true to state that your current implementation takes no
> > > special advantage of SSA form, however, it is not true to state that
> > > nobody does store motion better because it's done on SSA form.
> > > 
> > > "2) It is slower than conventional approaches."
> > > Only if you make it so.
> > > Considering the majority of other commercial compilers (IBM, Intel,
> > > Open64) and aggressively optimizing non-commercial compilers (LLVM, for
> > > example) do store motion on SSA, and do so very very quickly, this leads
> > > me to believe that the problem is in your implementation, not with the
> > > algorithm itself.
> > 
> > You are wrong at least about LLVM, for sure.
> 
> Uh, see LICM.cpp.

yes, I did.  It uses *exactly* the same algorithm for store motion as
the rewritten version of tree-ssa-loop-im.c -- i.e. it gathers first
all aliasing information about stores and loads inside loop, then uses
it to decide what memory references can be promoted.  Even the
representation of alias sets used by LICM.cpp is pretty close to the one
used in new tree-ssa-loop-im.c.

> >   LLVM does not represent aliasing info in ssa form.  
> I never said it did.

Well, if you did not, I do not know what you are trying to argue about.
Rewrite of LICM still uses SSA form, only it does not use it to decide
which memory references alias.

Zdenek

> You said store motion was slower on SSA than convential approachs,
> LLVM's is on ssa and it is not slower.


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