summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
diff options
context:
space:
mode:
authorAdrian Prantl <aprantl@apple.com>2017-03-16 17:14:56 +0000
committerAdrian Prantl <aprantl@apple.com>2017-03-16 17:14:56 +0000
commit981f03e6a2202cdc2e245e1c6d5cec70d0dfdbf6 (patch)
tree89d4b4390b13dbd18b4c7814845fb94c4c6d1865 /llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
parent9f3585dad39f1c6f9b0eeb830254925797b36f36 (diff)
downloadbcm5719-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
OpenPOWER on IntegriCloud