llvm-project/llvm/lib/MC
Nikita Popov 8e7d771cf9 [MC] Use subclass data for MCExpr to reduce memory usage
MCExpr has a bunch of free space that is currently going to waste.
Repurpose it as 24 bits of subclass data, which is enough to reduce
the size of all subclasses by 8 bytes. This gives us some respectable
savings for debuginfo builds. Here are the max-rss reductions for the
fat LTO link step:

    kc.link               238MiB   231MiB   (-2.82%)
    sqlite3.link          258MiB   250MiB   (-3.27%)
    consumer-typeset.link 152MiB   148MiB   (-2.51%)
    bullet.link           197MiB   192MiB   (-2.30%)
    tramp3d-v4.link       578MiB   567MiB   (-1.92%)
    pairlocalalign.link    92MiB    90MiB   (-1.98%)
    clamscan.link         230MiB   223MiB   (-2.81%)
    lencod.link           242MiB   235MiB   (-2.67%)
    SPASS.link            235MiB   230MiB   (-2.23%)
    7zip-benchmark.link   450MiB   435MiB   (-3.25%)

Differential Revision: https://reviews.llvm.org/D77939
2020-04-15 20:02:11 +02:00
..
MCDisassembler [Disassembler] Delete the VStream parameter of MCDisassembler::getInstruction() 2020-01-11 13:34:52 -08:00
MCParser [MC] Reorganize and improve macro tests 2020-04-12 22:54:01 -07:00
CMakeLists.txt [NFC][XCOFF][AIX] Refactor get/setContainingCsect 2020-04-03 13:33:12 +00:00
ConstantPools.cpp [MCStreamer] De-capitalize EmitValue EmitIntValue{,InHex} 2020-02-14 23:08:40 -08:00
ELFObjectWriter.cpp [MC][ELF] Rename MC related "Associated" to "LinkedToSym" 2020-02-06 11:31:04 -08:00
LLVMBuild.txt
MCAsmBackend.cpp [MC] Delete MCCodePadder 2019-12-09 19:21:31 -08:00
MCAsmInfo.cpp [MC] Default MCAsmInfo::UseIntegratedAssembler to true 2020-04-11 10:13:52 -07:00
MCAsmInfoCOFF.cpp [MC] Default MCAsmInfo::UseIntegratedAssembler to true 2020-04-11 10:13:52 -07:00
MCAsmInfoDarwin.cpp [MC] Default MCAsmInfo::UseIntegratedAssembler to true 2020-04-11 10:13:52 -07:00
MCAsmInfoELF.cpp [MC] Delete unused MCAsmInfoELF::UsesNonexecutableStackSection after EM_WEBASSEMBLY was removed in D48744 2019-12-15 15:43:30 -08:00
MCAsmInfoWasm.cpp
MCAsmInfoXCOFF.cpp [XCOFF][AIX] Differentiate usage of label symbol and csect symbol 2019-11-08 09:30:10 -05:00
MCAsmMacro.cpp MCAsmMacro: add `#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)` to some dump() declarations 2019-08-20 04:14:43 +00:00
MCAsmStreamer.cpp [MC] Default MCContext::UseNamesOnTempLabels to false and only set it to true for MCAsmStreamer 2020-02-25 18:23:10 -08:00
MCAssembler.cpp [MC] Recalculate fragment offsets after relaxation 2020-03-17 14:48:05 -07:00
MCCodeEmitter.cpp
MCCodeView.cpp [MC] Add MCStreamer::emitInt{8,16,32,64} 2020-02-29 09:40:21 -08:00
MCContext.cpp [WebAssembly][MC] Fix leak of std::string members in MCSymbolWasm 2020-04-07 10:38:43 -07:00
MCDwarf.cpp [MCDwarf] Change emitListsTableHeaderStart to use a reference and fold Start/End symbols generation into it 2020-03-03 16:20:40 -08:00
MCELFObjectTargetWriter.cpp
MCELFStreamer.cpp [MC] Add MCStreamer::emitInt{8,16,32,64} 2020-02-29 09:40:21 -08:00
MCExpr.cpp [MC] Use subclass data for MCExpr to reduce memory usage 2020-04-15 20:02:11 +02:00
MCFragment.cpp Adjust debug output for MCRelaxableFragment to include the size so that sanity checking relaxation offsets from -debug output is easier 2020-03-13 16:22:46 -07:00
MCInst.cpp
MCInstPrinter.cpp [TableGen] Support combining AssemblerPredicates with ORs 2020-03-13 17:13:51 +00:00
MCInstrAnalysis.cpp Revert "Forward declare Optional<T> in STLExtras.h" 2019-11-13 16:36:21 -08:00
MCInstrDesc.cpp [MC] Move deprecation infos from MCTargetDesc to MCInstrInfo 2020-03-29 21:20:40 +02:00
MCInstrInfo.cpp [MC] Move deprecation infos from MCTargetDesc to MCInstrInfo 2020-03-29 21:20:40 +02:00
MCLabel.cpp
MCLinkerOptimizationHint.cpp
MCMachOStreamer.cpp [MC] Allow Stackmap sections after DWARF in MachO. 2020-03-09 18:33:32 -07:00
MCMachObjectTargetWriter.cpp
MCNullStreamer.cpp [MC] De-capitalize MCStreamer::Emit{Bundle,Addrsig}* etc 2020-02-15 09:11:48 -08:00
MCObjectFileInfo.cpp [DWARF5] Added support for emission of debug_macro section. 2020-04-06 17:45:10 +05:30
MCObjectStreamer.cpp [X86][MC] Make -x86-pad-max-prefix-size compatible with --mc-relax-all 2020-04-11 11:30:15 +08:00
MCObjectWriter.cpp
MCRegisterInfo.cpp MCRegisterInfo: Merge getLLVMRegNum and getLLVMRegNumFromEH 2019-09-24 09:31:02 +00:00
MCSchedule.cpp
MCSection.cpp Revert rGd5d8569df14e95e2c53d167bd1b37995bcbec565 "Fix static analysis warnings about classes with virtual methods not having virtual destructors" 2020-03-21 11:39:34 +00:00
MCSectionCOFF.cpp
MCSectionELF.cpp [MC][ELF] Rename MC related "Associated" to "LinkedToSym" 2020-02-06 11:31:04 -08:00
MCSectionMachO.cpp
MCSectionWasm.cpp
MCSectionXCOFF.cpp [AIX] Emit TOC entries for ASM printing 2019-11-27 17:20:55 -05:00
MCStreamer.cpp [MC] Use a byte_swap in emitIntValue instead of doing it in a loop. NFCI. 2020-04-06 15:51:24 +02:00
MCSubtargetInfo.cpp [ADT/STLExtras.h] - Add llvm::is_sorted wrapper and update callers. 2020-04-14 14:11:02 +03:00
MCSymbol.cpp
MCSymbolELF.cpp [MC] Delete STT_SECTION special cases from MCSymbolELF::setType and setBinding 2019-12-15 20:39:25 -08:00
MCSymbolXCOFF.cpp [NFC][XCOFF][AIX] Refactor get/setContainingCsect 2020-04-03 13:33:12 +00:00
MCTargetOptions.cpp [ms] [llvm-ml] Add a draft MASM parser 2020-02-16 12:30:46 -05:00
MCTargetOptionsCommandFlags.cpp Replace MCTargetOptionsCommandFlags.inc and CommandFlags.inc by runtime registration 2020-03-17 14:01:30 +01:00
MCValue.cpp [MC] Ignore VK_WEAKREF in MCValue::getAccessVariant 2019-12-15 16:05:46 -08:00
MCWasmObjectTargetWriter.cpp [WebAssembly] Make __attribute__((used)) not imply export. 2019-08-29 22:40:00 +00:00
MCWasmStreamer.cpp [MC] De-capitalize MCStreamer::Emit{Bundle,Addrsig}* etc 2020-02-15 09:11:48 -08:00
MCWin64EH.cpp [MC] Add MCStreamer::emitInt{8,16,32,64} 2020-02-29 09:40:21 -08:00
MCWinCOFFStreamer.cpp [MC] De-capitalize MCStreamer::Emit{Bundle,Addrsig}* etc 2020-02-15 09:11:48 -08:00
MCWinEH.cpp
MCXCOFFObjectTargetWriter.cpp Boilerplate for producing XCOFF object files from the PowerPC backend. 2019-07-09 19:21:01 +00:00
MCXCOFFStreamer.cpp [XCOFF] Don't emit non-external labels in the symbol table and handle MCSA_LGlobal 2020-02-27 13:37:13 -05:00
MachObjectWriter.cpp [MachO] Pad section data to pointer size bytes 2020-02-11 14:52:21 -08:00
StringTableBuilder.cpp Adds support for writing the .bss section for XCOFF object files. 2019-08-20 22:03:18 +00:00
SubtargetFeature.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
WasmObjectWriter.cpp [WebAssembly] Emit .llvmcmd and .llvmbc as custom sections 2020-04-14 13:24:18 -07:00
WinCOFFObjectWriter.cpp [COFF] Assign unique names to autogenerated .weak.<name>.default symbols 2020-03-13 22:44:55 +02:00
XCOFFObjectWriter.cpp [XCOFF][AIX] Relocation support for SymB 2020-04-15 14:03:54 +00:00