On Sat, Feb 02, 2002 at 03:08:47AM -0500, Jeff Garzik wrote:
> On Sat, Feb 02, 2002 at 02:42:36AM -0500, Daniel Jacobowitz wrote:
> > One piece of the necessary compiler help would be -ffunction-sections.
> > If they are in the same section in the same object file, they simply
> > can not be removed safely.
>
> Such as the patch that was mentioned earlier in this thread :)
Yes, the patch that he was objecting to :)
> > Relocation information for calls to local
> > functions is not reliably available at link time.
>
> With a smarter toolchain it could be.
>
> One will need a smarter toolchain in order to re-order functions
> anyway, which is an area where benchmarks on other compilers are
> showing benefits. (ie. moving "cold" functions to the end of the
> module, given profiling feedback)
No, the linker simply can not assume that this information is present.
That's a limitation of ELF. The right way to do this sort of
optimization is to compile every function into its own section and then
handle the (very small) performance cost of doing so by a relaxation
pass in the linker. You can't safely remove any part of an input
section, no matter what relocation information you think you have.
-- Daniel Jacobowitz Carnegie Mellon University MontaVista Software Debian GNU/Linux Developer - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Thu Feb 07 2002 - 21:00:24 EST