[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