llvm-project/llvm/lib/DWARFLinker
Alexey Lapshin fb244ffb9f [dsymutil][DWARFLinker][NFC] make AddressManager not depending on the order of checks for relocations.
Current dsymutil implementation of hasLiveMemoryLocation()/hasLiveAddressRange()
and applyValidRelocs() assume that calls should be done in certain order
(from first Dies to last). Multi-thread implementation might call these methods
in other order(it might process compilation units in order other than they are physically
located), so we remove restriction that searching for relocations should be done
in ascending order. This change does not introduce noticable performance degradation.
The testing results for clang binary:

golden-dsymutil/dsymutil  23787992
clang MD5: 5efa8fd9355ebf81b65f24db5375caa2
elapsed time=91sec

build-Release/bin/dsymutil 23855616
clang MD5: 5efa8fd9355ebf81b65f24db5375caa2
elapsed time=91sec

Differential Revision: https://reviews.llvm.org/D93106
2021-01-31 16:34:10 +03:00
..
CMakeLists.txt [DWARFLinker] Link against BinaryFormat 2021-01-08 18:57:36 -08:00
DWARFLinker.cpp [dsymutil][DWARFLinker][NFC] make AddressManager not depending on the order of checks for relocations. 2021-01-31 16:34:10 +03:00
DWARFLinkerCompileUnit.cpp [dsymutil] Add preliminary support for DWARF 5. 2021-01-12 21:55:41 -08:00
DWARFLinkerDeclContext.cpp [dsymutil][DWARFLinker][NFC] Refactor usages of UniquingStringPool. 2021-01-03 14:44:51 +03:00
DWARFStreamer.cpp [dsymutil] Add preliminary support for DWARF 5. 2021-01-12 21:55:41 -08:00