diff --git a/llvm/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp b/llvm/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp index 42715efbee09d1..2c90b9c1500985 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp @@ -264,7 +264,7 @@ bool DbgValueHistoryMap::hasNonEmptyLocation(const Entries &Entries) const { const MachineInstr *MI = Entry.getInstr(); assert(MI->isDebugValue()); // A DBG_VALUE $noreg is an empty variable location - if (MI->getOperand(0).isReg() && MI->getOperand(0).getReg() == 0) + if (MI->isUndefDebugValue()) continue; return true; diff --git a/llvm/test/DebugInfo/X86/dbg_value_list_emission.mir b/llvm/test/DebugInfo/X86/dbg_value_list_emission.mir index e447fa82f95b3e..b96582473cd0b0 100644 --- a/llvm/test/DebugInfo/X86/dbg_value_list_emission.mir +++ b/llvm/test/DebugInfo/X86/dbg_value_list_emission.mir @@ -93,9 +93,7 @@ body: | ; (8) Check that a single $noreg location invalidates the entire entry. DBG_VALUE_LIST !30, !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_arg, 1, DW_OP_plus, DW_OP_stack_value), $eax, $noreg, debug-location !15 - ; CHECK: DW_TAG_variable - ; CHECK-NEXT: DW_AT_name ("localh") - ; CHECK-NOT: DW_AT_location + ; CHECK-NOT: DW_AT_name ("localh") RET64 debug-location !15 ...