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] Patch/pass for PR 14016


On Fri, 2004-02-27 at 19:50, Jason Merrill wrote:
> On Fri, 27 Feb 2004 11:06:55 -0700, law@redhat.com wrote:
> 
> > In message <1077904168.15336.72.camel@localhost.localdomain>, Diego Novillo wri
> > tes:
> >  >On Fri, 2004-02-27 at 12:41, Andrew MacLeod wrote:
> >  >
> >  >> Should we consider adding it to tree-ssa before the merge, or hold onto
> >  >> it for a couple of months?
> >  >> 
> >  >My vote is to add it now.  Mostly because of the debugging benefits. 
> > Likewise.  Debugging tree-ssa compiled code is currently way more difficult
> > than it ought to be due to this issue.  Fixing it now is IMHO the right
> > thing to do.
> 
> Agreed.
> 
> Jason

Here's the final patch wihch I just checked in. The only real addition
of note is the change to tree-sra.c which allows us to do a better job
at keeping the names of components. ie:

        typedef _Complex float C;
        C foo(C a, C b)
        {
          C c = a + b;
          C d = a - b;
          return c * d;
        }

now gives us final output of:

foo (a, b)
{
  float d$imag;
  float d$real;
  float c$imag;
  float c$real;
  float b$imag;
  float b$real;
  float a$imag;
  float a$real;

<bb 0>:
  a$real<D1091> = REALPART_EXPR <a<D1059>>;
  a$imag<D1092> = IMAGPART_EXPR <a<D1059>>;
  b$real<D1093> = REALPART_EXPR <b<D1060>>;
  b$imag<D1094> = IMAGPART_EXPR <b<D1060>>;
  c$real<D1095> = a$real<D1091> + b$real<D1093>;
  c$imag<D1096> = a$imag<D1092> + b$imag<D1094>;
  d$real<D1097> = a$real<D1091> - b$real<D1093>;
  d$imag<D1098> = a$imag<D1092> - b$imag<D1094>;
  return COMPLEX_EXPR <c$real<D1095> * d$real<D1097> - c$imag<D1096> *
d$imag<D1098>, c$real<D1095> * d$imag<D1098> + c$imag<D1096> *
d$real<D1097>>;

}


Andrew

Attachment: D3
Description: Text document


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