llvm-6502/lib/MC
Rafael Espindola 7c4f3dcc5e Produce a single string table in a ELF .o
Normally an ELF .o has two string tables, one for symbols, one for section
names.

With the scheme of naming sections like ".text.foo" where foo is a symbol,
there is a big potential saving in using a single one.

Building llvm+clang+lld with master and with this patch the results were:

master:                          193,267,008 bytes
patch:                           186,107,952 bytes
master non unique section names: 183,260,192 bytes
patch non unique section names:  183,118,632 bytes

So using non usique saves 10,006,816 bytes, and the patch saves 7,159,056 while
still using distinct names for the sections.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238073 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-22 23:58:30 +00:00
..
MCDisassembler MC: Clean up method names in MCContext. 2015-05-18 18:43:14 +00:00
MCParser Move alignment from MCSectionData to MCSection. 2015-05-21 19:20:38 +00:00
CMakeLists.txt Move some methods to a new MCInstrDesc.cpp file to allow includes to be trimmed. NFC. 2015-05-15 21:29:43 +00:00
ConstantPools.cpp Move alignment from MCSectionData to MCSection. 2015-05-21 19:20:38 +00:00
ELFObjectWriter.cpp Produce a single string table in a ELF .o 2015-05-22 23:58:30 +00:00
LLVMBuild.txt Nuke MCAnalysis. 2014-09-02 22:32:20 +00:00
MachObjectWriter.cpp MC: Lift MCSymbolData::Index up to MCSymbol::Index, NFC 2015-05-22 05:54:01 +00:00
Makefile Nuke MCAnalysis. 2014-09-02 22:32:20 +00:00
MCAsmBackend.cpp Simplify a really complicated check for Arch == X86_64. 2014-03-11 21:22:57 +00:00
MCAsmInfo.cpp MC: Clean up method names in MCContext. 2015-05-18 18:43:14 +00:00
MCAsmInfoCOFF.cpp [MC] Use LShr for constant evaluation of ">>" on ELF/arm64--darwin. 2015-04-28 01:37:11 +00:00
MCAsmInfoDarwin.cpp [MC] Use LShr for constant evaluation of ">>" on ELF/arm64--darwin. 2015-04-28 01:37:11 +00:00
MCAsmInfoELF.cpp Move alignment from MCSectionData to MCSection. 2015-05-21 19:20:38 +00:00
MCAsmStreamer.cpp Move alignment from MCSectionData to MCSection. 2015-05-21 19:20:38 +00:00
MCAssembler.cpp MC: Lift MCSymbolData::Index up to MCSymbol::Index, NFC 2015-05-22 05:54:01 +00:00
MCCodeEmitter.cpp
MCCodeGenInfo.cpp MC: MCCodeGenInfo naming update. NFC. 2015-05-15 19:13:31 +00:00
MCContext.cpp MC: Shave a pointer off of MCSymbol::Name 2015-05-22 06:04:42 +00:00
MCDwarf.cpp Move alignment from MCSectionData to MCSection. 2015-05-21 19:20:38 +00:00
MCELF.cpp Add STB_GNU_UNIQUE to the ELF writer. 2015-01-23 04:44:35 +00:00
MCELFObjectTargetWriter.cpp Re-enable target-specific relocation table sorting and use it for Mips 2015-04-14 13:23:34 +00:00
MCELFStreamer.cpp Stop forwarding (get|set)Aligment from MCSectionData to MCSection. 2015-05-21 21:02:35 +00:00
MCExpr.cpp Move alignment from MCSectionData to MCSection. 2015-05-21 19:20:38 +00:00
MCInst.cpp Fixup. 2015-02-05 01:13:47 +00:00
MCInstPrinter.cpp Format: Modernize using variadic templates. 2015-02-15 22:15:41 +00:00
MCInstrAnalysis.cpp MC: Disassembled CFG reconstruction. 2013-05-24 01:07:04 +00:00
MCInstrDesc.cpp Remove 3 includes from MCInstrDesc.h and explicitly include them where needed 2015-05-15 21:58:42 +00:00
MCLabel.cpp
MCLinkerOptimizationHint.cpp MC: Take MCSymbol in MachObjectWriter::getSymbolAddress(), NFC 2015-05-20 00:02:39 +00:00
MCMachObjectTargetWriter.cpp
MCMachOStreamer.cpp Stop forwarding (get|set)Aligment from MCSectionData to MCSection. 2015-05-21 21:02:35 +00:00
MCNullStreamer.cpp Move alignment from MCSectionData to MCSection. 2015-05-21 19:20:38 +00:00
MCObjectFileInfo.cpp Move alignment from MCSectionData to MCSection. 2015-05-21 19:20:38 +00:00
MCObjectStreamer.cpp Stop forwarding (get|set)Aligment from MCSectionData to MCSection. 2015-05-21 21:02:35 +00:00
MCObjectWriter.cpp MC: Use MCSymbol in MCObjectWriter::isWeak(), NFC 2015-05-20 15:10:03 +00:00
MCRegisterInfo.cpp Make SubRegIndex size mandatory, following r183020. 2013-05-31 23:45:26 +00:00
MCSection.cpp Move alignment from MCSectionData to MCSection. 2015-05-21 19:20:38 +00:00
MCSectionCOFF.cpp MC: Emit COFF section flags in the "proper" order 2015-02-07 08:26:40 +00:00
MCSectionELF.cpp Use a comma after the unique keyword. 2015-04-06 16:34:41 +00:00
MCSectionMachO.cpp Implement unique sections with an unique ID. 2015-04-04 18:02:01 +00:00
MCStreamer.cpp Move alignment from MCSectionData to MCSection. 2015-05-21 19:20:38 +00:00
MCSubtargetInfo.cpp Reverting r237234, "Use std::bitset for SubtargetFeatures" 2015-05-13 10:28:46 +00:00
MCSymbol.cpp Move alignment from MCSectionData to MCSection. 2015-05-21 19:20:38 +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 Migrate ABIName to MCTargetOptions so that it can be shared between 2015-01-14 00:50:31 +00:00
MCValue.cpp Try to fix the build in MCValue.cpp 2015-02-05 01:23:14 +00:00
MCWin64EH.cpp Move alignment from MCSectionData to MCSection. 2015-05-21 19:20:38 +00:00
MCWinEH.cpp Move alignment from MCSectionData to MCSection. 2015-05-21 19:20:38 +00:00
StringTableBuilder.cpp MachObjectWriter: optimize the string table for common suffices 2014-10-06 17:05:19 +00:00
SubtargetFeature.cpp Reverting r237234, "Use std::bitset for SubtargetFeatures" 2015-05-13 10:28:46 +00:00
WinCOFFObjectWriter.cpp Stop forwarding (get|set)Aligment from MCSectionData to MCSection. 2015-05-21 21:02:35 +00:00
WinCOFFStreamer.cpp Stop forwarding (get|set)Aligment from MCSectionData to MCSection. 2015-05-21 21:02:35 +00:00
YAML.cpp Invert the MC -> Object dependency. 2014-07-03 02:01:39 +00:00