(original) (raw)

Hi Dan, Yury, llvm-dev,

The WebAssembly backend has recently started using MachineInstr::collectDebugValues in r351216 \[0\] for debuginfo manipulation. FYI, there are some debuginfo changes coming that \*might\* invalidate your use of collectDebugValues, so I thought I'd let you know.

LLVM currently places DBG\_VALUE machine pseudo-instructions immediately after the instruction that defines the DBG\_VALUEs operand. collectDebugValues relies on this behaviour: it only collects DBG\_VALUEs that immediately follow the defining instruction. However, sometime soon LLVM will instead place DBG\_VALUE instructions where variable assignments in the source program occurred (ish) \[1\], removing the behaviour collectDebugValues relies on.

I have zero knowledge of WebAssembly, so my question is "Does the target code rely on this behaviour?". No WebAssembly tests fail when the behaviour changes, but I figured I'd ask anyway.

\[0\] https://reviews.llvm.org/rL351216
\[1\] https://reviews.llvm.org/D58453

--
Thanks,
Jeremy