OSDN Git Service

[DebugInfo] Align comments in debug_loc section
authorBjorn Pettersson <bjorn.a.pettersson@ericsson.com>
Fri, 5 Jan 2018 22:20:30 +0000 (22:20 +0000)
committerBjorn Pettersson <bjorn.a.pettersson@ericsson.com>
Fri, 5 Jan 2018 22:20:30 +0000 (22:20 +0000)
commit39ebb68152d0b3a3e14a081d37e1eb530292c9c9
treeb2fd65c4d9af073d2acdd3e38054880bf99a0ffb
parent135e942bcbf1e59d0c5e177510c20d3e3c3039c7
[DebugInfo] Align comments in debug_loc section

Summary:
This commit updates the BufferByteStreamer, used by DebugLocStream
to buffer bytes/comments to put in the debug_loc section, to
make sure that the Buffer and Comments vectors are synced.
Previously, when an SLEB128 or ULEB128 was emitted together with
a comment, the vectors could be out-of-sync if the LEB encoding
added several entries to the Buffer vectors, while we only added
a single entry to the Comments vector.

The goal with this is to get the comments in the debug_loc
section in the .s file correctly aligned.

Example (using ARM as target):
Instead of

  .byte 144                     @ sub-register DW_OP_regx
  .byte 128                     @ 256
  .byte 2                       @ DW_OP_piece
  .byte 147                     @ 8
  .byte 8                       @ sub-register DW_OP_regx
  .byte 144                     @ 257
  .byte 129                     @ DW_OP_piece
  .byte 2                       @ 8
  .byte 147                     @
  .byte 8                       @

we now get

  .byte 144                     @ sub-register DW_OP_regx
  .byte 128                     @ 256
  .byte 2                       @
  .byte 147                     @ DW_OP_piece
  .byte 8                       @ 8
  .byte 144                     @ sub-register DW_OP_regx
  .byte 129                     @ 257
  .byte 2                       @
  .byte 147                     @ DW_OP_piece
  .byte 8                       @ 8

Reviewers: JDevlieghere, rnk, aprantl

Reviewed By: aprantl

Subscribers: davide, Ka-Ka, uabelho, aemerson, javed.absar, kristof.beyls, llvm-commits, JDevlieghere

Differential Revision: https://reviews.llvm.org/D41763

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321907 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Support/LEB128.h
lib/CodeGen/AsmPrinter/ByteStreamer.h
test/CodeGen/ARM/debug-info-qreg.ll
test/DebugInfo/X86/dw_op_minus.ll