[PATCH] D58963: [JumpThreading] Retain debug info when replacing branch instructions
Jeremy Morse via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Mar 11 04:49:57 PDT 2019
This revision was automatically updated to reflect the committed changes.
Closed by commit rL355822: [JumpThreading] Retain debug info when replacing branch instructions (authored by jmorse, committed by ).
Changed prior to commit:
https://reviews.llvm.org/D58963?vs=189847&id=190070#toc
Repository:
rL LLVM
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D58963/new/
https://reviews.llvm.org/D58963
Files:
llvm/trunk/lib/Transforms/Scalar/JumpThreading.cpp
llvm/trunk/test/Transforms/JumpThreading/branch-debug-info.ll
Index: llvm/trunk/lib/Transforms/Scalar/JumpThreading.cpp
===================================================================
--- llvm/trunk/lib/Transforms/Scalar/JumpThreading.cpp
+++ llvm/trunk/lib/Transforms/Scalar/JumpThreading.cpp
@@ -1142,7 +1142,9 @@
unsigned ToKeep = Ret == LazyValueInfo::True ? 0 : 1;
BasicBlock *ToRemoveSucc = CondBr->getSuccessor(ToRemove);
ToRemoveSucc->removePredecessor(BB, true);
- BranchInst::Create(CondBr->getSuccessor(ToKeep), CondBr);
+ BranchInst *UncondBr =
+ BranchInst::Create(CondBr->getSuccessor(ToKeep), CondBr);
+ UncondBr->setDebugLoc(CondBr->getDebugLoc());
CondBr->eraseFromParent();
if (CondCmp->use_empty())
CondCmp->eraseFromParent();
@@ -1245,7 +1247,8 @@
BasicBlock *KeepSucc = BI->getSuccessor(*Implication ? 0 : 1);
BasicBlock *RemoveSucc = BI->getSuccessor(*Implication ? 1 : 0);
RemoveSucc->removePredecessor(BB);
- BranchInst::Create(KeepSucc, BI);
+ BranchInst *UncondBI = BranchInst::Create(KeepSucc, BI);
+ UncondBI->setDebugLoc(BI->getDebugLoc());
BI->eraseFromParent();
DTU->applyUpdatesPermissive({{DominatorTree::Delete, BB, RemoveSucc}});
return true;
Index: llvm/trunk/test/Transforms/JumpThreading/branch-debug-info.ll
===================================================================
--- llvm/trunk/test/Transforms/JumpThreading/branch-debug-info.ll
+++ llvm/trunk/test/Transforms/JumpThreading/branch-debug-info.ll
@@ -0,0 +1,41 @@
+; RUN: opt %s -debugify -jump-threading -S | FileCheck %s
+; Tests Bug 37966
+
+define void @test0(i32 %i) {
+; CHECK-LABEL: @test0(
+; CHECK: left:
+; CHECK: br label %left, !dbg ![[DBG0:[0-9]+]]
+ entry:
+ %c0 = icmp ult i32 %i, 5
+ br i1 %c0, label %left, label %right
+
+ left:
+ br i1 %c0, label %left, label %right
+
+ right:
+ ret void
+}
+
+define void @test1(i32 %i, i32 %len) {
+; CHECK-LABEL: @test1(
+; CHECK: left:
+; CHECK: br label %right, !dbg ![[DBG1:[0-9]+]]
+ entry:
+ %i.inc = add nuw i32 %i, 1
+ %c0 = icmp ult i32 %i.inc, %len
+ br i1 %c0, label %left, label %right
+
+ left:
+ %c1 = icmp ult i32 %i, %len
+ br i1 %c1, label %right, label %left0
+
+ left0:
+ ret void
+
+ right:
+ ret void
+}
+
+; CHECK-DAG: ![[DBG0]] = !DILocation(
+; CHECK-DAG: ![[DBG1]] = !DILocation(
+
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D58963.190070.patch
Type: text/x-patch
Size: 2358 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190311/beebaecf/attachment.bin>
More information about the llvm-commits
mailing list