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] Problem with constant folding


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


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