Author: sammccall Date: Thu Sep 6 07:27:40 2018 New Revision: 341549 URL: http://llvm.org/viewvc/llvm-project?rev=341549&view=rev Log: Revert "[DebugInfo] Generate debug information for labels. (Fix PR37395)"
This reverts commit r341519, which generates debug info that causes backend crashes. (with -split-dwarf-file) Details in https://reviews.llvm.org/D50495 Removed: cfe/trunk/test/CodeGen/debug-label-inline.c cfe/trunk/test/CodeGen/debug-label.c Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp cfe/trunk/lib/CodeGen/CGDebugInfo.h cfe/trunk/lib/CodeGen/CGStmt.cpp Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=341549&r1=341548&r2=341549&view=diff ============================================================================== --- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original) +++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Thu Sep 6 07:27:40 2018 @@ -3769,32 +3769,6 @@ CGDebugInfo::EmitDeclareOfAutoVariable(c return EmitDeclare(VD, Storage, llvm::None, Builder); } -void CGDebugInfo::EmitLabel(const LabelDecl *D, CGBuilderTy &Builder) { - assert(DebugKind >= codegenoptions::LimitedDebugInfo); - assert(!LexicalBlockStack.empty() && "Region stack mismatch, stack empty!"); - - if (D->hasAttr<NoDebugAttr>()) - return; - - auto *Scope = cast<llvm::DIScope>(LexicalBlockStack.back()); - llvm::DIFile *Unit = getOrCreateFile(D->getLocation()); - - // Get location information. - unsigned Line = getLineNumber(D->getLocation()); - unsigned Column = getColumnNumber(D->getLocation()); - - StringRef Name = D->getName(); - - // Create the descriptor for the label. - auto *L = - DBuilder.createLabel(Scope, Name, Unit, Line, CGM.getLangOpts().Optimize); - - // Insert an llvm.dbg.label into the current block. - DBuilder.insertLabel(L, - llvm::DebugLoc::get(Line, Column, Scope, CurInlinedAt), - Builder.GetInsertBlock()); -} - llvm::DIType *CGDebugInfo::CreateSelfType(const QualType &QualTy, llvm::DIType *Ty) { llvm::DIType *CachedTy = getTypeOrNull(QualTy); Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.h?rev=341549&r1=341548&r2=341549&view=diff ============================================================================== --- cfe/trunk/lib/CodeGen/CGDebugInfo.h (original) +++ cfe/trunk/lib/CodeGen/CGDebugInfo.h Thu Sep 6 07:27:40 2018 @@ -415,9 +415,6 @@ public: llvm::Value *AI, CGBuilderTy &Builder); - /// Emit call to \c llvm.dbg.label for an label. - void EmitLabel(const LabelDecl *D, CGBuilderTy &Builder); - /// Emit call to \c llvm.dbg.declare for an imported variable /// declaration in a block. void EmitDeclareOfBlockDeclRefVariable( Modified: cfe/trunk/lib/CodeGen/CGStmt.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGStmt.cpp?rev=341549&r1=341548&r2=341549&view=diff ============================================================================== --- cfe/trunk/lib/CodeGen/CGStmt.cpp (original) +++ cfe/trunk/lib/CodeGen/CGStmt.cpp Thu Sep 6 07:27:40 2018 @@ -531,16 +531,6 @@ void CodeGenFunction::EmitLabel(const La } EmitBlock(Dest.getBlock()); - - // Emit debug info for labels. - if (CGDebugInfo *DI = getDebugInfo()) { - if (CGM.getCodeGenOpts().getDebugInfo() >= - codegenoptions::LimitedDebugInfo) { - DI->setLocation(D->getLocation()); - DI->EmitLabel(D, Builder); - } - } - incrementProfileCounter(D->getStmt()); } Removed: cfe/trunk/test/CodeGen/debug-label-inline.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-label-inline.c?rev=341548&view=auto ============================================================================== --- cfe/trunk/test/CodeGen/debug-label-inline.c (original) +++ cfe/trunk/test/CodeGen/debug-label-inline.c (removed) @@ -1,28 +0,0 @@ -// This test will test the correctness of generating DILabel and -// llvm.dbg.label when the label is in inlined functions. -// -// RUN: %clang_cc1 -O2 %s -o - -emit-llvm -debug-info-kind=limited | FileCheck %s -inline int f1(int a, int b) { - int sum; - -top: - sum = a + b; - return sum; -} - -extern int ga, gb; - -int f2(void) { - int result; - - result = f1(ga, gb); - // CHECK: call void @llvm.dbg.label(metadata [[LABEL_METADATA:!.*]]), !dbg [[LABEL_LOCATION:!.*]] - - return result; -} - -// CHECK: distinct !DISubprogram(name: "f1", {{.*}}, retainedNodes: [[ELEMENTS:!.*]]) -// CHECK: [[ELEMENTS]] = !{{{.*}}, [[LABEL_METADATA]]} -// CHECK: [[LABEL_METADATA]] = !DILabel({{.*}}, name: "top", {{.*}}, line: 8) -// CHECK: [[INLINEDAT:!.*]] = distinct !DILocation(line: 18, -// CHECK: [[LABEL_LOCATION]] = !DILocation(line: 8, {{.*}}, inlinedAt: [[INLINEDAT]]) Removed: cfe/trunk/test/CodeGen/debug-label.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-label.c?rev=341548&view=auto ============================================================================== --- cfe/trunk/test/CodeGen/debug-label.c (original) +++ cfe/trunk/test/CodeGen/debug-label.c (removed) @@ -1,16 +0,0 @@ -// This test will test the correstness of generating DILabel and -// llvm.dbg.label for labels. -// -// RUN: %clang_cc1 -emit-llvm %s -o - -emit-llvm -debug-info-kind=limited | FileCheck %s - -int f1(int a, int b) { - int sum; - -top: - // CHECK: call void @llvm.dbg.label(metadata [[LABEL_METADATA:!.*]]), !dbg [[LABEL_LOCATION:!.*]] - sum = a + b; - return sum; -} - -// CHECK: [[LABEL_METADATA]] = !DILabel({{.*}}, name: "top", {{.*}}, line: 9) -// CHECK: [[LABEL_LOCATION]] = !DILocation(line: 9, _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits