summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexey Bataev <a.bataev@hotmail.com>2018-07-26 16:10:05 +0000
committerAlexey Bataev <a.bataev@hotmail.com>2018-07-26 16:10:05 +0000
commit7ae86fe71c97d5b1fb4b77af464dad3aa04fa611 (patch)
tree38995715878937e10b9821876745d511b3ea5ed2
parent3d26f12de97af1c2211e12691f4a85bc1a92ea9e (diff)
downloadbcm5719-llvm-7ae86fe71c97d5b1fb4b77af464dad3aa04fa611.tar.gz
bcm5719-llvm-7ae86fe71c97d5b1fb4b77af464dad3aa04fa611.zip
[DEBUGINFO, NVPTX] Set `DW_AT_frame_base` to `DW_OP_call_frame_cfa`.
Summary: For NVPTX target the value of `DW_AT_frame_base` attribute must be set to `DW_OP_call_frame_cfa`. Reviewers: tra, jlebar, echristo Subscribers: jholewinski, JDevlieghere, llvm-commits Differential Revision: https://reviews.llvm.org/D45785 llvm-svn: 338036
-rw-r--r--llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp14
-rw-r--r--llvm/test/DebugInfo/NVPTX/cu-range-hole.ll28
-rw-r--r--llvm/test/DebugInfo/NVPTX/dbg-declare-alloca.ll22
-rw-r--r--llvm/test/DebugInfo/NVPTX/debug-info.ll30
-rw-r--r--llvm/test/DebugInfo/NVPTX/debug-loc-offset.ll32
5 files changed, 77 insertions, 49 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
index cf941a920c5..aec161c6dd7 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
@@ -327,10 +327,16 @@ DIE &DwarfCompileUnit::updateSubprogramScopeDIE(const DISubprogram *SP) {
// Only include DW_AT_frame_base in full debug info
if (!includeMinimalInlineScopes()) {
- const TargetRegisterInfo *RI = Asm->MF->getSubtarget().getRegisterInfo();
- MachineLocation Location(RI->getFrameRegister(*Asm->MF));
- if (RI->isPhysicalRegister(Location.getReg()))
- addAddress(*SPDie, dwarf::DW_AT_frame_base, Location);
+ if (Asm->MF->getTarget().getTargetTriple().isNVPTX()) {
+ DIELoc *Loc = new (DIEValueAllocator) DIELoc;
+ addUInt(*Loc, dwarf::DW_FORM_data1, dwarf::DW_OP_call_frame_cfa);
+ addBlock(*SPDie, dwarf::DW_AT_frame_base, Loc);
+ } else {
+ const TargetRegisterInfo *RI = Asm->MF->getSubtarget().getRegisterInfo();
+ MachineLocation Location(RI->getFrameRegister(*Asm->MF));
+ if (RI->isPhysicalRegister(Location.getReg()))
+ addAddress(*SPDie, dwarf::DW_AT_frame_base, Location);
+ }
}
// Add name to the name table, we do this here because we're guaranteed
diff --git a/llvm/test/DebugInfo/NVPTX/cu-range-hole.ll b/llvm/test/DebugInfo/NVPTX/cu-range-hole.ll
index 30fa2d0976d..a1f1b214400 100644
--- a/llvm/test/DebugInfo/NVPTX/cu-range-hole.ll
+++ b/llvm/test/DebugInfo/NVPTX/cu-range-hole.ll
@@ -98,6 +98,8 @@ entry:
; CHECK: // .b8 1 // DW_FORM_addr
; CHECK: // .b8 18 // DW_AT_high_pc
; CHECK: // .b8 1 // DW_FORM_addr
+; CHECK: // .b8 64 // DW_AT_frame_base
+; CHECK: // .b8 10 // DW_FORM_block1
; CHECK: // .b8 3 // DW_AT_name
; CHECK: // .b8 8 // DW_FORM_string
; CHECK: // .b8 58 // DW_AT_decl_file
@@ -140,12 +142,12 @@ entry:
; CHECK: // }
; CHECK: // .section .debug_info
; CHECK: // {
-; CHECK: // .b32 179 // Length of Unit
+; CHECK: // .b32 183 // Length of Unit
; CHECK: // .b8 2 // DWARF version number
; CHECK: // .b8 0
; CHECK: // .b32 .debug_abbrev // Offset Into Abbrev. Section
; CHECK: // .b8 8 // Address Size (in bytes)
-; CHECK: // .b8 1 // Abbrev [1] 0xb:0xac DW_TAG_compile_unit
+; CHECK: // .b8 1 // Abbrev [1] 0xb:0xb0 DW_TAG_compile_unit
; CHECK: // .b8 99 // DW_AT_producer
; CHECK: // .b8 108
; CHECK: // .b8 97
@@ -218,41 +220,45 @@ entry:
; CHECK: // .b8 0
; CHECK: // .b64 Lfunc_begin0 // DW_AT_low_pc
; CHECK: // .b64 Lfunc_end2 // DW_AT_high_pc
-; CHECK: // .b8 2 // Abbrev [2] 0x65:0x25 DW_TAG_subprogram
+; CHECK: // .b8 2 // Abbrev [2] 0x65:0x27 DW_TAG_subprogram
; CHECK: // .b64 Lfunc_begin0 // DW_AT_low_pc
; CHECK: // .b64 Lfunc_end0 // DW_AT_high_pc
+; CHECK: // .b8 1 // DW_AT_frame_base
+; CHECK: // .b8 156
; CHECK: // .b8 98 // DW_AT_name
; CHECK: // .b8 0
; CHECK: // .b8 1 // DW_AT_decl_file
; CHECK: // .b8 1 // DW_AT_decl_line
; CHECK: // .b8 1 // DW_AT_prototyped
-; CHECK: // .b32 175 // DW_AT_type
+; CHECK: // .b32 179 // DW_AT_type
; CHECK: // .b8 1 // DW_AT_external
-; CHECK: // .b8 3 // Abbrev [3] 0x80:0x9 DW_TAG_formal_parameter
+; CHECK: // .b8 3 // Abbrev [3] 0x82:0x9 DW_TAG_formal_parameter
; CHECK: // .b8 99 // DW_AT_name
; CHECK: // .b8 0
; CHECK: // .b8 1 // DW_AT_decl_file
; CHECK: // .b8 1 // DW_AT_decl_line
-; CHECK: // .b32 175 // DW_AT_type
+; CHECK: // .b32 179 // DW_AT_type
; CHECK: // .b8 0 // End Of Children Mark
-; CHECK: // .b8 2 // Abbrev [2] 0x8a:0x25 DW_TAG_subprogram
+; CHECK: // .b8 2 // Abbrev [2] 0x8c:0x27 DW_TAG_subprogram
; CHECK: // .b64 Lfunc_begin2 // DW_AT_low_pc
; CHECK: // .b64 Lfunc_end2 // DW_AT_high_pc
+; CHECK: // .b8 1 // DW_AT_frame_base
+; CHECK: // .b8 156
; CHECK: // .b8 100 // DW_AT_name
; CHECK: // .b8 0
; CHECK: // .b8 1 // DW_AT_decl_file
; CHECK: // .b8 3 // DW_AT_decl_line
; CHECK: // .b8 1 // DW_AT_prototyped
-; CHECK: // .b32 175 // DW_AT_type
+; CHECK: // .b32 179 // DW_AT_type
; CHECK: // .b8 1 // DW_AT_external
-; CHECK: // .b8 3 // Abbrev [3] 0xa5:0x9 DW_TAG_formal_parameter
+; CHECK: // .b8 3 // Abbrev [3] 0xa9:0x9 DW_TAG_formal_parameter
; CHECK: // .b8 101 // DW_AT_name
; CHECK: // .b8 0
; CHECK: // .b8 1 // DW_AT_decl_file
; CHECK: // .b8 3 // DW_AT_decl_line
-; CHECK: // .b32 175 // DW_AT_type
+; CHECK: // .b32 179 // DW_AT_type
; CHECK: // .b8 0 // End Of Children Mark
-; CHECK: // .b8 4 // Abbrev [4] 0xaf:0x7 DW_TAG_base_type
+; CHECK: // .b8 4 // Abbrev [4] 0xb3:0x7 DW_TAG_base_type
; CHECK: // .b8 105 // DW_AT_name
; CHECK: // .b8 110
; CHECK: // .b8 116
diff --git a/llvm/test/DebugInfo/NVPTX/dbg-declare-alloca.ll b/llvm/test/DebugInfo/NVPTX/dbg-declare-alloca.ll
index e741376132a..be9ef26cac3 100644
--- a/llvm/test/DebugInfo/NVPTX/dbg-declare-alloca.ll
+++ b/llvm/test/DebugInfo/NVPTX/dbg-declare-alloca.ll
@@ -51,6 +51,8 @@
; CHECK: // .b8 1 // DW_FORM_addr
; CHECK: // .b8 18 // DW_AT_high_pc
; CHECK: // .b8 1 // DW_FORM_addr
+; CHECK: // .b8 64 // DW_AT_frame_base
+; CHECK: // .b8 10 // DW_FORM_block1
; CHECK: // .b8 3 // DW_AT_name
; CHECK: // .b8 8 // DW_FORM_string
; CHECK: // .b8 58 // DW_AT_decl_file
@@ -121,12 +123,12 @@
; CHECK: // }
; CHECK: // .section .debug_info
; CHECK: // {
-; CHECK: // .b32 124 // Length of Unit
+; CHECK: // .b32 126 // Length of Unit
; CHECK: // .b8 2 // DWARF version number
; CHECK: // .b8 0
; CHECK: // .b32 .debug_abbrev // Offset Into Abbrev. Section
; CHECK: // .b8 8 // Address Size (in bytes)
-; CHECK: // .b8 1 // Abbrev [1] 0xb:0x75 DW_TAG_compile_unit
+; CHECK: // .b8 1 // Abbrev [1] 0xb:0x77 DW_TAG_compile_unit
; CHECK: // .b8 99 // DW_AT_producer
; CHECK: // .b8 108
; CHECK: // .b8 97
@@ -147,9 +149,11 @@
; CHECK: // .b8 0
; CHECK: // .b64 Lfunc_begin0 // DW_AT_low_pc
; CHECK: // .b64 Lfunc_end0 // DW_AT_high_pc
-; CHECK: // .b8 2 // Abbrev [2] 0x31:0x32 DW_TAG_subprogram
+; CHECK: // .b8 2 // Abbrev [2] 0x31:0x34 DW_TAG_subprogram
; CHECK: // .b64 Lfunc_begin0 // DW_AT_low_pc
; CHECK: // .b64 Lfunc_end0 // DW_AT_high_pc
+; CHECK: // .b8 1 // DW_AT_frame_base
+; CHECK: // .b8 156
; CHECK: // .b8 117 // DW_AT_name
; CHECK: // .b8 115
; CHECK: // .b8 101
@@ -170,7 +174,7 @@
; CHECK: // .b8 3 // DW_AT_decl_line
; CHECK: // .b8 1 // DW_AT_prototyped
; CHECK: // .b8 1 // DW_AT_external
-; CHECK: // .b8 3 // Abbrev [3] 0x56:0xc DW_TAG_variable
+; CHECK: // .b8 3 // Abbrev [3] 0x58:0xc DW_TAG_variable
; CHECK: // .b8 2 // DW_AT_location
; CHECK: // .b8 35
; CHECK: // .b8 8
@@ -178,9 +182,9 @@
; CHECK: // .b8 0
; CHECK: // .b8 1 // DW_AT_decl_file
; CHECK: // .b8 4 // DW_AT_decl_line
-; CHECK: // .b32 99 // DW_AT_type
+; CHECK: // .b32 101 // DW_AT_type
; CHECK: // .b8 0 // End Of Children Mark
-; CHECK: // .b8 4 // Abbrev [4] 0x63:0x15 DW_TAG_structure_type
+; CHECK: // .b8 4 // Abbrev [4] 0x65:0x15 DW_TAG_structure_type
; CHECK: // .b8 70 // DW_AT_name
; CHECK: // .b8 111
; CHECK: // .b8 111
@@ -188,17 +192,17 @@
; CHECK: // .b8 4 // DW_AT_byte_size
; CHECK: // .b8 1 // DW_AT_decl_file
; CHECK: // .b8 1 // DW_AT_decl_line
-; CHECK: // .b8 5 // Abbrev [5] 0x6b:0xc DW_TAG_member
+; CHECK: // .b8 5 // Abbrev [5] 0x6d:0xc DW_TAG_member
; CHECK: // .b8 120 // DW_AT_name
; CHECK: // .b8 0
-; CHECK: // .b32 120 // DW_AT_type
+; CHECK: // .b32 122 // DW_AT_type
; CHECK: // .b8 1 // DW_AT_decl_file
; CHECK: // .b8 1 // DW_AT_decl_line
; CHECK: // .b8 2 // DW_AT_data_member_location
; CHECK: // .b8 35
; CHECK: // .b8 0
; CHECK: // .b8 0 // End Of Children Mark
-; CHECK: // .b8 6 // Abbrev [6] 0x78:0x7 DW_TAG_base_type
+; CHECK: // .b8 6 // Abbrev [6] 0x7a:0x7 DW_TAG_base_type
; CHECK: // .b8 105 // DW_AT_name
; CHECK: // .b8 110
; CHECK: // .b8 116
diff --git a/llvm/test/DebugInfo/NVPTX/debug-info.ll b/llvm/test/DebugInfo/NVPTX/debug-info.ll
index 48cda91355b..fcc6343000a 100644
--- a/llvm/test/DebugInfo/NVPTX/debug-info.ll
+++ b/llvm/test/DebugInfo/NVPTX/debug-info.ll
@@ -629,6 +629,8 @@ if.end: ; preds = %if.then, %entry
; CHECK: // .b8 1 // DW_FORM_addr
; CHECK: // .b8 18 // DW_AT_high_pc
; CHECK: // .b8 1 // DW_FORM_addr
+; CHECK: // .b8 64 // DW_AT_frame_base
+; CHECK: // .b8 10 // DW_FORM_block1
; CHECK: // .b8 135 // DW_AT_MIPS_linkage_name
; CHECK: // .b8 64
; CHECK: // .b8 8 // DW_FORM_string
@@ -696,12 +698,12 @@ if.end: ; preds = %if.then, %entry
; CHECK: // }
; CHECK: // .section .debug_info
; CHECK: // {
-; CHECK: // .b32 10023 // Length of Unit
+; CHECK: // .b32 10025 // Length of Unit
; CHECK: // .b8 2 // DWARF version number
; CHECK: // .b8 0
; CHECK: // .b32 .debug_abbrev // Offset Into Abbrev. Section
; CHECK: // .b8 8 // Address Size (in bytes)
-; CHECK: // .b8 1 // Abbrev [1] 0xb:0x2720 DW_TAG_compile_unit
+; CHECK: // .b8 1 // Abbrev [1] 0xb:0x2722 DW_TAG_compile_unit
; CHECK: // .b8 0 // DW_AT_producer
; CHECK: // .b8 4 // DW_AT_language
; CHECK: // .b8 0
@@ -8300,9 +8302,11 @@ if.end: ; preds = %if.then, %entry
; CHECK: // .b8 3 // DW_AT_decl_line
; CHECK: // .b32 3345 // DW_AT_type
; CHECK: // .b8 0 // End Of Children Mark
-; CHECK: // .b8 40 // Abbrev [40] 0x2671:0xb9 DW_TAG_subprogram
+; CHECK: // .b8 40 // Abbrev [40] 0x2671:0xbb DW_TAG_subprogram
; CHECK: // .b64 Lfunc_begin0 // DW_AT_low_pc
; CHECK: // .b64 Lfunc_end0 // DW_AT_high_pc
+; CHECK: // .b8 1 // DW_AT_frame_base
+; CHECK: // .b8 156
; CHECK: // .b8 95 // DW_AT_MIPS_linkage_name
; CHECK: // .b8 90
; CHECK: // .b8 53
@@ -8327,61 +8331,61 @@ if.end: ; preds = %if.then, %entry
; CHECK: // .b8 12 // DW_AT_decl_file
; CHECK: // .b8 5 // DW_AT_decl_line
; CHECK: // .b8 1 // DW_AT_external
-; CHECK: // .b8 39 // Abbrev [39] 0x269a:0x9 DW_TAG_formal_parameter
+; CHECK: // .b8 39 // Abbrev [39] 0x269c:0x9 DW_TAG_formal_parameter
; CHECK: // .b8 110 // DW_AT_name
; CHECK: // .b8 0
; CHECK: // .b8 12 // DW_AT_decl_file
; CHECK: // .b8 5 // DW_AT_decl_line
; CHECK: // .b32 2332 // DW_AT_type
-; CHECK: // .b8 39 // Abbrev [39] 0x26a3:0x9 DW_TAG_formal_parameter
+; CHECK: // .b8 39 // Abbrev [39] 0x26a5:0x9 DW_TAG_formal_parameter
; CHECK: // .b8 97 // DW_AT_name
; CHECK: // .b8 0
; CHECK: // .b8 12 // DW_AT_decl_file
; CHECK: // .b8 5 // DW_AT_decl_line
; CHECK: // .b32 1554 // DW_AT_type
-; CHECK: // .b8 39 // Abbrev [39] 0x26ac:0x9 DW_TAG_formal_parameter
+; CHECK: // .b8 39 // Abbrev [39] 0x26ae:0x9 DW_TAG_formal_parameter
; CHECK: // .b8 120 // DW_AT_name
; CHECK: // .b8 0
; CHECK: // .b8 12 // DW_AT_decl_file
; CHECK: // .b8 5 // DW_AT_decl_line
; CHECK: // .b32 3345 // DW_AT_type
-; CHECK: // .b8 39 // Abbrev [39] 0x26b5:0x9 DW_TAG_formal_parameter
+; CHECK: // .b8 39 // Abbrev [39] 0x26b7:0x9 DW_TAG_formal_parameter
; CHECK: // .b8 121 // DW_AT_name
; CHECK: // .b8 0
; CHECK: // .b8 12 // DW_AT_decl_file
; CHECK: // .b8 5 // DW_AT_decl_line
; CHECK: // .b32 3345 // DW_AT_type
-; CHECK: // .b8 41 // Abbrev [41] 0x26be:0x9 DW_TAG_variable
+; CHECK: // .b8 41 // Abbrev [41] 0x26c0:0x9 DW_TAG_variable
; CHECK: // .b8 105 // DW_AT_name
; CHECK: // .b8 0
; CHECK: // .b8 12 // DW_AT_decl_file
; CHECK: // .b8 6 // DW_AT_decl_line
; CHECK: // .b32 2332 // DW_AT_type
-; CHECK: // .b8 42 // Abbrev [42] 0x26c7:0x17 DW_TAG_inlined_subroutine
+; CHECK: // .b8 42 // Abbrev [42] 0x26c9:0x17 DW_TAG_inlined_subroutine
; CHECK: // .b32 8432 // DW_AT_abstract_origin
; CHECK: // .b64 Ltmp0 // DW_AT_low_pc
; CHECK: // .b64 Ltmp1 // DW_AT_high_pc
; CHECK: // .b8 12 // DW_AT_call_file
; CHECK: // .b8 6 // DW_AT_call_line
-; CHECK: // .b8 42 // Abbrev [42] 0x26de:0x17 DW_TAG_inlined_subroutine
+; CHECK: // .b8 42 // Abbrev [42] 0x26e0:0x17 DW_TAG_inlined_subroutine
; CHECK: // .b32 9191 // DW_AT_abstract_origin
; CHECK: // .b64 Ltmp1 // DW_AT_low_pc
; CHECK: // .b64 Ltmp2 // DW_AT_high_pc
; CHECK: // .b8 12 // DW_AT_call_file
; CHECK: // .b8 6 // DW_AT_call_line
-; CHECK: // .b8 42 // Abbrev [42] 0x26f5:0x17 DW_TAG_inlined_subroutine
+; CHECK: // .b8 42 // Abbrev [42] 0x26f7:0x17 DW_TAG_inlined_subroutine
; CHECK: // .b32 9785 // DW_AT_abstract_origin
; CHECK: // .b64 Ltmp2 // DW_AT_low_pc
; CHECK: // .b64 Ltmp3 // DW_AT_high_pc
; CHECK: // .b8 12 // DW_AT_call_file
; CHECK: // .b8 6 // DW_AT_call_line
-; CHECK: // .b8 43 // Abbrev [43] 0x270c:0x1d DW_TAG_inlined_subroutine
+; CHECK: // .b8 43 // Abbrev [43] 0x270e:0x1d DW_TAG_inlined_subroutine
; CHECK: // .b32 9791 // DW_AT_abstract_origin
; CHECK: // .b64 Ltmp8 // DW_AT_low_pc
; CHECK: // .b64 Ltmp9 // DW_AT_high_pc
; CHECK: // .b8 12 // DW_AT_call_file
; CHECK: // .b8 8 // DW_AT_call_line
-; CHECK: // .b8 44 // Abbrev [44] 0x2723:0x5 DW_TAG_formal_parameter
+; CHECK: // .b8 44 // Abbrev [44] 0x2725:0x5 DW_TAG_formal_parameter
; CHECK: // .b32 9820 // DW_AT_abstract_origin
; CHECK: // .b8 0 // End Of Children Mark
; CHECK: // .b8 0 // End Of Children Mark
diff --git a/llvm/test/DebugInfo/NVPTX/debug-loc-offset.ll b/llvm/test/DebugInfo/NVPTX/debug-loc-offset.ll
index 7cf4ab3c7b6..e836f9662e5 100644
--- a/llvm/test/DebugInfo/NVPTX/debug-loc-offset.ll
+++ b/llvm/test/DebugInfo/NVPTX/debug-loc-offset.ll
@@ -164,6 +164,8 @@ attributes #2 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "n
; CHECK: // .b8 1 // DW_FORM_addr
; CHECK: // .b8 18 // DW_AT_high_pc
; CHECK: // .b8 1 // DW_FORM_addr
+; CHECK: // .b8 64 // DW_AT_frame_base
+; CHECK: // .b8 10 // DW_FORM_block1
; CHECK: // .b8 135 // DW_AT_MIPS_linkage_name
; CHECK: // .b8 64
; CHECK: // .b8 8 // DW_FORM_string
@@ -197,6 +199,8 @@ attributes #2 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "n
; CHECK: // .b8 1 // DW_FORM_addr
; CHECK: // .b8 18 // DW_AT_high_pc
; CHECK: // .b8 1 // DW_FORM_addr
+; CHECK: // .b8 64 // DW_AT_frame_base
+; CHECK: // .b8 10 // DW_FORM_block1
; CHECK: // .b8 135 // DW_AT_MIPS_linkage_name
; CHECK: // .b8 64
; CHECK: // .b8 8 // DW_FORM_string
@@ -240,12 +244,12 @@ attributes #2 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "n
; CHECK: // }
; CHECK: // .section .debug_info
; CHECK: // {
-; CHECK: // .b32 148 // Length of Unit
+; CHECK: // .b32 150 // Length of Unit
; CHECK: // .b8 2 // DWARF version number
; CHECK: // .b8 0
; CHECK: // .b32 .debug_abbrev // Offset Into Abbrev. Section
; CHECK: // .b8 8 // Address Size (in bytes)
-; CHECK: // .b8 1 // Abbrev [1] 0xb:0x8d DW_TAG_compile_unit
+; CHECK: // .b8 1 // Abbrev [1] 0xb:0x8f DW_TAG_compile_unit
; CHECK: // .b8 99 // DW_AT_producer
; CHECK: // .b8 108
; CHECK: // .b8 97
@@ -321,9 +325,11 @@ attributes #2 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "n
; CHECK: // .b8 65 // DW_AT_name
; CHECK: // .b8 0
; CHECK: // .b8 1 // DW_AT_declaration
-; CHECK: // .b8 3 // Abbrev [3] 0x68:0x2f DW_TAG_subprogram
+; CHECK: // .b8 3 // Abbrev [3] 0x68:0x31 DW_TAG_subprogram
; CHECK: // .b64 Lfunc_begin1 // DW_AT_low_pc
; CHECK: // .b64 Lfunc_end1 // DW_AT_high_pc
+; CHECK: // .b8 1 // DW_AT_frame_base
+; CHECK: // .b8 156
; CHECK: // .b8 95 // DW_AT_MIPS_linkage_name
; CHECK: // .b8 90
; CHECK: // .b8 51
@@ -340,20 +346,20 @@ attributes #2 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "n
; CHECK: // .b8 2 // DW_AT_decl_file
; CHECK: // .b8 6 // DW_AT_decl_line
; CHECK: // .b8 1 // DW_AT_external
-; CHECK: // .b8 4 // Abbrev [4] 0x89:0xd DW_TAG_variable
+; CHECK: // .b8 4 // Abbrev [4] 0x8b:0xd DW_TAG_variable
; CHECK: // .b8 122 // DW_AT_name
; CHECK: // .b8 0
; CHECK: // .b8 2 // DW_AT_decl_file
; CHECK: // .b8 7 // DW_AT_decl_line
-; CHECK: // .b64 .debug_info+298 // DW_AT_type
+; CHECK: // .b64 .debug_info+302 // DW_AT_type
; CHECK: // .b8 0 // End Of Children Mark
; CHECK: // .b8 0 // End Of Children Mark
-; CHECK: // .b32 150 // Length of Unit
+; CHECK: // .b32 152 // Length of Unit
; CHECK: // .b8 2 // DWARF version number
; CHECK: // .b8 0
; CHECK: // .b32 .debug_abbrev // Offset Into Abbrev. Section
; CHECK: // .b8 8 // Address Size (in bytes)
-; CHECK: // .b8 1 // Abbrev [1] 0xb:0x8f DW_TAG_compile_unit
+; CHECK: // .b8 1 // Abbrev [1] 0xb:0x91 DW_TAG_compile_unit
; CHECK: // .b8 99 // DW_AT_producer
; CHECK: // .b8 108
; CHECK: // .b8 97
@@ -425,9 +431,11 @@ attributes #2 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "n
; CHECK: // .b8 0
; CHECK: // .b64 Lfunc_begin0 // DW_AT_low_pc
; CHECK: // .b64 Lfunc_end0 // DW_AT_high_pc
-; CHECK: // .b8 5 // Abbrev [5] 0x64:0x2e DW_TAG_subprogram
+; CHECK: // .b8 5 // Abbrev [5] 0x64:0x30 DW_TAG_subprogram
; CHECK: // .b64 Lfunc_begin0 // DW_AT_low_pc
; CHECK: // .b64 Lfunc_end0 // DW_AT_high_pc
+; CHECK: // .b8 1 // DW_AT_frame_base
+; CHECK: // .b8 156
; CHECK: // .b8 95 // DW_AT_MIPS_linkage_name
; CHECK: // .b8 90
; CHECK: // .b8 51
@@ -442,16 +450,16 @@ attributes #2 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "n
; CHECK: // .b8 0
; CHECK: // .b8 1 // DW_AT_decl_file
; CHECK: // .b8 1 // DW_AT_decl_line
-; CHECK: // .b32 146 // DW_AT_type
+; CHECK: // .b32 148 // DW_AT_type
; CHECK: // .b8 1 // DW_AT_external
-; CHECK: // .b8 6 // Abbrev [6] 0x88:0x9 DW_TAG_formal_parameter
+; CHECK: // .b8 6 // Abbrev [6] 0x8a:0x9 DW_TAG_formal_parameter
; CHECK: // .b8 98 // DW_AT_name
; CHECK: // .b8 0
; CHECK: // .b8 1 // DW_AT_decl_file
; CHECK: // .b8 1 // DW_AT_decl_line
-; CHECK: // .b32 146 // DW_AT_type
+; CHECK: // .b32 148 // DW_AT_type
; CHECK: // .b8 0 // End Of Children Mark
-; CHECK: // .b8 7 // Abbrev [7] 0x92:0x7 DW_TAG_base_type
+; CHECK: // .b8 7 // Abbrev [7] 0x94:0x7 DW_TAG_base_type
; CHECK: // .b8 105 // DW_AT_name
; CHECK: // .b8 110
; CHECK: // .b8 116
OpenPOWER on IntegriCloud