hanchenye-llvm-project/llvm/tools
Adrian Prantl 29729f1529 Reduce the memory footprint of dsymutil. (NFC)
This (partially) fixes a regression introduced by
https://reviews.llvm.org/D43945 / r327399, which parallelized
DwarfLinker. This patch avoids parsing and allocating the memory for
all input DIEs up front and instead only allocates them in the
concurrent loop in the AnalyzeLambda. At the end of the loop the
memory from the LinkContext is cleared again.

This reduces the peak memory needed to link the debug info of a
non-modular build of the Swift compiler by >3GB.

rdar://problem/43444464

Differential Revision: https://reviews.llvm.org/D51078

llvm-svn: 340650
2018-08-24 20:41:08 +00:00
..
bugpoint Refactor ExecuteAndWait to take StringRefs. 2018-06-12 17:43:52 +00:00
bugpoint-passes Remove redundant includes from tools. 2017-12-13 21:31:10 +00:00
dsymutil Reduce the memory footprint of dsymutil. (NFC) 2018-08-24 20:41:08 +00:00
gold [gold] -thinlto-object-suffix-replace: don't append new suffix if path does not end with old suffix 2018-08-22 02:11:36 +00:00
llc [llc] Fix sanitizer failure. 2018-06-23 19:04:10 +00:00
lli [ORC] Rename VSO to JITDylib. 2018-08-17 21:18:18 +00:00
llvm-ar [Support] NFC: Allow modifying access/modification times independently in sys::fs::setLastModificationAndAccessTime. 2018-08-13 23:03:45 +00:00
llvm-as [ThinLTO] Parse module summary index from assembly 2018-06-26 13:56:49 +00:00
llvm-as-fuzzer make add_llvm_fuzzer calls slightly more consisten with other cmake 2018-05-11 17:58:52 +00:00
llvm-bcanalyzer [ADT] Replace std::isprint by llvm::isPrint. 2018-07-26 15:31:41 +00:00
llvm-c-test [C-API][DIBuilder] Added DIFlags in LLVMDIBuilderCreateBasicType 2018-08-19 23:39:47 +00:00
llvm-cat Pass a reference to a module to the bitcode writer. 2018-02-14 19:11:32 +00:00
llvm-cfi-verify [cfi-verify] Support cross-DSO 2018-08-24 15:21:58 +00:00
llvm-config [llvm-config] Use WithColor for printing errors. 2018-06-23 16:50:09 +00:00
llvm-cov [Coverage] Delete getCounterMismatches, it's dead code (NFC) 2018-08-07 22:25:22 +00:00
llvm-cvtres [llvm-cvtres] Allow parameters preceded by '-' in addition to '/' 2018-05-02 21:15:13 +00:00
llvm-cxxdump Fixing a typo; NFC. 2018-07-23 18:09:43 +00:00
llvm-cxxfilt Define InitLLVM to do common initialization all at once. 2018-04-13 18:26:06 +00:00
llvm-demangle-fuzzer make add_llvm_fuzzer calls slightly more consisten with other cmake 2018-05-11 17:58:52 +00:00
llvm-diff Let llvm-diff correctly deal with Undef/ConstantAggregateZero/ConstantVector/IndirectBr 2018-04-12 21:28:04 +00:00
llvm-dis [ThinLTO] Print module summary index to assembly 2018-05-26 02:34:13 +00:00
llvm-dwarfdump [DebugInfo/DWARF] Remove redundant iterator type. NFC 2018-08-02 19:29:38 +00:00
llvm-dwp MC: Change the streamer ctors to take an object writer instead of a stream. NFCI. 2018-05-18 18:26:45 +00:00
llvm-exegesis [llvm-exegesis] Renaming classes and functions. 2018-08-03 09:29:38 +00:00
llvm-extract Define InitLLVM to do common initialization all at once. 2018-04-13 18:26:06 +00:00
llvm-go [bindings/go] Add coroutine passes 2018-08-19 23:40:05 +00:00
llvm-isel-fuzzer CodeGen: Add a dwo output file argument to addPassesToEmitFile and hook it up to dwo output. 2018-05-21 20:16:41 +00:00
llvm-jitlistener Define InitLLVM to do common initialization all at once. 2018-04-13 18:26:06 +00:00
llvm-link Restore "[ThinLTO] Ensure we always select the same function copy to import" 2018-07-16 15:30:27 +00:00
llvm-lto [ThinLTO] Rename index IsAnalysis flag to HaveGVs (NFC) 2018-06-06 22:22:01 +00:00
llvm-lto2 [LTO] Allow pass remarks with hotness to be set when emitting to stderr 2018-05-04 23:59:34 +00:00
llvm-mc [ADT] Normalize empty triple components 2018-08-08 22:23:57 +00:00
llvm-mc-assemble-fuzzer [llvm-mc-assemble-fuzzer] Update API - Pass MCObjectWriter instead of a stream 2018-08-17 04:38:41 +00:00
llvm-mc-disassemble-fuzzer make add_llvm_fuzzer calls slightly more consisten with other cmake 2018-05-11 17:58:52 +00:00
llvm-mca [llvm-mca] Move views and stats into a Views subdir. NFC. 2018-08-24 20:24:53 +00:00
llvm-modextract Pass a reference to a module to the bitcode writer. 2018-02-14 19:11:32 +00:00
llvm-mt [llvm-mt] Use WithColor for printing errors. 2018-06-23 16:49:07 +00:00
llvm-nm nm: Add -no-weak flag for hiding weak symbols 2018-07-02 17:24:37 +00:00
llvm-objcopy [llvm-objcopy] Simplify find(X,Y) != X.end() with is_contained() 2018-08-21 00:13:52 +00:00
llvm-objdump [llvm-objdump] Label calls to the PLT. 2018-08-24 15:21:57 +00:00
llvm-opt-fuzzer make add_llvm_fuzzer calls slightly more consisten with other cmake 2018-05-11 17:58:52 +00:00
llvm-opt-report Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
llvm-pdbutil [llvm-pdbutil] Support PDBs without a DBI stream 2018-08-06 19:35:00 +00:00
llvm-profdata Make llvm-profdata show -text work as advertised in the documentation. 2018-08-24 01:34:45 +00:00
llvm-rc [FileSystem] Split up the OpenFlags enumeration. 2018-06-07 19:58:58 +00:00
llvm-readobj MC: Teach the COFF object writer to write address-significance tables. 2018-08-22 23:58:16 +00:00
llvm-rtdyld Define InitLLVM to do common initialization all at once. 2018-04-13 18:26:06 +00:00
llvm-shlib [RFC] Build LLVM-C.dll on MSVC that exports only the C API 2018-08-07 15:54:50 +00:00
llvm-size [llvm-size] Make global variables static 2018-06-22 22:20:10 +00:00
llvm-special-case-list-fuzzer make add_llvm_fuzzer calls slightly more consisten with other cmake 2018-05-11 17:58:52 +00:00
llvm-split Pass a reference to a module to the bitcode writer. 2018-02-14 19:11:32 +00:00
llvm-stress
llvm-strings Define InitLLVM to do common initialization all at once. 2018-04-13 18:26:06 +00:00
llvm-symbolizer [llvm-symbolizer] Simplify 2018-05-26 02:29:14 +00:00
llvm-undname [llvm-undname Add an option to dump back references. 2018-08-01 18:33:04 +00:00
llvm-xray [XRay][tools] Use Support/JSON.h in llvm-xray convert 2018-08-03 09:21:31 +00:00
llvm-yaml-numeric-parser-fuzzer Use LLVM_BUILTIN_TRAP not __builtin_trap to appease windows builds. NFCI. 2018-08-20 09:49:20 +00:00
lto s/LLVM_ON_WIN32/_WIN32/, llvm 2018-04-29 00:45:03 +00:00
msbuild vs integration: bump version number 2018-08-09 11:57:36 +00:00
obj2yaml Fix debug build by adding missing dependencies on libBinaryFormat 2018-05-15 00:46:43 +00:00
opt [Debugify] Export per-pass debug info loss statistics 2018-07-24 00:41:29 +00:00
opt-viewer [opt-viewer] Kill parser processes before moving onto rendering 2018-02-26 21:15:51 +00:00
sancov Rename sancov.cc to sancov.cpp 2018-04-25 18:06:23 +00:00
sanstats
verify-uselistorder Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
xcode-toolchain [CMake] Use LLVM_ENABLE_IDE instead of CMAKE_CONFIGURATION_TYPES 2018-08-22 18:40:24 +00:00
yaml2obj [yaml2obj] - Allow to use numeric sh_link (Link) value for sections. 2018-08-16 12:44:17 +00:00
CMakeLists.txt [RFC] Build LLVM-C.dll on MSVC that exports only the C API 2018-08-07 15:54:50 +00:00
LLVMBuild.txt Add a Microsoft Demangler. 2018-07-20 17:27:48 +00:00