Discrepency between compiler and docs for optimzation flags

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

I'm trying to understand something that appears to me that it shouldn't be happening.  For the project I'm working on, I'm one of 6 developers, we were using optimization option -Os.  For reasons beyond the scope of this question, we've switched from this to -O2.  On my CentOS 6.5, 64 bit, system, I'm using gcc 4.4.7.  On the CentOS 6.0 - 6.2, 32 bit systems we build for, we're using gcc 4.4.4.  I could find docs for 4.4.7 online (https://gcc.gnu.org/onlinedocs/gcc-4.4.7/gcc/).

>From these docs, I found the following: 
-Os disables the following optimization flags:

          -falign-functions  -falign-jumps  -falign-loops 
          -falign-labels  -freorder-blocks  -freorder-blocks-and-partition 
          -fprefetch-loop-arrays  -ftree-vect-loop-version
     
Today, while doing some further research into optimization options, and investigating the -march= option, I found a gem of an option which I didn't know existed before: --help=.  After a little bit of experimentation I did the following:

$ gcc -Q -O2 --help=optimizers > O2settings
$ gcc -Q -Os --help=optimizers > Ossettings

I then diff'd them: gvimdiff O2settings Ossettings.  What I wasn't expecting is that the only difference between the two files is:

O2settings:
  -finline-functions          		[disabled]

Ossettings:
  -finline-functions          		[enabled]


Since I'm new to these options, am I doing it incorrectly?  Is this compiler implementation broken?  Is this normal for RHEL (from which CentOS is derived)?  Any help in understanding this would be good.

Just for the record the following options, which the docs say should be different but aren't:

align-functions:  		enabled
align-jumps:			enabled
align-labels:			enabled
align-loops:			disabled
reorder-blocks:			enabled
reorder-blocks-and-patition:	disabled
prefetch-loop-arrays:		disabled
tree-vect-loop-version:		enabled

Andy





[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux