This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [tree-ssa] Problem with constant folding
- From: law at redhat dot com
- To: Zdenek Dvorak <rakdver at atrey dot karlin dot mff dot cuni dot cz>
- Cc: gcc-patches at gcc dot gnu dot org, dnovillo at redhat dot com
- Date: Tue, 16 Dec 2003 21:38:39 -0700
- Subject: Re: [tree-ssa] Problem with constant folding
- Reply-to: law at redhat dot com
In message <20031212071203.GA4868@atrey.karlin.mff.cuni.cz>, Zdenek Dvorak writ
es:
>Hello,
>
>> >[snip] (http://gcc.gnu.org/ml/gcc-patches/2003-12/msg00786.html)
>> >
>> >> The patch below fixes the problem by preventing the overflowed constant
>s
>> >> from being propagated. It is probably way too conservative, but I was
>> >> not able to determine the place where to fix the problem in other way.
>> >
>> >... and unfortunately it is also wrong, since it fails to bootstrap. Does
>> >someone has an idea what is the right way to fix this?
>> Your approach seems pretty reasonable. And it seems extremely odd that
>> it wouldn't bootstrap since it ought to just force such constants into
>> new variables and prevent them from being propagated by the optimizers.
>>
>> I'd suggest investigating why the patch didn't bootstrap.
>
>because gimplification fails when constants are not considered to be
>invariant.
And why is that? It would seem to me that gimplification in this case
should put the overflowed constant into a temporary then move on to
something more interesting.
>I.e. I would need to check this directly in the optimizers.
>
>But what bothers me is that I am not at all sure whether it indeed fixes
>the real problem; we obviously handle overflowed constants wrongly
>somewhere, and I have no idea where it is.
It's ironic that a source of significant problems I've had when I was
doing some testing in California was due to overflow issues. For the
stuff I was seeing it wasn't immediately clear if the test was incorrect
or if the optimizers/folders mucked things up.
jeff