From a058736c9c9204d5f9f67f8bb56aa4a943acf137 Mon Sep 17 00:00:00 2001 From: Reid Kleckner Date: Tue, 29 Aug 2017 21:41:21 +0000 Subject: [dwarfdump] Pretty print location expressions and location lists Summary: Based on Fred's patch here: https://reviews.llvm.org/D6771 I can't seem to commandeer the old review, so I'm creating a new one. With that change the locations exrpessions are pretty printed inline in the DIE tree. The output looks like this for debug_loc entries: DW_AT_location [DW_FORM_data4] (0x00000000 0x0000000000000001 - 0x000000000000000b: DW_OP_consts +3 0x000000000000000b - 0x0000000000000012: DW_OP_consts +7 0x0000000000000012 - 0x000000000000001b: DW_OP_reg0 RAX, DW_OP_piece 0x4 0x000000000000001b - 0x0000000000000024: DW_OP_breg5 RDI+0) And like this for debug_loc.dwo entries: DW_AT_location [DW_FORM_sec_offset] (0x00000000 Addr idx 2 (w/ length 190): DW_OP_consts +0, DW_OP_stack_value Addr idx 3 (w/ length 23): DW_OP_reg0 RAX, DW_OP_piece 0x4) Simple locations without ranges are printed inline: DW_AT_location [DW_FORM_block1] (DW_OP_reg4 RSI, DW_OP_piece 0x4, DW_OP_bit_piece 0x20 0x0) The debug_loc(.dwo) dumping in changed accordingly to factor the code. Reviewers: dblaikie, aprantl, friss Subscribers: mgorny, javed.absar, hiraditya, llvm-commits, JDevlieghere Differential Revision: https://reviews.llvm.org/D37123 llvm-svn: 312042 --- llvm/test/DebugInfo/Sparc/subreg.ll | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'llvm/test/DebugInfo/Sparc') diff --git a/llvm/test/DebugInfo/Sparc/subreg.ll b/llvm/test/DebugInfo/Sparc/subreg.ll index 74475c5b0f2..720126d3227 100644 --- a/llvm/test/DebugInfo/Sparc/subreg.ll +++ b/llvm/test/DebugInfo/Sparc/subreg.ll @@ -1,7 +1,6 @@ -; RUN: llc -filetype=obj -O0 < %s -mtriple sparc64-unknown-linux-gnu | llvm-dwarfdump - | FileCheck %s +; RUN: llc -filetype=obj -O0 < %s -mtriple sparc64-unknown-linux-gnu | llvm-dwarfdump - -debug-dump=loc | FileCheck %s ; The undescribable 128-bit register should be split into two 64-bit registers. -; CHECK: Location description: 90 48 93 08 90 49 93 08 -; DW_OP_reg74 DW_OP_piece 8 DW_OP_reg75 DW_OP_piece 8 ... +; CHECK: {{.*}} - {{.*}}: DW_OP_regx D0, DW_OP_piece 0x8, DW_OP_regx D1, DW_OP_piece 0x8 target datalayout = "E-m:e-i64:64-n32:64-S128" target triple = "sparc64" -- cgit v1.2.3