Author: Jonas Devlieghere Date: 2023-06-14T14:16:16-07:00 New Revision: 04c0161c027676119fdc617f5b883dbda97c8549
URL: https://github.com/llvm/llvm-project/commit/04c0161c027676119fdc617f5b883dbda97c8549 DIFF: https://github.com/llvm/llvm-project/commit/04c0161c027676119fdc617f5b883dbda97c8549.diff LOG: Revert "[DebugInfo] Always emit `.debug_names` with DWARF 5 for Apple platforms" This reverts commit e0d57295bf6a3c04f2901d9c70f529d570f48b65 because the accel-tables-apple.ll test is failing on a few buildbots. Added: Modified: clang/lib/CodeGen/CGDebugInfo.cpp clang/test/CodeGen/debug-info-names.c llvm/include/llvm/IR/DebugInfoMetadata.h llvm/lib/AsmParser/LLLexer.cpp llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp llvm/lib/IR/DebugInfoMetadata.cpp Removed: llvm/test/DebugInfo/Inputs/name-table-kind-apple-4.ll llvm/test/DebugInfo/Inputs/name-table-kind-apple-5.ll llvm/test/DebugInfo/accel-tables-apple.ll ################################################################################ diff --git a/clang/lib/CodeGen/CGDebugInfo.cpp b/clang/lib/CodeGen/CGDebugInfo.cpp index 2fd2227720a2a..edef27bdf377c 100644 --- a/clang/lib/CodeGen/CGDebugInfo.cpp +++ b/clang/lib/CodeGen/CGDebugInfo.cpp @@ -637,21 +637,17 @@ void CGDebugInfo::CreateCompileUnit() { SDK = *It; } - llvm::DICompileUnit::DebugNameTableKind NameTableKind = - static_cast<llvm::DICompileUnit::DebugNameTableKind>( - CGOpts.DebugNameTable); - if (CGM.getTarget().getTriple().isNVPTX()) - NameTableKind = llvm::DICompileUnit::DebugNameTableKind::None; - else if (CGM.getTarget().getTriple().getVendor() == llvm::Triple::Apple) - NameTableKind = llvm::DICompileUnit::DebugNameTableKind::Apple; - // Create new compile unit. TheCU = DBuilder.createCompileUnit( LangTag, CUFile, CGOpts.EmitVersionIdentMetadata ? Producer : "", LO.Optimize || CGOpts.PrepareForLTO || CGOpts.PrepareForThinLTO, CGOpts.DwarfDebugFlags, RuntimeVers, CGOpts.SplitDwarfFile, EmissionKind, DwoId, CGOpts.SplitDwarfInlining, CGOpts.DebugInfoForProfiling, - NameTableKind, CGOpts.DebugRangesBaseAddress, remapDIPath(Sysroot), SDK); + CGM.getTarget().getTriple().isNVPTX() + ? llvm::DICompileUnit::DebugNameTableKind::None + : static_cast<llvm::DICompileUnit::DebugNameTableKind>( + CGOpts.DebugNameTable), + CGOpts.DebugRangesBaseAddress, remapDIPath(Sysroot), SDK); } llvm::DIType *CGDebugInfo::CreateType(const BuiltinType *BT) { diff --git a/clang/test/CodeGen/debug-info-names.c b/clang/test/CodeGen/debug-info-names.c index a807fb8c06696..841387d50fd44 100644 --- a/clang/test/CodeGen/debug-info-names.c +++ b/clang/test/CodeGen/debug-info-names.c @@ -1,12 +1,10 @@ -// RUN: %clang_cc1 -triple x86_64-unknown-linux -emit-llvm -debug-info-kind=limited %s -o - | FileCheck %s -// RUN: %clang_cc1 -triple x86_64-apple-macosx10.10.0 -emit-llvm -debug-info-kind=limited %s -o - | FileCheck --check-prefix=APPLE %s -// RUN: %clang_cc1 -triple x86_64-unknown-linux -emit-llvm -debug-info-kind=limited %s -o - -gpubnames | FileCheck --check-prefix=DEFAULT %s -// RUN: %clang_cc1 -triple x86_64-unknown-linux -emit-llvm -debug-info-kind=limited %s -o - -ggnu-pubnames | FileCheck --check-prefix=GNU %s +// RUN: %clang_cc1 -emit-llvm -debug-info-kind=limited %s -o - | FileCheck %s +// RUN: %clang_cc1 -emit-llvm -debug-info-kind=limited %s -o - -gpubnames | FileCheck --check-prefix=DEFAULT %s +// RUN: %clang_cc1 -emit-llvm -debug-info-kind=limited %s -o - -ggnu-pubnames | FileCheck --check-prefix=GNU %s // CHECK: !DICompileUnit({{.*}}, nameTableKind: None // DEFAULT-NOT: !DICompileUnit({{.*}}, nameTableKind: // GNU: !DICompileUnit({{.*}}, nameTableKind: GNU -// APPLE: !DICompileUnit({{.*}}, nameTableKind: Apple void f1(void) { } diff --git a/llvm/include/llvm/IR/DebugInfoMetadata.h b/llvm/include/llvm/IR/DebugInfoMetadata.h index 6561224052097..defd1d5c2a1ea 100644 --- a/llvm/include/llvm/IR/DebugInfoMetadata.h +++ b/llvm/include/llvm/IR/DebugInfoMetadata.h @@ -1377,8 +1377,7 @@ class DICompileUnit : public DIScope { Default = 0, GNU = 1, None = 2, - Apple = 3, - LastDebugNameTableKind = Apple + LastDebugNameTableKind = None }; static std::optional<DebugEmissionKind> getEmissionKind(StringRef Str); diff --git a/llvm/lib/AsmParser/LLLexer.cpp b/llvm/lib/AsmParser/LLLexer.cpp index 7568fd43e1d08..23a7b4481110c 100644 --- a/llvm/lib/AsmParser/LLLexer.cpp +++ b/llvm/lib/AsmParser/LLLexer.cpp @@ -944,8 +944,7 @@ lltok::Kind LLLexer::LexIdentifier() { return lltok::EmissionKind; } - if (Keyword == "GNU" || Keyword == "Apple" || Keyword == "None" || - Keyword == "Default") { + if (Keyword == "GNU" || Keyword == "None" || Keyword == "Default") { StrVal.assign(Keyword.begin(), Keyword.end()); return lltok::NameTableKind; } diff --git a/llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp b/llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp index 5f9c3ea825274..a533551f4b474 100644 --- a/llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp @@ -549,13 +549,9 @@ void llvm::emitDWARF5AccelTable( SmallVector<unsigned, 1> CUIndex(CUs.size()); int Count = 0; for (const auto &CU : enumerate(CUs)) { - switch (CU.value()->getCUNode()->getNameTableKind()) { - case DICompileUnit::DebugNameTableKind::Default: - case DICompileUnit::DebugNameTableKind::Apple: - break; - default: + if (CU.value()->getCUNode()->getNameTableKind() != + DICompileUnit::DebugNameTableKind::Default) continue; - } CUIndex[CU.index()] = Count++; assert(CU.index() == CU.value()->getUniqueID()); const DwarfCompileUnit *MainCU = diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp index fd583a3693fe9..ce6d9549cf51a 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp @@ -1432,8 +1432,6 @@ bool DwarfCompileUnit::hasDwarfPubSections() const { // generated for things like Gold's gdb_index generation. case DICompileUnit::DebugNameTableKind::GNU: return true; - case DICompileUnit::DebugNameTableKind::Apple: - return false; case DICompileUnit::DebugNameTableKind::Default: return DD->tuneForGDB() && !includeMinimalInlineScopes() && !CUNode->isDebugDirectivesOnly() && diff --git a/llvm/lib/IR/DebugInfoMetadata.cpp b/llvm/lib/IR/DebugInfoMetadata.cpp index 4933b60326880..ef51ec1a290fd 100644 --- a/llvm/lib/IR/DebugInfoMetadata.cpp +++ b/llvm/lib/IR/DebugInfoMetadata.cpp @@ -970,7 +970,6 @@ DICompileUnit::getNameTableKind(StringRef Str) { return StringSwitch<std::optional<DebugNameTableKind>>(Str) .Case("Default", DebugNameTableKind::Default) .Case("GNU", DebugNameTableKind::GNU) - .Case("Apple", DebugNameTableKind::Apple) .Case("None", DebugNameTableKind::None) .Default(std::nullopt); } @@ -995,8 +994,6 @@ const char *DICompileUnit::nameTableKindString(DebugNameTableKind NTK) { return nullptr; case DebugNameTableKind::GNU: return "GNU"; - case DebugNameTableKind::Apple: - return "Apple"; case DebugNameTableKind::None: return "None"; } diff --git a/llvm/test/DebugInfo/Inputs/name-table-kind-apple-4.ll b/llvm/test/DebugInfo/Inputs/name-table-kind-apple-4.ll deleted file mode 100644 index 36b3ee1addc06..0000000000000 --- a/llvm/test/DebugInfo/Inputs/name-table-kind-apple-4.ll +++ /dev/null @@ -1,35 +0,0 @@ -@var = thread_local global i32 0, align 4, !dbg !0 - -; Function Attrs: norecurse nounwind readnone uwtable -define void @_Z3funv() local_unnamed_addr #0 !dbg !11 { - ret void, !dbg !14 -} - -; Function Attrs: norecurse uwtable -define weak_odr hidden ptr @_ZTW3var() local_unnamed_addr #1 { - ret ptr @var -} - -attributes #0 = { norecurse nounwind readnone uwtable } -attributes #1 = { norecurse uwtable } - -!llvm.dbg.cu = !{!2} -!llvm.module.flags = !{!7, !8, !9} -!llvm.ident = !{!10} - -!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) -!1 = distinct !DIGlobalVariable(name: "var", scope: !2, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true) -!2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 7.0.0 (trunk 322268) (llvm/trunk 322267)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5, nameTableKind: Apple) -!3 = !DIFile(filename: "debugger-tune.cpp", directory: "/tmp") -!4 = !{} -!5 = !{!0} -!6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -!7 = !{i32 2, !"Dwarf Version", i32 4} -!8 = !{i32 2, !"Debug Info Version", i32 3} -!9 = !{i32 1, !"wchar_size", i32 4} -!10 = !{!"clang version 7.0.0 (trunk 322268) (llvm/trunk 322267)"} -!11 = distinct !DISubprogram(name: "fun", linkageName: "_Z3funv", scope: !3, file: !3, line: 2, type: !12, isLocal: false, isDefinition: true, scopeLine: 2, flags: DIFlagPrototyped, isOptimized: true, unit: !2, retainedNodes: !4) -!12 = !DISubroutineType(types: !13) -!13 = !{null} -!14 = !DILocation(line: 2, column: 13, scope: !11) - diff --git a/llvm/test/DebugInfo/Inputs/name-table-kind-apple-5.ll b/llvm/test/DebugInfo/Inputs/name-table-kind-apple-5.ll deleted file mode 100644 index 35752a934d0e6..0000000000000 --- a/llvm/test/DebugInfo/Inputs/name-table-kind-apple-5.ll +++ /dev/null @@ -1,35 +0,0 @@ -@var = thread_local global i32 0, align 4, !dbg !0 - -; Function Attrs: norecurse nounwind readnone uwtable -define void @_Z3funv() local_unnamed_addr #0 !dbg !11 { - ret void, !dbg !14 -} - -; Function Attrs: norecurse uwtable -define weak_odr hidden ptr @_ZTW3var() local_unnamed_addr #1 { - ret ptr @var -} - -attributes #0 = { norecurse nounwind readnone uwtable } -attributes #1 = { norecurse uwtable } - -!llvm.dbg.cu = !{!2} -!llvm.module.flags = !{!7, !8, !9} -!llvm.ident = !{!10} - -!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) -!1 = distinct !DIGlobalVariable(name: "var", scope: !2, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true) -!2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 7.0.0 (trunk 322268) (llvm/trunk 322267)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5, nameTableKind: Apple) -!3 = !DIFile(filename: "debugger-tune.cpp", directory: "/tmp") -!4 = !{} -!5 = !{!0} -!6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -!7 = !{i32 2, !"Dwarf Version", i32 5} -!8 = !{i32 2, !"Debug Info Version", i32 3} -!9 = !{i32 1, !"wchar_size", i32 4} -!10 = !{!"clang version 7.0.0 (trunk 322268) (llvm/trunk 322267)"} -!11 = distinct !DISubprogram(name: "fun", linkageName: "_Z3funv", scope: !3, file: !3, line: 2, type: !12, isLocal: false, isDefinition: true, scopeLine: 2, flags: DIFlagPrototyped, isOptimized: true, unit: !2, retainedNodes: !4) -!12 = !DISubroutineType(types: !13) -!13 = !{null} -!14 = !DILocation(line: 2, column: 13, scope: !11) - diff --git a/llvm/test/DebugInfo/accel-tables-apple.ll b/llvm/test/DebugInfo/accel-tables-apple.ll deleted file mode 100644 index fe0e5ad12f24d..0000000000000 --- a/llvm/test/DebugInfo/accel-tables-apple.ll +++ /dev/null @@ -1,55 +0,0 @@ -; Verify the emission of accelerator tables for nameTableKind: Apple - -; Darwin has the apple tables unless we specifically tune for gdb -; RUN: llc -mtriple=x86_64-apple-darwin12 -filetype=obj < %S/Inputs/name-table-kind-apple-5.ll \ -; RUN: | llvm-readobj --sections - | FileCheck --check-prefix=DEBUG_NAMES %s -; RUN: llc -mtriple=x86_64-apple-darwin12 -filetype=obj < %S/Inputs/name-table-kind-apple-4.ll \ -; RUN: | llvm-readobj --sections - | FileCheck --check-prefix=APPLE %s - -; APPLE-NOT: debug_names -; APPLE-NOT: debug{{.*}}pub -; APPLE: apple_names -; APPLE-NOT: debug_names -; APPLE-NOT: debug{{.*}}pub - -; DEBUG_NAMES-NOT: apple_names -; DEBUG_NAMES-NOT: pubnames -; DEBUG_NAMES: debug_names -; DEBUG_NAMES-NOT: apple_names -; DEBUG_NAMES-NOT: pubnames - -@var = thread_local global i32 0, align 4, !dbg !0 - -; Function Attrs: norecurse nounwind readnone uwtable -define void @_Z3funv() local_unnamed_addr #0 !dbg !11 { - ret void, !dbg !14 -} - -; Function Attrs: norecurse uwtable -define weak_odr hidden ptr @_ZTW3var() local_unnamed_addr #1 { - ret ptr @var -} - -attributes #0 = { norecurse nounwind readnone uwtable } -attributes #1 = { norecurse uwtable } - -!llvm.dbg.cu = !{!2} -!llvm.module.flags = !{!7, !8, !9} -!llvm.ident = !{!10} - -!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) -!1 = distinct !DIGlobalVariable(name: "var", scope: !2, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true) -!2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 7.0.0 (trunk 322268) (llvm/trunk 322267)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5, nameTableKind: Apple) -!3 = !DIFile(filename: "debugger-tune.cpp", directory: "/tmp") -!4 = !{} -!5 = !{!0} -!6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -!7 = !{i32 2, !"Dwarf Version", i32 4} -!8 = !{i32 2, !"Debug Info Version", i32 3} -!9 = !{i32 1, !"wchar_size", i32 4} -!10 = !{!"clang version 7.0.0 (trunk 322268) (llvm/trunk 322267)"} -!11 = distinct !DISubprogram(name: "fun", linkageName: "_Z3funv", scope: !3, file: !3, line: 2, type: !12, isLocal: false, isDefinition: true, scopeLine: 2, flags: DIFlagPrototyped, isOptimized: true, unit: !2, retainedNodes: !4) -!12 = !DISubroutineType(types: !13) -!13 = !{null} -!14 = !DILocation(line: 2, column: 13, scope: !11) - _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits