[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