[tree-ssa] PATCH to gimplify_boolean_expr

Jason Merrill jason@redhat.com
Tue Aug 26 16:40:00 GMT 2003


On Tue, 26 Aug 2003 02:40:45 -0600, law@redhat.com wrote:

> In message <wvlbrud9xsk.fsf@prospero.boston.redhat.com>, Jason Merrill writes:
>  >On Mon, 25 Aug 2003 15:18:08 -0600, law@redhat.com wrote:
>  >> In message <wvloeydbny0.fsf@prospero.boston.redhat.com>, Jason Merrill writes:
>  >>  >
>  >>  >While testing my patch to always evaluate complex expressions into formal
>  >>  >temps, I ran into a new failure on gcc.dg/tree-ssa/20030728-1.c because the
>  >>  >generated gimple code changed from
>  >>  >
>  >>  >  T1 = (foo == bar);
>  >>  >  if (T1)
>  >>  >    ...
>  >>  >
>  >>  >to
>  >>  >
>  >>  >  T1 = (foo == bar);   // formal temp
>  >>  >  T2 = T1;             // variable temp
>  >>  >  if (T2)
>  >>  >    ...

> So I went back and removed your change so that I could see this supposed
> behavior -- in particular I wanted to see why we didn't propagate the value
> zero for F.4_10 in the PHI node.
>
> Unfortunately, after reverting your patch, I get precisely the code I would
> expect -- the value of zero is propagated into the PHI node and instead
> of a copy we get an initialization to zero for the temporary when we
> complete the out-of-ssa pass.
>
> I'm not suggesting you remove your patch -- but that you instead look at
> what other local changes you might have which would inhibit constant
> propagation.

Yes, as I mentioned at the beginning of my mail, I only see this problem
with my patch to evaluate complex expressions into formal temps, because of
the change in the gimplifier output described above.  I can send you that
patch, if you like.  I still need to figure out why it breaks Java before I
can check it in.

Jason



More information about the Gcc-patches mailing list