parallelized 'ld'?

Paul Hilfinger hilfingr@EECS.Berkeley.EDU
Tue Jul 15 02:35:00 GMT 2003


The more interesting question you should ask is "what makes our ld's
so slow?", to be asked just after "how slow is it?".  

You're doing a bunch of additions to relocate stuff, but in a
10,000,000-line C program, how much time are we talking about?
Suppose it's 100,000,000 additions (which I think is a very high
estimate).  Just how much processor time does it take to extract a bit
field, increment its contents, and store it back 100,000,000 times?
I'm glad you asked: on my several-year old UltraSparc, about 4
seconds.  How about the time to perform, let's say, 10,000,000
external-symbol lookups and definitions using a hashtable?  Using G++
strings and hash_maps, perhaps 25 seconds on the same equipment.  How
about to read and write 20MB of .o and executable files?  About a
second.  What kinds of numbers are you seeing for object file sizes
and ld times?

Paul Hilfinger




More information about the Binutils mailing list