diff options
Diffstat (limited to 'llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp')
-rw-r--r-- | llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp | 13 |
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()) |