[PATCH] D88896: [DebugInfo][InstrRef][3/4] Produce DBG_INSTR_REFs for all* variable locations

Jeremy Morse via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 5 11:43:21 PDT 2021


jmorse updated this revision to Diff 356540.
jmorse added a subscriber: StephenTozer.
jmorse added a comment.

Reshuffle this patch -- the "fixup half done instruction references" code moves to MachineFunction::finalizeDebugInstrRefs, and I've removed the ignore-widening-subreg-substitutions code. It didn't have any significant effect on variable locations, I think it was just dropping information.

Paging @StephenTozer , I've reshuffled debug instruction emission a little after the variadic-locations work landed -- I've moved single operand emission to `InstrEmitter::EmitDbgValueFromSingleOp`, and no-location emission to `InstrEmitter::EmitDbgNoLocation`. Now, empty variadic variable locations cannonicalise to DBG_VALUE $noreg which casuses a few test changes. arg-dbg-value-list.ll caught my eye -- can variadic locations not recover unused argument values right now? (I imagine this is tied up in the nest of special casing for arguments in SelectionDAG).


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D88896/new/

https://reviews.llvm.org/D88896

Files:
  llvm/include/llvm/CodeGen/MachineFunction.h
  llvm/lib/CodeGen/MachineFunction.cpp
  llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
  llvm/lib/CodeGen/SelectionDAG/InstrEmitter.h
  llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
  llvm/test/DebugInfo/X86/arg-dbg-value-list.ll
  llvm/test/DebugInfo/X86/dbg-val-list-undef.ll
  llvm/test/DebugInfo/X86/instr-ref-selectiondag.ll
  llvm/test/DebugInfo/X86/invalidated-dbg-value-is-undef.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D88896.356540.patch
Type: text/x-patch
Size: 29611 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210705/1979f8f6/attachment-0001.bin>


More information about the llvm-commits mailing list