[PATCH] D96035: [dsymutil][DWARFlinker] implement separate multi-thread processing for compile units.
Alexey Lapshin via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Jan 31 08:40:39 PST 2022
avl updated this revision to Diff 404549.
avl added a comment.
Herald added a subscriber: dexonsmith.
rebased.
refactored.
implemented performance improvements(it is 1.3x slower in single thread mode, 2.4x faster im multi-thread mode).
implemented types splitting.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D96035/new/
https://reviews.llvm.org/D96035
Files:
llvm/include/llvm/ADT/LockFreeDataPool.h
llvm/include/llvm/ADT/StringMapEntry.h
llvm/include/llvm/CodeGen/DwarfStringPoolEntry.h
llvm/include/llvm/DWARFLinker/DWARFLinker.h
llvm/include/llvm/DWARFLinkerNext/DWARFDebugStrTable.h
llvm/include/llvm/DWARFLinkerNext/DWARFLinker.h
llvm/include/llvm/DWARFLinkerNext/DWARFLinkerCompileUnit.h
llvm/include/llvm/DWARFLinkerNext/DWARFLinkerTypeTableUnit.h
llvm/include/llvm/DWARFLinkerNext/DWARFLinkerUnit.h
llvm/include/llvm/DWARFLinkerNext/DWARFLinkerUtil.h
llvm/include/llvm/DWARFLinkerNext/DWARFStreamer.h
llvm/include/llvm/DWARFLinkerNext/DiesDataPool.h
llvm/include/llvm/DWARFLinkerNext/MTSafeSimpleList.h
llvm/include/llvm/DWARFLinkerNext/StringPool.h
llvm/include/llvm/DWARFLinkerNext/TypePool.h
llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h
llvm/lib/CMakeLists.txt
llvm/lib/CodeGen/AsmPrinter/DwarfStringPool.cpp
llvm/lib/CodeGen/NonRelocatableStringpool.cpp
llvm/lib/DWARFLinker/DWARFLinker.cpp
llvm/lib/DWARFLinkerNext/CMakeLists.txt
llvm/lib/DWARFLinkerNext/DWARFDieCloner.cpp
llvm/lib/DWARFLinkerNext/DWARFDieCloner.h
llvm/lib/DWARFLinkerNext/DWARFLinker.cpp
llvm/lib/DWARFLinkerNext/DWARFLinkerCompileUnit.cpp
llvm/lib/DWARFLinkerNext/DWARFLinkerTypeTableUnit.cpp
llvm/lib/DWARFLinkerNext/DWARFLinkerUnit.cpp
llvm/lib/DWARFLinkerNext/DWARFLinkerUtil.cpp
llvm/lib/DWARFLinkerNext/DWARFStreamer.cpp
llvm/lib/DWARFLinkerNext/DependencyTracker.cpp
llvm/lib/DWARFLinkerNext/DependencyTracker.h
llvm/lib/DWARFLinkerNext/SyntheticTypeNameBuilder.cpp
llvm/lib/DWARFLinkerNext/SyntheticTypeNameBuilder.h
llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp
llvm/test/tools/dsymutil/DWARFLinkerNext/Inputs/String/foo1.o
llvm/test/tools/dsymutil/DWARFLinkerNext/Inputs/String/foo2.o
llvm/test/tools/dsymutil/DWARFLinkerNext/Inputs/String/foo3.o
llvm/test/tools/dsymutil/DWARFLinkerNext/Inputs/String/main.o
llvm/test/tools/dsymutil/DWARFLinkerNext/Inputs/call-site-entry.c
llvm/test/tools/dsymutil/DWARFLinkerNext/Inputs/call-site-entry.macho.x86_64
llvm/test/tools/dsymutil/DWARFLinkerNext/Inputs/call-site-entry.macho.x86_64.o
llvm/test/tools/dsymutil/DWARFLinkerNext/Inputs/local_functor.o
llvm/test/tools/dsymutil/DWARFLinkerNext/Inputs/tail-call.cpp
llvm/test/tools/dsymutil/DWARFLinkerNext/Inputs/tail-call.macho.x86_64
llvm/test/tools/dsymutil/DWARFLinkerNext/Inputs/tail-call.macho.x86_64.o
llvm/test/tools/dsymutil/DWARFLinkerNext/accelerator.test
llvm/test/tools/dsymutil/DWARFLinkerNext/alias.test
llvm/test/tools/dsymutil/DWARFLinkerNext/assembly-output.test
llvm/test/tools/dsymutil/DWARFLinkerNext/basic-linking-bundle.test
llvm/test/tools/dsymutil/DWARFLinkerNext/basic-linking-x86.test
llvm/test/tools/dsymutil/DWARFLinkerNext/basic-lto-dw4-linking-x86.test
llvm/test/tools/dsymutil/DWARFLinkerNext/basic-lto-linking-x86.test
llvm/test/tools/dsymutil/DWARFLinkerNext/basic-with-libfat-test.test
llvm/test/tools/dsymutil/DWARFLinkerNext/call-site-entry-linking.test
llvm/test/tools/dsymutil/DWARFLinkerNext/call-site-entry-reloc.test
llvm/test/tools/dsymutil/DWARFLinkerNext/common-sym-multi.test
llvm/test/tools/dsymutil/DWARFLinkerNext/common-sym.test
llvm/test/tools/dsymutil/DWARFLinkerNext/custom-line-table.test
llvm/test/tools/dsymutil/DWARFLinkerNext/darwin-bundle.test
llvm/test/tools/dsymutil/DWARFLinkerNext/dead-stripped.cpp
llvm/test/tools/dsymutil/DWARFLinkerNext/debug-loc-base-addr.test
llvm/test/tools/dsymutil/DWARFLinkerNext/dsym-companion.test
llvm/test/tools/dsymutil/DWARFLinkerNext/dummy-debug-map.map
llvm/test/tools/dsymutil/DWARFLinkerNext/dwarf4-linetable.test
llvm/test/tools/dsymutil/DWARFLinkerNext/dwarf5-linetable.test
llvm/test/tools/dsymutil/DWARFLinkerNext/dwarf5.test
llvm/test/tools/dsymutil/DWARFLinkerNext/eh_frame.test
llvm/test/tools/dsymutil/DWARFLinkerNext/empty-CU.test
llvm/test/tools/dsymutil/DWARFLinkerNext/empty_range.s
llvm/test/tools/dsymutil/DWARFLinkerNext/fat-archive-input-i386.test
llvm/test/tools/dsymutil/DWARFLinkerNext/fat-object-input-x86_64.test
llvm/test/tools/dsymutil/DWARFLinkerNext/fat-object-input-x86_64h.test
llvm/test/tools/dsymutil/DWARFLinkerNext/frame-1.test
llvm/test/tools/dsymutil/DWARFLinkerNext/frame-2.test
llvm/test/tools/dsymutil/DWARFLinkerNext/generate-empty-CU.test
llvm/test/tools/dsymutil/DWARFLinkerNext/global_downgraded_to_static.c
llvm/test/tools/dsymutil/DWARFLinkerNext/inlined-static-variable.cpp
llvm/test/tools/dsymutil/DWARFLinkerNext/keep-func.test
llvm/test/tools/dsymutil/DWARFLinkerNext/label.test
llvm/test/tools/dsymutil/DWARFLinkerNext/label2.test
llvm/test/tools/dsymutil/DWARFLinkerNext/lc_build_version.test
llvm/test/tools/dsymutil/DWARFLinkerNext/lit.local.cfg
llvm/test/tools/dsymutil/DWARFLinkerNext/local-functor.test
llvm/test/tools/dsymutil/DWARFLinkerNext/mismatch.m
llvm/test/tools/dsymutil/DWARFLinkerNext/module-warnings.test
llvm/test/tools/dsymutil/DWARFLinkerNext/modules-dwarf-version.m
llvm/test/tools/dsymutil/DWARFLinkerNext/modules-empty.m
llvm/test/tools/dsymutil/DWARFLinkerNext/modules-pruning.cpp
llvm/test/tools/dsymutil/DWARFLinkerNext/modules.m
llvm/test/tools/dsymutil/DWARFLinkerNext/multiple-inputs.test
llvm/test/tools/dsymutil/DWARFLinkerNext/objc.test
llvm/test/tools/dsymutil/DWARFLinkerNext/object-prefix-path.test
llvm/test/tools/dsymutil/DWARFLinkerNext/odr-anon-namespace.cpp
llvm/test/tools/dsymutil/DWARFLinkerNext/odr-constructors.test
llvm/test/tools/dsymutil/DWARFLinkerNext/odr-fwd-declaration.cpp
llvm/test/tools/dsymutil/DWARFLinkerNext/odr-fwd-declaration2.cpp
llvm/test/tools/dsymutil/DWARFLinkerNext/odr-fwd-declaration3.test
llvm/test/tools/dsymutil/DWARFLinkerNext/odr-member-functions.cpp
llvm/test/tools/dsymutil/DWARFLinkerNext/odr-namespace-extension.test
llvm/test/tools/dsymutil/DWARFLinkerNext/odr-nested-types1.test
llvm/test/tools/dsymutil/DWARFLinkerNext/odr-nested-types2.test
llvm/test/tools/dsymutil/DWARFLinkerNext/odr-parents.test
llvm/test/tools/dsymutil/DWARFLinkerNext/odr-predictable-output.test
llvm/test/tools/dsymutil/DWARFLinkerNext/odr-string.test
llvm/test/tools/dsymutil/DWARFLinkerNext/odr-template-parameters.test
llvm/test/tools/dsymutil/DWARFLinkerNext/odr-types-in-subprogram1.test
llvm/test/tools/dsymutil/DWARFLinkerNext/odr-uniquing.cpp
llvm/test/tools/dsymutil/DWARFLinkerNext/op-convert.test
llvm/test/tools/dsymutil/DWARFLinkerNext/papertrail-warnings.test
llvm/test/tools/dsymutil/DWARFLinkerNext/reflection-dump.test
llvm/test/tools/dsymutil/DWARFLinkerNext/remarks-linking-archive.text
llvm/test/tools/dsymutil/DWARFLinkerNext/remarks-linking-bundle-empty.test
llvm/test/tools/dsymutil/DWARFLinkerNext/remarks-linking-bundle.test
llvm/test/tools/dsymutil/DWARFLinkerNext/remarks-linking-fat-bundle.test
llvm/test/tools/dsymutil/DWARFLinkerNext/reproducer.test
llvm/test/tools/dsymutil/DWARFLinkerNext/statistics.test
llvm/test/tools/dsymutil/DWARFLinkerNext/submodules.m
llvm/test/tools/dsymutil/DWARFLinkerNext/suppressions.txt
llvm/test/tools/dsymutil/DWARFLinkerNext/swift-ast-x86_64.test
llvm/test/tools/dsymutil/DWARFLinkerNext/swift-dwarf-loc.test
llvm/test/tools/dsymutil/DWARFLinkerNext/swift-interface.test
llvm/test/tools/dsymutil/DWARFLinkerNext/tail-call-linking.test
llvm/test/tools/dsymutil/DWARFLinkerNext/template_operators.test
llvm/test/tools/dsymutil/DWARFLinkerNext/thinlto.test
llvm/test/tools/dsymutil/DWARFLinkerNext/timestamp-mismatch.test
llvm/test/tools/dsymutil/DWARFLinkerNext/union-fwd-decl.test
llvm/test/tools/dsymutil/DWARFLinkerNext/update-one-CU.test
llvm/test/tools/dsymutil/DWARFLinkerNext/update.test
llvm/test/tools/dsymutil/DWARFLinkerNext/verify.test
llvm/tools/dsymutil/BinaryHolder.cpp
llvm/tools/dsymutil/BinaryHolder.h
llvm/tools/dsymutil/CMakeLists.txt
llvm/tools/dsymutil/DwarfLinkerForBinary.cpp
llvm/tools/dsymutil/DwarfLinkerForBinary.h
llvm/tools/dsymutil/LinkUtils.h
llvm/tools/dsymutil/Options.td
llvm/tools/dsymutil/dsymutil.cpp
llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp
llvm/unittests/CodeGen/DIEHashTest.cpp
More information about the llvm-commits
mailing list