You can perform multiple compilations using the same feedback
file. The compiler places each unused function identified in the
feedback file into its own ELF section in the corresponding object
file.
The feedback file contains information about a previous build.
Because of this:
The feedback file
might be out of date. That is, a function previously identified
as being unused might be used in the current source code. The linker
removes the code for an unused function only if it is not used in
the current source code.
Note
For this reason, eliminating
unused functions using linker feedback is a safe optimization, but
there might be a small impact on code size.
The usage requirements for reducing compilation
required for interworking are more strict than for eliminating unused
functions. If you are reducing interworking compilation, it is critical
that you keep your feedback file up to date with the source code
that it was generated from.
You have to do a full compile and link at least
twice to get the maximum benefit from linker feedback. However,
a single compile and link using feedback from a previous build is
usually sufficient.