HomePhabricator

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

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

Description

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

Summary:
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:

http://lists.llvm.org/pipermail/llvm-dev/2019-September/135068.html.

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