aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
diff options
context:
space:
mode:
authorStephen Tozer <stephen.tozer@sony.com>2022-08-24 14:54:33 +0100
committerStephen Tozer <stephen.tozer@sony.com>2022-08-24 15:24:32 +0100
commit58d104b352a65bec3fb7a8fd23bf2d408b4c76f7 (patch)
tree04a9412f0a8f5075d46f675d77c57d29b9f66249 /llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
parent2616e00949b18f5bd1223cb6054f7ad8ffa7e9c8 (diff)
downloadllvm-58d104b352a65bec3fb7a8fd23bf2d408b4c76f7.zip
llvm-58d104b352a65bec3fb7a8fd23bf2d408b4c76f7.tar.gz
llvm-58d104b352a65bec3fb7a8fd23bf2d408b4c76f7.tar.bz2
Revert "[DebugInfo] Extend the InstrRef LDV to support DbgValues with many Ops"
Reverting due to reported errors when running Linux kernel builds with KMSAN -gdwarf-4. This reverts commit 2cb9e1ac422f46de0ab728c6c9d50ebafbfe372a.
Diffstat (limited to 'llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp')
-rw-r--r--llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp b/llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
index 27a5a30..9aea790 100644
--- a/llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
+++ b/llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
@@ -1341,6 +1341,19 @@ bool InstrRefBasedLDV::transferDebugValue(const MachineInstr &MI) {
if (Scope == nullptr)
return true; // handled it; by doing nothing
+ // For now, ignore DBG_VALUE_LISTs when extending ranges. Allow it to
+ // contribute to locations in this block, but don't propagate further.
+ // Interpret it like a DBG_VALUE $noreg.
+ if (MI.isDebugValueList()) {
+ SmallVector<DbgOpID> EmptyDebugOps;
+ SmallVector<ResolvedDbgOp> EmptyResolvedDebugOps;
+ if (VTracker)
+ VTracker->defVar(MI, Properties, EmptyDebugOps);
+ if (TTracker)
+ TTracker->redefVar(MI, Properties, EmptyResolvedDebugOps);
+ return true;
+ }
+
// MLocTracker needs to know that this register is read, even if it's only
// read by a debug inst.
for (const MachineOperand &MO : MI.debug_operands())