[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