llvm-mirror/lib
David Blaikie 32a1942110 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
2014-04-25 00:48:01 +00:00
..
Analysis [LCG] Switch a weird do/while loop that actually couldn't fail its 2014-04-24 21:19:30 +00:00
AsmParser Add 'musttail' marker to call instructions 2014-04-24 20:14:34 +00:00
Bitcode Add 'musttail' marker to call instructions 2014-04-24 20:14:34 +00:00
CodeGen Revert "This reapplies r207130 with an additional testcase+and a missing check for" 2014-04-25 00:42:50 +00:00
DebugInfo [DWARF parser] Make a few methods non-public 2014-04-24 23:08:56 +00:00
ExecutionEngine [C++] Use 'nullptr'. 2014-04-24 06:44:33 +00:00
IR Add 'musttail' marker to call instructions 2014-04-24 20:14:34 +00:00
IRReader [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-15 06:32:26 +00:00
LineEditor [CMake] Use LINK_LIBS instead of target_link_libraries(). 2014-02-26 06:41:29 +00:00
Linker [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-15 06:32:26 +00:00
LTO Create MCTargetOptions. 2014-04-23 11:16:03 +00:00
MC Fix quadratic performance during debug compression due to sections x symbols iteration. 2014-04-25 00:48:01 +00:00
Object [yaml2obj][ELF] Remove unnecessary space between namespace name and 2014-04-23 17:30:29 +00:00
Option Protect the ArgList dtor 2014-04-20 23:59:00 +00:00
ProfileData ProfileData: Avoid unnecessary copies of CounterData 2014-04-23 18:50:16 +00:00
Support cl::ParseCommandLineOptions(): Use StringRef to receive sys::path::filename() instead of std::string. 2014-04-23 14:51:23 +00:00
TableGen [C++11] Make use of 'nullptr' in TableGen library. 2014-04-09 04:50:04 +00:00
Target X86: Don't transform shifts into ands when the sign bit is tested. 2014-04-24 20:51:37 +00:00
Transforms Revert "This reapplies r207130 with an additional testcase+and a missing check for" 2014-04-25 00:42:50 +00:00
CMakeLists.txt ProfileData: Introduce the InstrProfReader interface and a text reader 2014-03-21 17:24:48 +00:00
LLVMBuild.txt ProfileData: Introduce the InstrProfReader interface and a text reader 2014-03-21 17:24:48 +00:00
Makefile ProfileData: Introduce the InstrProfReader interface and a text reader 2014-03-21 17:24:48 +00:00