Should -fcross-jumping be part of -O1?
Nathanael Nerode
neroden@twcny.rr.com
Wed Dec 3 17:26:00 GMT 2003
Zack wrote:
>My suggested constellation of -O switches:
>
>-O0 No optimization whatsoever.
> Except maybe do obviously-dead code elimination.
>-O1 Optimize, but speed of compilation is more important than
> speed or size of generated code. Possibly this, not -O0,
> should be the default mode.
>
>-O3/-Ospeed
> Optimize for speed at the expense of size.
>-Os/-Osize
> Optimize for size at the expense of speed.
>-O2/-Obalanced
> Produce a balance of speed and size optimizations acceptable
> for most code.
I must agree with these choices. :-)
>Two factors that are *not* considered in any of these switches are
>ease of debugging, and scope (function/unit/program) of optimization.
>I do not think it is appropriate to exclude optimizations from any
>level just because they mess up debugging info,
I slightly disagree. I think optimizations which mess up debugging info
should be excluded from -O0 always. One of the primary purposes of "not
optimizing" is making debugging easier. I think messing up debugging info
should be allowed for all other optimization levels, though.
> and scope of
>optimization is a detail that shouldn't be exposed at the level of
>these switches. If it makes sense in terms of the speed/size/compile
>speed tradeoffs to do whole-program optimization at -O1 then we should
>do it at -O1. We can have -f switches for that.
I agree.
--
Nathanael Nerode <neroden at gcc.gnu.org>
http://home.twcny.rr.com/nerode/neroden/fdl.html
More information about the Gcc
mailing list