[all-commits] [llvm/llvm-project] 8f0a66: [PDB] Use inlinee file checksum offsets directly

Reid Kleckner via All-commits all-commits at lists.llvm.org
Mon Jun 1 12:29:36 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 8f0a6600306417227da72d93d11b2fa6f0be6b4c
      https://github.com/llvm/llvm-project/commit/8f0a6600306417227da72d93d11b2fa6f0be6b4c
  Author: Reid Kleckner <rnk at google.com>
  Date:   2020-06-01 (Mon, 01 Jun 2020)

  Changed paths:
    M lld/COFF/PDB.cpp

  Log Message:
  -----------
  [PDB] Use inlinee file checksum offsets directly

The inlinees section contains references to the file checksum table. The
file checksum table in the PDB must have the same layout as the file
checksum table in the object file, so all the existing file id
references should stay valid.

Previously, we would do this:
  for all inlined functions:
    - lookup filename from checksum and string table
    - make that filename absolute
    - look up the new file id for that filename up in the new checksum
      table

This lead to pdbMakeAbsolute and remove_dots ending up in the hot path.
We should only need to absolutify the source path once, not once every
time we process an inline function from that source file.

This speeds up linking chrome PGO stage 1 net_unittests.exe from 9.203s
to 8.500s (-7.6%). Looking just at time to process symbol records, it
goes from ~2000ms to ~1300ms, which is consistent with the overall
speedup of about 700ms. This will be less noticeable in debug builds,
which have fewer inlined functions records.




More information about the All-commits mailing list