diff options
author | Adrian Prantl <aprantl@apple.com> | 2017-03-16 17:14:56 +0000 |
---|---|---|
committer | Adrian Prantl <aprantl@apple.com> | 2017-03-16 17:14:56 +0000 |
commit | 981f03e6a2202cdc2e245e1c6d5cec70d0dfdbf6 (patch) | |
tree | 89d4b4390b13dbd18b4c7814845fb94c4c6d1865 /llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp | |
parent | 9f3585dad39f1c6f9b0eeb830254925797b36f36 (diff) | |
download | bcm5719-llvm-981f03e6a2202cdc2e245e1c6d5cec70d0dfdbf6.tar.gz bcm5719-llvm-981f03e6a2202cdc2e245e1c6d5cec70d0dfdbf6.zip |
PR32288: More efficient encoding for DWARF expr subregister access.
Citing http://bugs.llvm.org/show_bug.cgi?id=32288
The DWARF generated by LLVM includes this location:
0x55 0x93 0x04 DW_OP_reg5 DW_OP_piece(4) When GCC's DWARF is simply
0x55 (DW_OP_reg5) without the DW_OP_piece. I believe it's reasonable
to assume the DWARF consumer knows which part of a register
logically holds the value (low bytes, high bytes, how many bytes,
etc) for a primitive value like an integer.
This patch gets rid of the redundant DW_OP_piece when a subregister is
at offset 0. It also adds previously missing subregister masking when
a subregister is followed by another operation.
(This reapplies r297960 with two additional testcase updates).
rdar://problem/31069390
https://reviews.llvm.org/D31010
llvm-svn: 297965
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp')
0 files changed, 0 insertions, 0 deletions