[llvm] [DebugInfo][IndVarSimplify] fix missing debug location updates (PR #91443)

Orlando Cazalet-Hyams via llvm-commits llvm-commits at lists.llvm.org
Wed May 8 06:24:32 PDT 2024


================
@@ -0,0 +1,65 @@
+; RUN: opt < %s -passes=indvars -S | FileCheck %s
+
+; This testcase checks the preservation of debug locations of newly created 
+; phi, sitofp, add and icmp instructions in IndVarSimplify Pass.
+
+define void @test1() !dbg !5 {
+; CHECK-LABEL: @test1(
+; CHECK-NEXT:  entry:
+; CHECK-NEXT:    br label [[BB:%.*]], !dbg
+; CHECK:  bb:
+; CHECK:    [[IV_INT:%.*]] = phi i32 [ 0, [[ENTRY:%.*]] ], [ [[DOTINT:%.*]], [[BB]] ], !dbg
+; CHECK:    [[INDVAR_CONV:%.*]] = sitofp i32 [[IV_INT]] to double, !dbg
+; CHECK:    [[DOTINT]] = add nuw nsw i32 [[IV_INT]], 1, !dbg
+; CHECK:    [[TMP1:%.*]] = icmp ult i32 [[DOTINT]], 10000, !dbg
+;
+entry:
+  br label %bb, !dbg !16
+
+bb:                                               ; preds = %bb, %entry
+  %iv = phi double [ 0.000000e+00, %entry ], [ %1, %bb ], !dbg !17
+  tail call void @llvm.dbg.value(metadata double %iv, metadata !9, metadata !DIExpression()), !dbg !17
+  %0 = tail call i32 @foo(double %iv), !dbg !18
+  tail call void @llvm.dbg.value(metadata i32 %0, metadata !11, metadata !DIExpression()), !dbg !18
+  %1 = fadd double %iv, 1.000000e+00, !dbg !19
+  tail call void @llvm.dbg.value(metadata double %1, metadata !13, metadata !DIExpression()), !dbg !19
+  %2 = fcmp olt double %1, 1.000000e+04, !dbg !20
+  tail call void @llvm.dbg.value(metadata i1 %2, metadata !14, metadata !DIExpression()), !dbg !20
----------------
OCHyams wrote:

nit: could remove the dbg.values (and the declaration) as they just add noise

https://github.com/llvm/llvm-project/pull/91443


More information about the llvm-commits mailing list