[PATCH] D59431: [DebugInfo] Terminate more kinds of location-list ranges at the end of basic blocks

Jeremy Morse via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 25 09:02:09 PDT 2019


jmorse updated this revision to Diff 196646.
jmorse retitled this revision from "[DebugInfo] Terminate constant-value location-list ranges at the end of basic blocks" to "[DebugInfo] Terminate more kinds of location-list ranges at the end of basic blocks".
jmorse added a reviewer: dstenb.
jmorse added a comment.

I've rebased this patch to be based on r358073, Davids improvements to DbgEntityHistoryCalculator. Rather than tracking non-register DBG_VALUEs separately, this patch now iterates over all open DBG_VALUE ranges and either terminates the constant ones, or clobbers the register ones. This should be the same behaviour as the previous patch.

There's some ongoing sketchyness with stack-slot referencing DBG_VALUEs: they refer to a register, but the stack pointer doesn't appear in the ChangingRegs set, and so they never get terminated. I'll open a PR for that rather than messing with it here.

In LiveDebugValues I've reduced the complexity of operator== as we can rely on constant-value uniquing, and thus pointer uniquing. I've added a comparison for the VarLoc Kind however, as I'm a little worried that a RegNo / Immediate-value collision could occur.

The COFF pieces.ll test has changed slightly further: the ranges of loop_csr:o now terminate at the end of the block where the "loopskip_start" label is, which is more correct than before.


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

https://reviews.llvm.org/D59431

Files:
  lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp
  lib/CodeGen/LiveDebugValues.cpp
  test/DebugInfo/COFF/pieces.ll
  test/DebugInfo/MIR/AArch64/implicit-def-dead-scope.mir
  test/DebugInfo/X86/fission-ranges.ll
  test/DebugInfo/X86/live-debug-values-constprop.mir

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D59431.196646.patch
Type: text/x-patch
Size: 26628 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190425/a15262ab/attachment-0001.bin>


More information about the llvm-commits mailing list