Ruud Vlaming wrote:
On Monday 16 February 2009 15:11, Robert von Knobloch wrote:
On inspection I find that the compiler has 'in-lined' at least 3
function calls that I had written as a function to achieve compactness.
Is there any way I can stop this, or is this a bug?
There has been some discussions about this before. After trying many
different optimization settings i concluded that
--param inline-call-cost=2
is -overall- the best setting for small projects. However, if you need to
minimize just one app, further reduction might be possible.
For example with things like:
-fno-inline-small-functions
-fno-split-wide-types
-fno-tree-scev-cprop
Also, you can prohibit the compiler to inline on a function by function basis.
Just to be sure you have no dead code around, include:
-ffunction-sections -Wl,--gc-sections -Wl,--relax
An alternative to using -ffunction-sections is simply not to write extra
functions - that should be easy enough for a small program!
One note about inlining - you should not disable all inlining, just
limit automatic inlining of small functions (as you've done here).
Automatic inlining of functions that are only used once is always a win
in time and space.
Another important point in getting code as small as possible is to use
-combine and -fwhole-program - it can significantly improve code,
especially for functions that are called only once but live in different
modules.
_______________________________________________
AVR-GCC-list mailing list
AVR-GCC-list@nongnu.org
http://lists.nongnu.org/mailman/listinfo/avr-gcc-list