[PATCH] D96035: [WIP][dsymutil][DWARFlinker] implement separate multi-thread processing for compile units.

Jonas Devlieghere via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 8 10:55:39 PDT 2021


JDevlieghere added a comment.

In D96035#2931137 <https://reviews.llvm.org/D96035#2931137>, @avl wrote:

> @JDevlieghere @aprantl @dblaikie @echristo @clayborg  @friss
>
> Would you mind taking a look at this patch, please? Changes from the first version of the patch:

Disclaimer: I haven't had a chance to look at the code itself yet, but I have a few high level questions.

> 1. It produces predictable results when working in multi-thread mode.

This means that the generated DWARF is identical regardless of the number of threads, right?

> 2. It does types merging. Types merging allows reducing the size of .debug_info table by 40% less in size.

Very exciting!

My main concern at this point is how you are planning to qualify this change. I see you copied the existing tests (which I assume was necessary because you had to modify them to match the newly generated output) which is a great start. The LLDB test suite runs most tests with a dSYM and another good test would be to run it with the `--use-dlnext` flag. However, both of these are still pretty artificial test cases. Anecdotally, we often find bugs in large projects that don't show up in smaller ones, and semantically comparing the DWARF by hand is basically impossible. When we re-implemented dsymutil on top of llvm, we compared the hash of the generated DWARF to make sure it was identical (bugs in the original implementation included). I'm curious what your thoughts are on this.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D96035/new/

https://reviews.llvm.org/D96035



More information about the llvm-commits mailing list