dead function elimination
Andrew Haley
aph@redhat.com
Thu Nov 9 10:15:00 GMT 2006
jimmy writes:
> Nick Clifton wrote:
> > Hi Jimmy,
> >
> >> Can gcc or ld perform dead procedure elimination apart from using the
> >> combination of --gc-sections/-ffunction-sections?
> >
> > (Why are you excluding the --gc-sections / -ffunction-sections pairing
> > which were designed precisely for this purpose ?)
> >
> > The short answer is yes. Gcc can and will eliminate unused local
> > procedures, and with its --whole-program option it can even eliminate
> > unused non-local procedures.
> >
> > But your question implies that you are asking if between them the linker
> > and compiler can eliminate unused procedures without recompilation of
> > all the sources, and in this case the answer is no.
>
> I thght the linker alone was supposed to be able to do
> dead-procedure-elimination. After all can't the linker determine which
> procedures are unreferenced in the final executable?
>
> If i'm not mistaken the diablo linker can do this?
GNU ld can do this too. It does it if you compile with
-ffunction-sections.
Andrew.
More information about the Gcc-help
mailing list