llvm-6502/lib/MC
David Blaikie 6715d6ec2e 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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@207167 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-25 00:48:01 +00:00
..
MCDisassembler [C++] Use 'nullptr'. 2014-04-24 06:44:33 +00:00
MCParser [C++] Use 'nullptr'. 2014-04-24 06:44:33 +00:00
CMakeLists.txt Create MCTargetOptions. 2014-04-23 11:16:03 +00:00
ELFObjectWriter.cpp Fix quadratic performance during debug compression due to sections x symbols iteration. 2014-04-25 00:48:01 +00:00
LLVMBuild.txt
MachObjectWriter.cpp [Modules] Make Support/Debug.h modular. This requires it to not change 2014-04-21 22:55:11 +00:00
Makefile
MCAsmBackend.cpp Simplify a really complicated check for Arch == X86_64. 2014-03-11 21:22:57 +00:00
MCAsmInfo.cpp [C++11] More 'nullptr' conversion or in some cases just using a boolean check instead of comparing to nullptr. 2014-04-13 04:57:38 +00:00
MCAsmInfoCOFF.cpp Re-commit: Demote EmitRawText call in AsmPrinter::EmitInlineAsm() and remove hasRawTextSupport() call 2014-02-13 14:44:26 +00:00
MCAsmInfoDarwin.cpp MachO: actually set linker-private prefix at MC level. 2014-03-29 07:33:24 +00:00
MCAsmInfoELF.cpp
MCAsmStreamer.cpp Fix memory leak of MCSymbolData in MCAsmStreamer. 2014-04-24 14:33:36 +00:00
MCAssembler.cpp [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE 2014-04-22 03:04:17 +00:00
MCAtom.cpp
MCCodeEmitter.cpp
MCCodeGenInfo.cpp
MCContext.cpp Change the prototype for MCContext::FatalError() so it can be called 2014-04-22 21:42:18 +00:00
MCDisassembler.cpp Remove redundant symbolization support from MCDisassembler interface. 2014-04-11 20:07:58 +00:00
MCDwarf.cpp [C++11] More 'nullptr' conversion or in some cases just using a boolean check instead of comparing to nullptr. 2014-04-13 04:57:38 +00:00
MCELF.cpp
MCELFObjectTargetWriter.cpp Completely rewrite ELFObjectWriter::RecordRelocation. 2014-03-29 06:26:49 +00:00
MCELFStreamer.cpp Fix the assembler to print a better relocatable expression error 2014-04-22 17:27:29 +00:00
MCExpr.cpp Spread some const around for non-mutating uses of MCSymbolData. 2014-04-24 16:59:40 +00:00
MCExternalSymbolizer.cpp [C++11] More 'nullptr' conversion or in some cases just using a boolean check instead of comparing to nullptr. 2014-04-13 04:57:38 +00:00
MCFixup.cpp Remove a variable from r206192 that is only used in an assert. 2014-04-14 17:21:50 +00:00
MCFunction.cpp Use std::unique_ptr to manage MCBasicBlocks in MCFunction. 2014-04-15 04:56:29 +00:00
MCInst.cpp [C++11] More 'nullptr' conversion or in some cases just using a boolean check instead of comparing to nullptr. 2014-04-13 04:57:38 +00:00
MCInstPrinter.cpp
MCInstrAnalysis.cpp
MCLabel.cpp
MCLinkerOptimizationHint.cpp [ARM64][CollectLOH] Add some comments to explain how the LOHs 2014-04-02 01:02:28 +00:00
MCMachObjectTargetWriter.cpp
MCMachOStreamer.cpp Add range access to MCAssembler's symbol collection. 2014-04-18 18:24:25 +00:00
MCModule.cpp Use unique_ptr to own MCFunctions within MCModule. 2014-04-15 05:15:19 +00:00
MCModuleYAML.cpp Use unique_ptr to own MCFunctions within MCModule. 2014-04-15 05:15:19 +00:00
MCNullStreamer.cpp Fix the assembler to print a better relocatable expression error 2014-04-22 17:27:29 +00:00
MCObjectDisassembler.cpp [Modules] Make Support/Debug.h modular. This requires it to not change 2014-04-21 22:55:11 +00:00
MCObjectFileInfo.cpp AArch64/ARM64: port across stub handling for ELF C++ exceptions. 2014-04-16 11:52:55 +00:00
MCObjectStreamer.cpp Fix the assembler to print a better relocatable expression error 2014-04-22 17:27:29 +00:00
MCObjectSymbolizer.cpp [C++11] More 'nullptr' conversion or in some cases just using a boolean check instead of comparing to nullptr. 2014-04-13 04:57:38 +00:00
MCObjectWriter.cpp
MCRegisterInfo.cpp
MCRelocationInfo.cpp [C++11] More 'nullptr' conversion or in some cases just using a boolean check instead of comparing to nullptr. 2014-04-13 04:57:38 +00:00
MCSection.cpp
MCSectionCOFF.cpp MC: honour IMAGE_SCN_CNT_INITIALIZED_DATA 2014-04-23 21:29:34 +00:00
MCSectionELF.cpp
MCSectionMachO.cpp [C++11] More 'nullptr' conversion or in some cases just using a boolean check instead of comparing to nullptr. 2014-04-13 04:57:38 +00:00
MCStreamer.cpp Fix the assembler to print a better relocatable expression error 2014-04-22 17:27:29 +00:00
MCSubtargetInfo.cpp Reverting r199886 (Prevent repetitive warnings for unrecognized processors and features) 2014-01-25 16:56:18 +00:00
MCSymbol.cpp Revert "Add back r203962, r204028 and r204059." 2014-03-19 00:13:43 +00:00
MCSymbolizer.cpp Move MCSymbolizer's constructor into header. It's trivial - there's no need for 2014-03-27 02:42:52 +00:00
MCTargetOptions.cpp Create MCTargetOptions. 2014-04-23 11:16:03 +00:00
MCValue.cpp [C++11] More 'nullptr' conversion or in some cases just using a boolean check instead of comparing to nullptr. 2014-04-13 04:57:38 +00:00
MCWin64EH.cpp
SubtargetFeature.cpp [C++11] More 'nullptr' conversion or in some cases just using a boolean check instead of comparing to nullptr. 2014-04-13 04:57:38 +00:00
WinCOFFObjectWriter.cpp Spread some const around for non-mutating uses of MCSymbolData. 2014-04-24 16:59:40 +00:00
WinCOFFStreamer.cpp [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE 2014-04-22 03:04:17 +00:00