diff options
| author | David Blaikie <dblaikie@gmail.com> | 2014-04-25 00:48:01 +0000 |
|---|---|---|
| committer | David Blaikie <dblaikie@gmail.com> | 2014-04-25 00:48:01 +0000 |
| commit | 39fa6a285ca47392c7ab6546d9ca1d93d1b12fe6 (patch) | |
| tree | 01a0fae01a477c36e313c9a66d5c816437159963 /llvm/tools/llvm-objdump/llvm-objdump.cpp | |
| parent | 6e5de2ea0672810a2d9578f17825002989fa1b1a (diff) | |
| download | llvm-39fa6a285ca47392c7ab6546d9ca1d93d1b12fe6.zip llvm-39fa6a285ca47392c7ab6546d9ca1d93d1b12fe6.tar.gz llvm-39fa6a285ca47392c7ab6546d9ca1d93d1b12fe6.tar.bz2 | |
Fix quadratic performance during debug compression due to sections x symbols iteration.
When fixing the symbols in each compressed section we were iterating
over all symbols for each compressed section. In extreme cases this
could snowball severely (5min uncompressed -> 35min compressed) due to
iterating over all symbols for each compressed section (large numbers of
compressed sections can be generated by DWARF type units).
To address this, build a map of the symbols in each section ahead of
time, and access that map if a section is being compressed. This brings
compile time for the aforementioned example down to ~6 minutes.
llvm-svn: 207167
Diffstat (limited to 'llvm/tools/llvm-objdump/llvm-objdump.cpp')
0 files changed, 0 insertions, 0 deletions
