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: [tree-ssa] Temporary Expression Replacement in SSA->normal.


On Fri, 2003-11-28 at 15:15, Zack Weinberg wrote:
> Andrew MacLeod <amacleod@redhat.com> writes:

> >
> >   T.624 = search.b_pawn;
> >   T.717 = FirstOne (T.624);
> >   T.650 = search.white_king;
> >   T.651 = (int)T.650;
> >   T.718 = T.651 & 7;
> >   T.638 = T.717 & 7;
> >   T.719 = T.718 - T.638;
> >   T.720 = T.719 - -1;
> >   T.721 = (unsigned int)T.720;
> >   if (T.721 <= 2)
> >
> > being turned into
> >
> >   T.717 = FirstOne (search.b_pawn);
> >   T.650 = search.white_king;
> >   T.638 = T.717 & 7;
> >   if ((unsigned int)(((int)T.650 & 7) - T.638 - -1) <= 2)
> 
> ... which is going to get rewritten back to the original example, but
> with pseudos instead of temp variables, by the tree->rtl expander.  As
> such I think this patch is barking up the wrong tree.  Shouldn't we
> instead make the RTL expander expect and understand GIMPLE form?  This
> would save work, avoid the temporary-explosion problem, and allow the
> RTL expression expander to be made dramatically simpler.
> 
> Synthesis of complex machine instructions, where available, is
> combine's job.


I beleive that is the longer term plan, but this was pretty simple to do
and gets us a bunch of runtime performance back until we have the time
to get to it and take care of it properly. -fno-tree-ter turns it off so
we can compare results when we do that work.

It'll be removed when its no longer needed.

Andrew


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