-
-
Notifications
You must be signed in to change notification settings - Fork 14.8k
-Cdebuginfo=1 wastefully produces full type descriptions. #69074
Copy link
Copy link
Closed
Labels
A-debuginfoArea: Debugging information in compiled programs (DWARF, PDB, etc.)Area: Debugging information in compiled programs (DWARF, PDB, etc.)C-bugCategory: This is a bug.Category: This is a bug.I-compiletimeIssue: Problems and improvements with respect to compile times.Issue: Problems and improvements with respect to compile times.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Metadata
Metadata
Assignees
Labels
A-debuginfoArea: Debugging information in compiled programs (DWARF, PDB, etc.)Area: Debugging information in compiled programs (DWARF, PDB, etc.)C-bugCategory: This is a bug.Category: This is a bug.I-compiletimeIssue: Problems and improvements with respect to compile times.Issue: Problems and improvements with respect to compile times.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Type
Fields
Give feedbackNo fields configured for issues without a type.
This example makes
-Cdebuginfo=1emit the variant (seegodboltoutput):Its resulting LLVM IR shows all of these DebugInfo metadata nodes:
But at
-Cdebuginfo=1, this is really what we want to see:If this doesn't work we can always just use
DINamespaceinstead.IIUC, this specific example is caused from the way we handle inherent
impls, but there might be others, so we probably want to make the debuginfo generating infrastructure ICE when it's trying to generate non-trivial type debuginfo but-Cdebuginfo=1is set.Oh, and, I found this because
librustc_driver-*.sois 1GB withdebuginfo-level=1(anddebug-assertions=1) inconfig.toml, and most of that is type debuginfo.cc @rust-lang/compiler @alexcrichton