[PATCH] D61600: [DebugInfo] More precise variable range for stack locations

Nikola Prica via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon May 6 08:16:51 PDT 2019


NikolaPrica created this revision.
NikolaPrica added reviewers: aprantl, dstenb, llvm-commits.
NikolaPrica added a project: debug-info.
Herald added a subscriber: ormris.

Variable's stack location can stretch longer than they should. If variable is placed at stack in some nested basic block its range can be calculated to be up to next occurrence of variable's DBG_VALUE or up to the end of function thus covering basic blocks that should not be covered by location range. This is because DbgEntityHistoryCalculator ends register locations at the end of basic block only if register has been changed through course of function which is not case for register used to reference stack objects.
This patch also tries to produce single value location if location list builder managed to merge all locations into one.


https://reviews.llvm.org/D61600

Files:
  lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp
  lib/CodeGen/AsmPrinter/DwarfDebug.cpp
  test/DebugInfo/MIR/X86/dbg-stack-value-range.mir
  test/DebugInfo/X86/fission-ranges.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D61600.198278.patch
Type: text/x-patch
Size: 13798 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190506/5a634a61/attachment.bin>


More information about the llvm-commits mailing list