|Non-Confidential||PDF version||ARM DUI0472M|
|Home > Getting Started with the Compiler > Minimizing code size by eliminating unused functions during compilation|
Feedback from the linker to the compiler enables efficient elimination of unused functions.
--feedback=to create a feedback file.
--feedback_typeto control which feedback the linker generates.
By default, the linker generates feedback to eliminate unused functions. This is
--feedback_type=unused,noiw. The linker can also generate feedback to avoid
compiling functions for interworking that are never used in an interworking context. Use
the linker option
--feedback_type=unused,iw to eliminate both types of unused function.
Reduction of compilation required for interworking is only applicable to ARMv4T architectures. ARMv5T and later processors can interwork without penalty.
--feedback=to feed the feedback file to the compiler.
The compiler uses the feedback file generated by the linker to compile the source code in a way that enables the linker to subsequently discard the unused functions.
To obtain maximum benefit from linker feedback, do a full compile and link at least twice. A single compile and link using feedback from a previous build is normally sufficient to obtain some benefit.
Always ensure that you perform a full clean build immediately before using the linker feedback file. This minimizes the risk of the feedback file becoming out of date with the source code it was generated from.
You can specify the
--feedback= option even
when no feedback file exists. This enables you to use the same build commands or makefile
regardless of whether a feedback file exists, for example:
armcc -c --feedback=unused.txt test.c -o test.o armlink --feedback=unused.txt test.o -o test.axf
The first time you build the application, it compiles normally but the compiler warns you that it cannot read the specified feedback file because it does not exist. The link command then creates the feedback file and builds the image. Each subsequent compilation step uses the feedback file from the previous link step to remove any unused functions that are identified.