Skip to content

Commit 6ade1a9

Browse files
committed
[BasicBlockUtils] Remove redundant llvm.dbg instructions after blocks
merged There will generate more redundant llvm.dbg instructions when compiling with "-g" flag, and increase compile time. The issue is happened after loop-unroll pass.` Fixes #89073.
1 parent d8d2dea commit 6ade1a9

File tree

3 files changed

+4
-2
lines changed

3 files changed

+4
-2
lines changed

llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -333,6 +333,10 @@ bool llvm::MergeBlockIntoPredecessor(BasicBlock *BB, DomTreeUpdater *DTU,
333333
// Finally, erase the old block and update dominator info.
334334
DeleteDeadBlock(BB, DTU);
335335

336+
// Remove redundant "llvm.dbg" instrunctions after blocks merged.
337+
if (PredBB->getParent()->getSubprogram())
338+
RemoveRedundantDbgInstrs(PredBB);
339+
336340
return true;
337341
}
338342

llvm/test/Transforms/SimplifyCFG/hoist-dbgvalue-inlined.ll

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ init:
99

1010
; CHECK: %vala = load i64, ptr %ptr
1111
; CHECK-NEXT: call void @llvm.dbg.value(metadata i64 %vala, metadata [[MD:![0-9]*]]
12-
; CHECK-NEXT: call void @llvm.dbg.value(metadata i64 %vala, metadata [[MD]]
1312
; CHECK-NEXT: %valbmasked = and i64 %vala, 1
1413

1514
a: ; preds = %init

llvm/test/Transforms/SimplifyCFG/hoist-dbgvalue.ll

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ define i1 @hoist_with_debug2(i32 %x) !dbg !22 {
4747
; CHECK-NEXT: entry:
4848
; CHECK-NEXT: [[TOBOOL_NOT:%.*]] = icmp ugt i32 [[X:%.*]], 2
4949
; CHECK-NEXT: call void @llvm.dbg.value(metadata i32 [[X]], metadata [[META21:![0-9]+]], metadata !DIExpression()), !dbg [[DBG23:![0-9]+]]
50-
; CHECK-NEXT: call void @llvm.dbg.value(metadata i32 [[X]], metadata [[META21]], metadata !DIExpression()), !dbg [[DBG23]]
5150
; CHECK-NEXT: [[DOT:%.*]] = select i1 [[TOBOOL_NOT]], i1 false, i1 true
5251
; CHECK-NEXT: ret i1 [[DOT]]
5352
;

0 commit comments

Comments
 (0)