This patch adds a new Clang compiler flag "-gline-tables-only".

It reduces the amount of emitted debug information:
1) DIEs in .debug_info have types DW_TAG_compile_unit, DW_TAG_subprogram,
DW_TAG_inlined_subroutine (for opt builds) and DW_TAG_lexical_block only.
2) .debug_str contains only function names.
3) No debug data for types/namespaces/variables is emitted.
4) The data in .debug_line is enough to produce valid stack traces with
function names and line numbers.

Reviewed by Eric Christopher.

llvm-svn: 156160
This commit is contained in:
Alexey Samsonov
2012-05-04 07:39:27 +00:00
parent bdd2e34b1f
commit 74a3868dbb
13 changed files with 161 additions and 38 deletions

View File

@@ -1606,7 +1606,8 @@ void CodeGenModule::EmitGlobalVarDefinition(const VarDecl *D) {
// Emit global variable debug information.
if (CGDebugInfo *DI = getModuleDebugInfo())
DI->EmitGlobalVariable(GV, D);
if (getCodeGenOpts().DebugInfo >= CodeGenOptions::LimitedDebugInfo)
DI->EmitGlobalVariable(GV, D);
}
llvm::GlobalValue::LinkageTypes