Code Bloat using GCC 3.2 on Linux
Ramana Radhakrishnan
ramana.radhakrishnan@codito.com
Thu Dec 16 05:33:00 GMT 2004
Hi Gaurav,
> Hello,
>
> The help on the options that you suggest indicates "When you specify
> these options, the assembler and linker will create larger object and
> executable files and will also be slower".
-fdata-sections and -ffunction-sections puts the code in different
sections and with the linker flag --gc-sections you can remove code that
is never called or data which is never used. This does reduce code size
provided the --gc-sections is implemented in the linker. Could you try
it on your case and see what happens ?
The reason the object files might be slightly larger is that the
encodings chosen for the instructions might be larger because of
addressing mode issues, but with --gc-sections and linker relaxations
enabled the overall code size would typically be smaller because of
possible removal of, code that is never called or data that is never used.
Also 3.2 is no longer supported by the community, so you might not see
too much interest in looking at a 3.2 problem. The versions that are
supported today are 3.3 and 3.4 . You could try either and see if there
are any improvements or they help solve your problem.
Do you have a number of inline functions in your code ? You could try
tuning that with -finline-limit-X, where X may be reasonably set to a
value between 100 and 5000.
Can you provide a sample testcase where the size difference appears to
be huge ?
cheers
Ramana
More information about the Gcc-help
mailing list