From 540b4a5fb31086b6d40735e96e6ec497022107e7 Mon Sep 17 00:00:00 2001 From: Nico Weber Date: Mon, 28 Jun 2021 11:16:11 -0400 Subject: [PATCH] Revert "[DebugInfo] Enable variadic debug value salvaging" This reverts commit adace79652174d126be290cab42b3122569fe15d. Still breaks things, see comment on https://reviews.llvm.org/D91722 --- llvm/lib/Transforms/Utils/Local.cpp | 6 +++++- llvm/test/DebugInfo/NVPTX/debug-info.ll | 10 ++++------ llvm/test/DebugInfo/salvage-gep.ll | 1 + llvm/test/DebugInfo/salvage-nonconst-binop.ll | 1 + 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/llvm/lib/Transforms/Utils/Local.cpp b/llvm/lib/Transforms/Utils/Local.cpp index 8af22af..cfbc24c 100644 --- a/llvm/lib/Transforms/Utils/Local.cpp +++ b/llvm/lib/Transforms/Utils/Local.cpp @@ -1748,7 +1748,11 @@ void llvm::salvageDebugInfoForDbgValues( } else if (isa(DII) && DII->getNumVariableLocationOps() + AdditionalValues.size() <= MaxDebugArgs) { - DII->addVariableLocationOps(AdditionalValues, SalvagedExpr); + // TODO: Uncomment the line below and delete the two beneath it to enable + // salvaging of dbg.values with multiple location operands. + // DII->addVariableLocationOps(AdditionalValues, SalvagedExpr); + Value *Undef = UndefValue::get(I.getOperand(0)->getType()); + DII->replaceVariableLocationOp(I.getOperand(0), Undef); } else { // Do not salvage using DIArgList for dbg.addr/dbg.declare, as it is // currently only valid for stack value expressions. diff --git a/llvm/test/DebugInfo/NVPTX/debug-info.ll b/llvm/test/DebugInfo/NVPTX/debug-info.ll index 15ea41e..08a7e03 100644 --- a/llvm/test/DebugInfo/NVPTX/debug-info.ll +++ b/llvm/test/DebugInfo/NVPTX/debug-info.ll @@ -702,12 +702,12 @@ if.end: ; preds = %if.then, %entry ; CHECK-NEXT: } ; CHECK-NEXT: .section .debug_info ; CHECK-NEXT: { -; CHECK-NEXT:.b32 10034 // Length of Unit +; CHECK-NEXT:.b32 10029 // Length of Unit ; CHECK-NEXT:.b8 2 // DWARF version number ; CHECK-NEXT:.b8 0 ; CHECK-NEXT:.b32 .debug_abbrev // Offset Into Abbrev. Section ; CHECK-NEXT:.b8 8 // Address Size (in bytes) -; CHECK-NEXT:.b8 1 // Abbrev [1] 0xb:0x272b DW_TAG_compile_unit +; CHECK-NEXT:.b8 1 // Abbrev [1] 0xb:0x2726 DW_TAG_compile_unit ; CHECK-NEXT:.b8 0 // DW_AT_producer ; CHECK-NEXT:.b8 4 // DW_AT_language ; CHECK-NEXT:.b8 0 @@ -8306,7 +8306,7 @@ if.end: ; preds = %if.then, %entry ; CHECK-NEXT:.b8 3 // DW_AT_decl_line ; CHECK-NEXT:.b32 3345 // DW_AT_type ; CHECK-NEXT:.b8 0 // End Of Children Mark -; CHECK-NEXT:.b8 40 // Abbrev [40] 0x2671:0xc4 DW_TAG_subprogram +; CHECK-NEXT:.b8 40 // Abbrev [40] 0x2671:0xbf DW_TAG_subprogram ; CHECK-NEXT:.b64 Lfunc_begin0 // DW_AT_low_pc ; CHECK-NEXT:.b64 Lfunc_end0 // DW_AT_high_pc ; CHECK-NEXT:.b8 1 // DW_AT_frame_base @@ -8386,7 +8386,7 @@ if.end: ; preds = %if.then, %entry ; CHECK-NEXT:.b8 12 // DW_AT_call_file ; CHECK-NEXT:.b8 6 // DW_AT_call_line ; CHECK-NEXT:.b8 37 // DW_AT_call_column -; CHECK-NEXT:.b8 43 // Abbrev [43] 0x2711:0x23 DW_TAG_inlined_subroutine +; CHECK-NEXT:.b8 43 // Abbrev [43] 0x2711:0x1e DW_TAG_inlined_subroutine ; CHECK-NEXT:.b32 9791 // DW_AT_abstract_origin ; CHECK-NEXT:.b64 Ltmp9 // DW_AT_low_pc ; CHECK-NEXT:.b64 Ltmp10 // DW_AT_high_pc @@ -8395,8 +8395,6 @@ if.end: ; preds = %if.then, %entry ; CHECK-NEXT:.b8 5 // DW_AT_call_column ; CHECK-NEXT:.b8 44 // Abbrev [44] 0x2729:0x5 DW_TAG_formal_parameter ; CHECK-NEXT:.b32 9820 // DW_AT_abstract_origin -; CHECK-NEXT:.b8 44 // Abbrev [44] 0x272e:0x5 DW_TAG_formal_parameter -; CHECK-NEXT:.b32 9829 // DW_AT_abstract_origin ; CHECK-NEXT:.b8 0 // End Of Children Mark ; CHECK-NEXT:.b8 0 // End Of Children Mark ; CHECK-NEXT:.b8 0 // End Of Children Mark diff --git a/llvm/test/DebugInfo/salvage-gep.ll b/llvm/test/DebugInfo/salvage-gep.ll index 6c31b0f..dfb3b53 100644 --- a/llvm/test/DebugInfo/salvage-gep.ll +++ b/llvm/test/DebugInfo/salvage-gep.ll @@ -1,3 +1,4 @@ +; XFAIL: * ; RUN: opt %s -dce -S | FileCheck %s ; Tests the salvaging of GEP instructions, specifically struct indexing and diff --git a/llvm/test/DebugInfo/salvage-nonconst-binop.ll b/llvm/test/DebugInfo/salvage-nonconst-binop.ll index b470bc1..f9ee1a6 100644 --- a/llvm/test/DebugInfo/salvage-nonconst-binop.ll +++ b/llvm/test/DebugInfo/salvage-nonconst-binop.ll @@ -1,3 +1,4 @@ +; XFAIL: * ; RUN: opt %s -dce -S | FileCheck %s ; Tests the salvaging of binary operators that use more than one non-constant -- 2.7.4