[all-commits] [llvm/llvm-project] fb244f: [dsymutil][DWARFLinker][NFC] make AddressManager n...

avl-llvm via All-commits all-commits at lists.llvm.org
Sun Jan 31 05:38:21 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: fb244ffb9f2d7718b0edb1566138ba454b5709bc
      https://github.com/llvm/llvm-project/commit/fb244ffb9f2d7718b0edb1566138ba454b5709bc
  Author: Alexey Lapshin <a.v.lapshin at mail.ru>
  Date:   2021-01-31 (Sun, 31 Jan 2021)

  Changed paths:
    M llvm/include/llvm/DWARFLinker/DWARFLinker.h
    M llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h
    M llvm/lib/DWARFLinker/DWARFLinker.cpp
    M llvm/test/tools/dsymutil/X86/dwarf5.test
    M llvm/tools/dsymutil/DwarfLinkerForBinary.cpp
    M llvm/tools/dsymutil/DwarfLinkerForBinary.h

  Log Message:
  -----------
  [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




More information about the All-commits mailing list