[PATCH] D59025: Add --add-ghashes to llvm-objcopy to append a .debug$H to coff objects
Leonardo Santagada via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Mar 6 09:38:30 PST 2019
santagada added a comment.
In D59025#1419975 <https://reviews.llvm.org/D59025#1419975>, @aganea wrote:
> Leonardo, could you please explain how are you planning on using this feature in production? Are you compiling all OBJs, then running `llvm-objcopy --add-ghashes` on all of them afterwards?
> Could you provide some timings? (time to compile your OBJs, time to add the ghashes, linking with and without ghashes)
We have a distributed compilation system, I changed the c/c++ compiler tool to after the actual compiler run we run llvm-objcopy --add-ghashes <output.obj> so we receive the files already processes from the distributed workers. I didn't even time as I couldn't notice a big slowdown.
**Without --add-ghashes:**
Input File Reading: 1331 ms ( 1.9%)
Code Layout: 446 ms ( 0.6%)
PDB Emission (Cumulative): 68470 ms ( 97.1%)
Add Objects: 63792 ms ( 90.5%)
Type Merging: 60617 ms ( 86.0%)
Symbol Merging: 3077 ms ( 4.4%)
TPI Stream Layout: 785 ms ( 1.1%)
Globals Stream Layout: 526 ms ( 0.7%)
Commit to Disk: 2692 ms ( 3.8%)
Commit Output File: 30 ms ( 0.0%)
-------------------------------------------------
Total Link Time: 70505 ms (100.0%)
Agregate job times: 3 hours 2 minutes 17 seconds
Build time: 3 minutes 4 seconds
**With --add-ghashes:**
Input File Reading: 1391 ms ( 6.9%)
Code Layout: 449 ms ( 2.2%)
PDB Emission (Cumulative): 18019 ms ( 89.6%)
Add Objects: 13046 ms ( 64.8%)
Type Merging: 9851 ms ( 49.0%)
Symbol Merging: 3070 ms ( 15.3%)
TPI Stream Layout: 791 ms ( 3.9%)
Globals Stream Layout: 554 ms ( 2.8%)
Commit to Disk: 2769 ms ( 13.8%)
Commit Output File: 31 ms ( 0.2%)
-------------------------------------------------
Total Link Time: 20121 ms (100.0%)
Agregate job times: 3 hours 3 minutes 12 seconds
Build time: 1 minutes 51 seconds
Where the Agregate is the sum of all the jobs in all the distributed nodes. So although it took a minute more of cpu time in total it took a whole 1 minute less in total for a full rebuild. For users they are usually changing one or two files so for them linking time is the most prevaled unit we use for measuring workflow performance.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D59025/new/
https://reviews.llvm.org/D59025
More information about the llvm-commits
mailing list