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