This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Profiling gcc building Mozilla


I performed some experiments using OProfile on the Red Hat Enterprise
Linux Beta using a rpmbuild of the Mozilla web broswer on Athon,
Pentium 4, and Itanium 2.  The build process is CPU bound and it
excercises the compiler. The experiments used the GCC 3.2 toolchain and
binutils 2.14.90.0.4 in the beta.  A couple hotspots showed up for the
ia64 tool chain.

The HAVE_POST_INCREMENT and HAVE_POST_DECREMENT defines for the GCC's
ia64 backend resulted in a large amount (17.5%) being spend in the
ia64_secondary_reload_class, regclass, and true_regnum functions for
cc1plus.  There is a triple nested loop in regclass that is enabled
bout the defines. With the HAVE_POST_INCREMENT and HAVE_POST_DECREMENT
commented out time in cc1plus dropped by 19% and time in cc1 dropped
by 10%. Overall user build time on ia64 dropped from 87 minutes to 74
minutes.

The ld on ia64 takes an order magnitude longer on ia64 than on
p4. Over 50% of the time in the ia64 ld is spent in two functions:
elf64_ia64_global_dyn_sym_thunk and elf64_ia64_local_dyn_sym_thunk.

There is more information in the paper (wwc2003a.ps) at:

http://people.redhat.com/wcohen/wwc2003/

-Will


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]