diff options
author | Adrian Prantl <aprantl@apple.com> | 2017-03-16 16:34:14 +0000 |
---|---|---|
committer | Adrian Prantl <aprantl@apple.com> | 2017-03-16 16:34:14 +0000 |
commit | 8508e87998cefaa07fd48e78079dadbf80fc51d4 (patch) | |
tree | 3804b89b067f03df5c4a2302f4f08b5bdb038309 /llvm/lib/CodeGen/DFAPacketizer.cpp | |
parent | 138a3faa3eada7b847e01ff026adc7f79bf69b6c (diff) | |
download | bcm5719-llvm-8508e87998cefaa07fd48e78079dadbf80fc51d4.tar.gz bcm5719-llvm-8508e87998cefaa07fd48e78079dadbf80fc51d4.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.
rdar://problem/31069390
https://reviews.llvm.org/D31010
llvm-svn: 297960
Diffstat (limited to 'llvm/lib/CodeGen/DFAPacketizer.cpp')
0 files changed, 0 insertions, 0 deletions