[llvm] [llvm-dwarfdump][LineCov 1/3] Add variable coverage metrics (PR #169646)
Stephen Tozer via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 17 04:58:39 PST 2025
================
@@ -29,106 +29,93 @@
; ModuleID = 'test.c'
source_filename = "test.c"
-target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
+target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
; Function Attrs: noinline nounwind uwtable
-define dso_local void @fn1(i32 noundef %0, i32 noundef %1) local_unnamed_addr !dbg !9 {
- call void @llvm.dbg.value(metadata i32 %0, metadata !14, metadata !DIExpression()), !dbg !18
- call void @llvm.dbg.value(metadata i32 %1, metadata !15, metadata !DIExpression()), !dbg !18
- call void @llvm.dbg.value(metadata !DIArgList(i32 %0, i32 %1), metadata !16, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_arg, 1, DW_OP_plus, DW_OP_stack_value)), !dbg !18
- call void @llvm.dbg.value(metadata i32 undef, metadata !16, metadata !DIExpression()), !dbg !18
- call void @llvm.dbg.value(metadata i32 undef, metadata !16, metadata !DIExpression()), !dbg !18
- call void @llvm.dbg.value(metadata i32 7, metadata !17, metadata !DIExpression()), !dbg !18
- tail call void @fn2(i32 noundef 7), !dbg !19
- call void @llvm.dbg.value(metadata i32 undef, metadata !16, metadata !DIExpression(DW_OP_constu, 1, DW_OP_minus, DW_OP_stack_value)), !dbg !18
- ret void, !dbg !20
+define dso_local void @fn1(i32 %0, i32 %1) local_unnamed_addr !dbg !10 {
+ #dbg_value(i32 poison, !15, !DIExpression(), !19)
+ #dbg_value(i32 poison, !16, !DIExpression(), !19)
+ #dbg_value(!DIArgList(i32 poison, i32 poison), !17, !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_arg, 1, DW_OP_plus, DW_OP_stack_value), !19)
+ #dbg_value(i32 poison, !17, !DIExpression(), !19)
+ #dbg_value(i32 poison, !17, !DIExpression(), !19)
+ #dbg_value(i32 7, !18, !DIExpression(), !19)
+ tail call void @fn2(i32 noundef 7) #3, !dbg !20
+ #dbg_value(i32 poison, !17, !DIExpression(DW_OP_constu, 1, DW_OP_minus, DW_OP_stack_value), !19)
----------------
SLTozer wrote:
Looks like all of the non-const arguments became `poison`, rather than just the ones that were previously `undef`. It's good to test at least one variable that's completely dead, so I'd recommend keeping at least one "fully dead" variable.
https://github.com/llvm/llvm-project/pull/169646
More information about the llvm-commits
mailing list