Author: Matheus Izvekov Date: 2023-12-13T06:30:37+01:00 New Revision: 631d618a907ce59564147a0fb90c264806ef03de
URL: https://github.com/llvm/llvm-project/commit/631d618a907ce59564147a0fb90c264806ef03de DIFF: https://github.com/llvm/llvm-project/commit/631d618a907ce59564147a0fb90c264806ef03de.diff LOG: Revert "[coroutines] Use DILocation from new storage for hoisted dbg.declare (#75104)" This reverts commit 31cf6df06febdf2483d224d2c9657497cac7d41f. Added: Modified: llvm/lib/Transforms/Coroutines/CoroFrame.cpp llvm/test/Transforms/Coroutines/coro-debug-frame-variable.ll Removed: ################################################################################ diff --git a/llvm/lib/Transforms/Coroutines/CoroFrame.cpp b/llvm/lib/Transforms/Coroutines/CoroFrame.cpp index 678d7fb3f5719..6b85de15947c2 100644 --- a/llvm/lib/Transforms/Coroutines/CoroFrame.cpp +++ b/llvm/lib/Transforms/Coroutines/CoroFrame.cpp @@ -2891,11 +2891,9 @@ void coro::salvageDebugInfo( // dbg.declare does. if (isa<DbgDeclareInst>(DVI)) { std::optional<BasicBlock::iterator> InsertPt; - if (auto *I = dyn_cast<Instruction>(Storage)) { + if (auto *I = dyn_cast<Instruction>(Storage)) InsertPt = I->getInsertionPointAfterDef(); - if (I->getDebugLoc()) - DVI->setDebugLoc(I->getDebugLoc()); - } else if (isa<Argument>(Storage)) + else if (isa<Argument>(Storage)) InsertPt = F->getEntryBlock().begin(); if (InsertPt) DVI->moveBefore(*(*InsertPt)->getParent(), *InsertPt); diff --git a/llvm/test/Transforms/Coroutines/coro-debug-frame-variable.ll b/llvm/test/Transforms/Coroutines/coro-debug-frame-variable.ll index 53995fb3498e5..37b4126ce3730 100644 --- a/llvm/test/Transforms/Coroutines/coro-debug-frame-variable.ll +++ b/llvm/test/Transforms/Coroutines/coro-debug-frame-variable.ll @@ -31,8 +31,8 @@ ; CHECK: entry: ; CHECK: %j = alloca i32, align 4 ; CHECK: call void @llvm.dbg.declare(metadata ptr %j, metadata ![[JVAR:[0-9]+]], metadata !DIExpression()), !dbg ![[JDBGLOC:[0-9]+]] -; CHECK: %[[MEMORY:.*]] = call ptr @new({{.+}}), !dbg ![[IDBGLOC:[0-9]+]] -; CHECK: call void @llvm.dbg.declare(metadata ptr %[[MEMORY]], metadata ![[XVAR:[0-9]+]], metadata !DIExpression(DW_OP_plus_uconst, 32)), !dbg ![[IDBGLOC]] +; CHECK: %[[MEMORY:.*]] = call ptr @new +; CHECK: call void @llvm.dbg.declare(metadata ptr %[[MEMORY]], metadata ![[XVAR:[0-9]+]], metadata !DIExpression(DW_OP_plus_uconst, 32)), !dbg ![[IDBGLOC:[0-9]+]] ; CHECK: call void @llvm.dbg.declare(metadata ptr %[[MEMORY]], metadata ![[IVAR:[0-9]+]], metadata !DIExpression(DW_OP_plus_uconst, 20)), !dbg ![[IDBGLOC]] ; CHECK: await.ready: ; @@ -48,20 +48,18 @@ ; CHECK: await.ready: ; ; CHECK-DAG: ![[IVAR]] = !DILocalVariable(name: "i" -; CHECK-DAG: ![[PROG_SCOPE:[0-9]+]] = distinct !DISubprogram(name: "foo", linkageName: "_Z3foov" -; CHECK-DAG: ![[BLK_SCOPE:[0-9]+]] = distinct !DILexicalBlock(scope: ![[PROG_SCOPE]], file: !1, line: 23, column: 12) -; CHECK-DAG: ![[IDBGLOC]] = !DILocation(line: 23, column: 6, scope: ![[PROG_SCOPE]]) +; CHECK-DAG: ![[SCOPE:[0-9]+]] = distinct !DILexicalBlock(scope: !6, file: !1, line: 23, column: 12) +; CHECK-DAG: ![[IDBGLOC]] = !DILocation(line: 24, column: 7, scope: ![[SCOPE]]) ; CHECK-DAG: ![[XVAR]] = !DILocalVariable(name: "x" ; CHECK-DAG: ![[JVAR]] = !DILocalVariable(name: "j" -; CHECK-DAG: ![[JDBGLOC]] = !DILocation(line: 32, column: 7, scope: ![[BLK_SCOPE]]) +; CHECK-DAG: ![[JDBGLOC]] = !DILocation(line: 32, column: 7, scope: ![[SCOPE]]) ; CHECK-DAG: ![[XVAR_RESUME]] = !DILocalVariable(name: "x" -; CHECK-DAG: ![[RESUME_PROG_SCOPE:[0-9]+]] = distinct !DISubprogram(name: "foo", linkageName: "_Z3foov" -; CHECK-DAG: ![[IDBGLOC_RESUME]] = !DILocation(line: 24, column: 7, scope: ![[RESUME_BLK_SCOPE:[0-9]+]]) -; CHECK-DAG: ![[RESUME_BLK_SCOPE]] = distinct !DILexicalBlock(scope: ![[RESUME_PROG_SCOPE]], file: !1, line: 23, column: 12) +; CHECK-DAG: ![[IDBGLOC_RESUME]] = !DILocation(line: 24, column: 7, scope: ![[RESUME_SCOPE:[0-9]+]]) +; CHECK-DAG: ![[RESUME_SCOPE]] = distinct !DILexicalBlock(scope: !22, file: !1, line: 23, column: 12) ; CHECK-DAG: ![[IVAR_RESUME]] = !DILocalVariable(name: "i" ; CHECK-DAG: ![[JVAR_RESUME]] = !DILocalVariable(name: "j" -; CHECK-DAG: ![[JDBGLOC_RESUME]] = !DILocation(line: 32, column: 7, scope: ![[RESUME_BLK_SCOPE]]) +; CHECK-DAG: ![[JDBGLOC_RESUME]] = !DILocation(line: 32, column: 7, scope: ![[RESUME_SCOPE]]) define void @f() presplitcoroutine !dbg !8 { entry: %__promise = alloca i8, align 8 @@ -73,13 +71,13 @@ entry: br i1 %alloc, label %coro.alloc, label %coro.init coro.alloc: ; preds = %entry - %size = call i64 @llvm.coro.size.i64(), !dbg !23 - %memory = call ptr @new(i64 %size), !dbg !23 - br label %coro.init, !dbg !23 + %size = call i64 @llvm.coro.size.i64() + %memory = call ptr @new(i64 %size) + br label %coro.init coro.init: ; preds = %coro.alloc, %entry - %phi.entry.alloc = phi ptr [ null, %entry ], [ %memory, %coro.alloc ], !dbg !23 - %begin = call ptr @llvm.coro.begin(token %id, ptr %phi.entry.alloc), !dbg !23 + %phi.entry.alloc = phi ptr [ null, %entry ], [ %memory, %coro.alloc ] + %begin = call ptr @llvm.coro.begin(token %id, ptr %phi.entry.alloc) %ready = call i1 @await_ready() br i1 %ready, label %init.ready, label %init.suspend @@ -241,4 +239,3 @@ declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) !20 = !DILocation(line: 43, column: 3, scope: !7) !21 = !DILocation(line: 43, column: 8, scope: !7) !22 = distinct !DILexicalBlock(scope: !8, file: !1, line: 23, column: 12) -!23 = !DILocation(line: 23, column: 6, scope: !8) _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits