profile-driven optimization and the linker?

Will Cohen wcohen@redhat.com
Mon Nov 29 16:30:00 GMT 2004


Dan Kegel wrote:

> 
> http://gcc.gnu.org/ml/gcc-patches/2001-11/msg00935.html says
> "Steve Christiansen tried using gprof output to create a linker
> script that orders functions based on run-time call graphs
> and call counts, but couldn't show that it made a difference, based on 
> SPEC CPU2000 results."
> (Since the --function-ordering option was added to gprof at
> the end of 1995, I imagine Steve Christiansen used it.
> On the other hand, since glibc aborted with more
> than 64K symbols when run with -pg until late 2002,
> maybe he ran into trouble there.)

SPEC CPU2000 is not likely to be a big winner for reordering fuctions. 
There are small sections of code that consume most of the excution time 
for most of the benchmarks. Bigger winners are going to be code where 
things do not fit neatly into a cache or a limited number of pages, e.g. 
code using many shared libraries.

On some versions of the Pentium III there are only 32 instruction TLB 
entries, each for a 4K page. That isn't going to go very far when there 
are over 100 shared libraries mapped as in the case of openoffice. Each 
library has to be on a separate page.

-Will



More information about the Gcc mailing list