[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