RFA: performance improvement for PowerPC disassembly

James Lemke jwlemke@codesourcery.com
Wed Mar 14 16:10:00 GMT 2012


The VLE port caused me to look at performance here.  Currently we use a simple 
linear search.  A binary search seemed like a big change with potential 
problems for matching the correct extended mnemonic.  Instead, I modified the 
existing linear search to start "near" the desired value rather than always at 
the beginning of the table.  This gives substantial performance gains with 
minimal new complexity.

On gcc1-power7.osuosl.org I built powerpc-unknown-linux-gnu with and w/o this 
patch.
These are median times:
$ time install/bin/objdump-00 -d /lib/libc.so.6 >/dev/null
real    0m1.539s
user    0m1.529s
sys     0m0.009s
$ time install/bin/objdump-01 -d /lib/libc.so.6 >/dev/null
real    0m0.870s
user    0m0.851s
sys     0m0.007s

Dejagnu test results before and after the patch are identical for gas, 
binutils, ld, gcc, g++, and gfortran.
A bootstrap of powerpc-unknown-linux-gnu is running now.

-- 
Jim Lemke
Mentor Graphics / CodeSourcery
Orillia Ontario,  +1-613-963-1073

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: dis-binutils-contrib-01a.diff
URL: <https://sourceware.org/pipermail/binutils/attachments/20120314/f46490f9/attachment.ksh>


More information about the Binutils mailing list