Sergei Poselenov writes: > Hello all, > > I'm using the ppc-linux gcc-4.2.2 compiler and noted the code > size have increased significantly (about 40%!), comparing with > old 4.0.0 when using the -Os option. Same code, same compile- > and configuration-time options. Binutils are differ > (2.16.1 vs 2.17.50), though. > > I've looked at the CSiBE testing results for ppc-elf with -Os, > comparing gcc_4_0_0 with mainline and found that the mainline > actually optimizes better, at least for the CSiBE test environment. > After some analysis I've came to the following results: > Number of packages in the CSiBE test environment: 863 > N of packages where mainline GCC optimizes better: 290 > N of packages where mainline GCC optimizes worse: 436 > > And the regression in code size is up to 40%, like in my case.
40% seems severe, but it may be an outlier. What is the average increase in code size, including the packages where it got better? > What I'm missing here? Apparently, just "-Os" is not enough to > get the best size-optimized code? Not necessarily. -Os is mostly [*] the same as -O2 but with optimizations that might reasonably be expected to cause code size increase disabled. You might find some better combination of options for your code base. Andrew. [*] Full disclosure: There are a few optimizations, such as code hoisting, that are specially used with -Os. There are also some passes with special tuning for -Os. -- Red Hat UK Ltd, Amberley Place, 107-111 Peascod Street, Windsor, Berkshire, SL4 1TE, UK Registered in England and Wales No. 3798903
