diff options
| author | Reid Kleckner <rnk@google.com> | 2018-11-16 18:47:41 +0000 |
|---|---|---|
| committer | Reid Kleckner <rnk@google.com> | 2018-11-16 18:47:41 +0000 |
| commit | 755577168ac1d61feff36287a1361bbb21e385c3 (patch) | |
| tree | 438992ffe3a56828d52468dc15a325347990e937 /clang/lib/Driver | |
| parent | c1e4f6a351d84f34d60f991c06fd1f43192c1070 (diff) | |
| download | bcm5719-llvm-755577168ac1d61feff36287a1361bbb21e385c3.tar.gz bcm5719-llvm-755577168ac1d61feff36287a1361bbb21e385c3.zip | |
[codeview] Expose -gcodeview-ghash for global type hashing
Summary:
Experience has shown that the functionality is useful. It makes linking
optimized clang with debug info for me a lot faster, 20s to 13s. The
type merging phase of PDB writing goes from 10s to 3s.
This removes the LLVM cl::opt and replaces it with a metadata flag.
After this change, users can do the following to use ghash:
- add -gcodeview-ghash to compiler flags
- replace /DEBUG with /DEBUG:GHASH in linker flags
Reviewers: zturner, hans, thakis, takuto.ikuta
Subscribers: aprantl, hiraditya, JDevlieghere, llvm-commits
Differential Revision: https://reviews.llvm.org/D54370
llvm-svn: 347072
Diffstat (limited to 'clang/lib/Driver')
| -rw-r--r-- | clang/lib/Driver/ToolChains/Clang.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index b2d0ae7f1de..dd79e8ee868 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -3198,9 +3198,16 @@ static void RenderDebugOptions(const ToolChain &TC, const Driver &D, CmdArgs.push_back("-gembed-source"); } - if (EmitCodeView) + if (EmitCodeView) { CmdArgs.push_back("-gcodeview"); + // Emit codeview type hashes if requested. + if (Args.hasFlag(options::OPT_gcodeview_ghash, + options::OPT_gno_codeview_ghash, false)) { + CmdArgs.push_back("-gcodeview-ghash"); + } + } + RenderDebugEnablingArgs(Args, CmdArgs, DebugInfoKind, DWARFVersion, DebuggerTuning); |

