[llvm] [DebugInfo] Fix #76058: missing debug location in processSDiv function (PR #76118)
Shan Huang via llvm-commits
llvm-commits at lists.llvm.org
Thu Dec 21 01:05:01 PST 2023
================
@@ -0,0 +1,50 @@
+; RUN: opt -passes=correlated-propagation -S < %s | FileCheck %s
+; CHECK: %{{[a-zA-Z0-9_]*}} = udiv i8 %x.nonneg, %y, !dbg ![[DBGLOC:[0-9]+]]
+; CHECK-NEXT: %{{[a-zA-Z0-9_]*}}.neg = sub i8 0, %rem1, !dbg ![[DBGLOC]]
+
+; ModuleID = 'reduced.ll'
+source_filename = "orig.ll"
+target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
+target triple = "thumbv7m-arm-none-eabi"
+
+; Function Attrs: inaccessiblememonly nocallback nofree nosync nounwind willreturn
+declare void @llvm.assume(i1 noundef) #0
+
+define void @test8_neg_neg(i8 %x, i8 %y) !dbg !5 {
+ %c0 = icmp sle i8 %x, 0, !dbg !13
+ call void @llvm.dbg.value(metadata i1 %c0, metadata !9, metadata !DIExpression()), !dbg !13
+ call void @llvm.assume(i1 %c0), !dbg !14
+ %c1 = icmp sge i8 %y, 0, !dbg !15
+ call void @llvm.dbg.value(metadata i1 %c1, metadata !11, metadata !DIExpression()), !dbg !15
+ call void @llvm.assume(i1 %c1), !dbg !16
+ %rem = sdiv i8 %x, %y, !dbg !17
+ call void @llvm.dbg.value(metadata i8 %rem, metadata !12, metadata !DIExpression()), !dbg !17
+ ret void, !dbg !18
+}
+
+; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
+declare void @llvm.dbg.value(metadata, metadata, metadata) #1
+
+!llvm.module.flags = !{!0}
+!llvm.dbg.cu = !{!1}
+!llvm.debugify = !{!3, !4}
----------------
Apochens wrote:
This testcase is actually obtained by modifying another similar testcase [srem_missing_debugloc.ll](https://github.com/llvm/llvm-project/blob/ebd0249fcf672ca164e6cc21379f1c62807b6d56/llvm/test/Transforms/CorrelatedValuePropagation/srem_missing_debugloc.ll). So, I don't know whether the llvm.debugify metatdata can be dropped.
https://github.com/llvm/llvm-project/pull/76118
More information about the llvm-commits
mailing list