[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
diff --git a/llvm/test/DebugInfo/NVPTX/cu-range-hole.ll b/llvm/test/DebugInfo/NVPTX/cu-range-hole.ll
index 30fa2d0..a1f1b21 100644
--- a/llvm/test/DebugInfo/NVPTX/cu-range-hole.ll
+++ b/llvm/test/DebugInfo/NVPTX/cu-range-hole.ll
@@ -98,6 +98,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
@@ -140,12 +142,12 @@
 ; 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 @@
 ; 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 e741376..be9ef26 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 48cda91..fcc6343 100644
--- a/llvm/test/DebugInfo/NVPTX/debug-info.ll
+++ b/llvm/test/DebugInfo/NVPTX/debug-info.ll
@@ -629,6 +629,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 135                              // DW_AT_MIPS_linkage_name
 ; CHECK: // .b8 64
 ; CHECK: // .b8 8                                // DW_FORM_string
@@ -696,12 +698,12 @@
 ; 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 @@
 ; 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 @@
 ; 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 7cf4ab3..e836f96 100644
--- a/llvm/test/DebugInfo/NVPTX/debug-loc-offset.ll
+++ b/llvm/test/DebugInfo/NVPTX/debug-loc-offset.ll
@@ -164,6 +164,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 135                              // DW_AT_MIPS_linkage_name
 ; CHECK: // .b8 64
 ; CHECK: // .b8 8                                // DW_FORM_string
@@ -197,6 +199,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 135                              // DW_AT_MIPS_linkage_name
 ; CHECK: // .b8 64
 ; CHECK: // .b8 8                                // DW_FORM_string
@@ -240,12 +244,12 @@
 ; 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 @@
 ; 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 @@
 ; 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 @@
 ; 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 @@
 ; 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