aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorReid Kleckner <rnk@google.com>2020-06-01 11:34:09 -0700
committerReid Kleckner <rnk@google.com>2020-06-01 12:28:32 -0700
commit8f0a6600306417227da72d93d11b2fa6f0be6b4c (patch)
treebf4163551bdf7cf423d640e6357872200245bb92 /clang/lib/Frontend/CompilerInvocation.cpp
parent8f3f88d2f50d97011bf48ccc507bef033715e566 (diff)
downloadllvm-8f0a6600306417227da72d93d11b2fa6f0be6b4c.zip
llvm-8f0a6600306417227da72d93d11b2fa6f0be6b4c.tar.gz
llvm-8f0a6600306417227da72d93d11b2fa6f0be6b4c.tar.bz2
[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.
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions