Revert r331843 "[DebugInfo] Generate debug information for labels."

It broke the Chromium build (see reply on the review).

> Generate DILabel metadata and call llvm.dbg.label after label
> statement to associate the metadata with the label.
>
> Differential Revision: https://reviews.llvm.org/D45045
>
> Patch by Hsiangkai Wang.

This doesn't revert the change to backend-unsupported-error.ll
that seems to correspond to an llvm-side change.

llvm-svn: 331861
This commit is contained in:
Hans Wennborg 2018-05-09 09:29:58 +00:00
parent 97379ff6b2
commit ef2f6948be
5 changed files with 0 additions and 83 deletions

View File

@ -3647,32 +3647,6 @@ CGDebugInfo::EmitDeclareOfAutoVariable(const VarDecl *VD, llvm::Value *Storage,
return EmitDeclare(VD, Storage, llvm::None, Builder); 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 *CGDebugInfo::CreateSelfType(const QualType &QualTy,
llvm::DIType *Ty) { llvm::DIType *Ty) {
llvm::DIType *CachedTy = getTypeOrNull(QualTy); llvm::DIType *CachedTy = getTypeOrNull(QualTy);

View File

@ -396,9 +396,6 @@ public:
llvm::Value *AI, llvm::Value *AI,
CGBuilderTy &Builder); 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 /// Emit call to \c llvm.dbg.declare for an imported variable
/// declaration in a block. /// declaration in a block.
void EmitDeclareOfBlockDeclRefVariable(const VarDecl *variable, void EmitDeclareOfBlockDeclRefVariable(const VarDecl *variable,

View File

@ -531,16 +531,6 @@ void CodeGenFunction::EmitLabel(const LabelDecl *D) {
} }
EmitBlock(Dest.getBlock()); 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()); incrementProfileCounter(D->getStmt());
} }

View File

@ -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]])

View File

@ -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,