[Dsymutil][Debuginfo][NFC] #4 Refactor dsymutil to separate DWARF optimizing…

Authored by avl on Jan 12 2020, 12:15 PM.


[Dsymutil][Debuginfo][NFC] #4 Refactor dsymutil to separate DWARF optimizing part.

The primary goal of this refactoring is to separate DWARF optimizing part.
So that it could be reused by linker or by any other client.
There was a thread on llvm-dev discussing the necessity of such a refactoring:


This is a final part from series of patches for dsymutil.
Previous patches : D71068, D71839, D72476. This patch:

  1. Creates lib/DWARFLinker interface :

    void addObjectFile(DwarfLinkerObjFile &ObjFile); bool link(); void setOptions;
  1. Moves all linking logic from tools/dsymutil/DwarfLinkerForBinary into lib/DWARFLinker.
  2. Renames RelocationManager into AddressesManager.
  3. Remarks creation logic moved from separate parallel execution into object file loading routine.

Testing: it passes "check-all" lit testing. MD5 checksum for clang .dSYM bundle
matches for the dsymutil with/without that patch.

Reviewers: JDevlieghere, friss, dblaikie, aprantl, jdoerfert

Reviewed By: JDevlieghere

Subscribers: merge_guards_bot, hiraditya, jfb, llvm-commits, probinson, thegameg

Tags: #llvm, debug-info

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