[dsymutil] Perform analyzeContextInfo and CloneDIEs in parallel
authorJonas Devlieghere <jonas@devlieghere.com>
Tue, 13 Mar 2018 14:27:15 +0000 (14:27 +0000)
committerJonas Devlieghere <jonas@devlieghere.com>
Tue, 13 Mar 2018 14:27:15 +0000 (14:27 +0000)
commite1f0e22fcd991f40827a34de4ed063c7c4c36eea
treeca3a2949c8cd337163bca1fa9780dc9b25ef4b18
parent41e781d5f153136a71e54fd35e7322e39330cac3
[dsymutil] Perform analyzeContextInfo and CloneDIEs in parallel

This patch makes dsymutil perform analyzeContextInfo and CloneDIEs in
parallel. For the same object file, there is a dependency between the
two. However, we can do analyzeContextInfo for the next object file
while cloning DIEs for the current. This is exactly the approach taken
in this patch.

For WebCore, this leads to a performance improvement of 29% and for
clang we see similar results with at 32% improvement.

A big thanks to Pete Cooper who came up with the original idea and
the PoC.

Differential revision: https://reviews.llvm.org/D43945

llvm-svn: 327399
llvm/test/tools/dsymutil/basic-linking.test
llvm/tools/dsymutil/DwarfLinker.cpp