This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: some questions about GCC's options
- From: Ian Lance Taylor <iant at google dot com>
- To: ohav chochmah <philomath868 at gmail dot com>
- Cc: gcc-help at gcc dot gnu dot org
- Date: Thu, 31 May 2012 23:21:36 -0700
- Subject: Re: some questions about GCC's options
- References: <CABOpGfvcfbsb1BZvaHqZjQZaq1EV8QOo9pyMuvdq-PeRs9-LGw@mail.gmail.com>
ohav chochmah <philomath868@gmail.com> writes:
> first, is momit-leaf-frame-pointer bad for debugging (in the way
> fomit-frame-pointer can be)?
It's not as bad. It may still trip up some debuggers.
> if not, why is it disabled by default
> even when optimizing (as -Q --help=target | grep omit reveals)?
When optimizing on x86 or x86_64, -fomit-frame-pointer is the default
anyhow. -fomit-frame-pointer essentially implies
-momit-leaf-frame-pointer.
> next, the manual mentions that fno-fat-lto-objects improves
> compilation time over plain LTO, but requires the whole toolchain to
> be aware of LTO and support plugins, which is why it's not (yet) the
> default. how can I know for certain if the toolchain I'm using meets
> the criteria (seems to be the case)?
Use the most recent GNU binutils release.
> similarly, mtls-dialect=gnu2 is better then the default gnu, "but it
> may add compile- and run-time requirements that cannot be satisfied on
> all systems." how can I test for them?
Build a program with it and see. Basically your GNU binutils need to be
fairly new and your glibc needs to be 2.9 or later.
> is it true that mfpmath=sse can result in poor code when using glibc?
> (maybe I shouldn't ask that here...)
For x86_64 -mfpmath=sse is the default.
> why is msse disabled by default even after march=native, while
> msse[234], msse4.[12] and mssse3 are all enabled?
Not sure--what makes you think this is the case?
> isn't the CRC32 instruction part of sse4.2?, why is mcrc32 disabled by
> default even when sse4.2 is enabled?
It's not. Don't be confused by the fact that -msse4.2 does not
automatically turn on -mcrc32. Everything that is available when using
-mcrc32 is also available when using -msse4.2.
Ian