2.15 Unused function code
Unused function code can unnecessarily increase code size. Feedback from the linker to the compiler can remove unused function code, minimizing code size.
Unused function code might occur in the following situations.
Where you have legacy functions that are no longer
used in your source code. Rather than manually remove the unused
function code from your source code, you can use linker feedback
to remove the unused object code automatically from the final image.
Where a function is inlined. Where an inlined function
is not declared as
static, the out-of-line function
code is still present in the object file, but there is no longer
a call to that code.
In addition, the linker can detect when an ARM function is being called
from a Thumb state, and when a Thumb function is being called from an ARM state.
You can use feedback from the linker to avoid compiling functions for
interworking that are never used in an interworking context.
Reduction of compilation required for interworking is only
applicable to ARMv4T architectures. ARMv5T and later processors
can interwork without penalty.
The linker option
--feedback= creates a feedback file, and the
--feedback_type option controls the different types of feedback