[PATCH] D73283: Handle complex DWARF expressions in combination with "complex" registers

Adrian Prantl via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 23 10:56:01 PST 2020


aprantl created this revision.
aprantl added reviewers: bjope, vsk, djtodoro.
aprantl added a project: debug-info.
Herald added a subscriber: hiraditya.
Herald added a project: LLVM.
aprantl added a parent revision: D72938: Fix an assertion failure in DwarfExpression's subregister composition.

Thanks to @bjope for pointing out this problem!

Here's my proposed solution:

If the register itself can only be described by combining multiple subregisters, we cannot use DW_OP_piece, since it doesn't safely compose with another complex expression, Since it is not possible to apply any DWARF operation to the combined DW_OP_pieces. By manualy shifting the subregisters into place, this can be worked around at the expense of a slightly larger encoding.


https://reviews.llvm.org/D73283

Files:
  llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp
  llvm/lib/CodeGen/AsmPrinter/DwarfExpression.h
  llvm/test/DebugInfo/MIR/ARM/split-superreg-complex.mir
  llvm/test/DebugInfo/MIR/ARM/subregister-full-piece.mir

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D73283.239943.patch
Type: text/x-patch
Size: 24391 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200123/3482ebe5/attachment-0001.bin>


More information about the llvm-commits mailing list