In gcc-3.3, the -finline-limit had little effect. You could turn that knob all you wanted, and code size didn't change much. In gcc-4.0, the inliner's both better, and (I think) the meaning of the number with -finline-limit changed. As a result, the -finline-limit has a much bigger effect on binary size.

At Apple, we had to warn teams to re-examine their inline settings when we moved the OS to 4.0. We saw several Mac OS X projects whose binaries grew 10-30% when built with gcc-4.0. With gcc-3.3, changing the -finline-limit from 0 to 3000 caused very little change in binary size. With gcc-4.0, we'd see the 10-30% increases. Similarly, compile times didn't vary much with gcc-3.3 as -finline- limit was tweaked. When we moved to gcc-4.0, we'd see compiles slow down by 50% with higher limits.


Robert

Reply via email to