Should -fcross-jumping be part of -O1?

Zack Weinberg zack@codesourcery.com
Tue Dec 2 17:23:00 GMT 2003


David Carlton <carlton@kealia.com> writes:

> On Tue, 02 Dec 2003 00:26:07 -0800, "Zack Weinberg"
> <zack@codesourcery.com> said:
>
>> -O0    No optimization whatsoever.  
>>        Except maybe do obviously-dead code elimination.
>
> This is obviously a very special case, but dead code elimination
> sometimes makes it difficult to write tests for GDB's test suite.  And
> even when working on real programs I occasionally insert dead code as
> a place where I can set breakpoints.  So, personally, I'd prefer that
> -O0 be pretty stupid.  (Though I don't mind if it's not the default.)

That's a good point.  We seem to be trending in the direction of
having -O0 do a little bit of optimization, not much, is the main
reason I threw that in.

I think I meant unreachable code, not dead code; does that change your
opinion?

> One current side effect of optimization is that it enables lots of
> warnings (e.g. unitialized variable detection); if we're going to list
> explicit goals for different optimization levels, I would have that be
> a goal for -O1 (and of course for higher optimization levels).

One of the reasons I suggested -O1 be default is so that users would
get the warnings that require flow information with just -Wall.  I've
never liked that the set of warnings issued depends on the
optimization level.

>> I do not think it is appropriate to exclude optimizations from any
>> level just because they mess up debugging info
>
> I disagree with this for -O0.

Well, -O0 shouldn't be doing any of those, just because it isn't
supposed to be doing optimizations in general, but could you explain
your opinion a little more?  Or is this just reiterating what you said
above?

zw



More information about the Gcc mailing list