[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