forked from OSchip/llvm-project
				
			[DEBUGINFO, NVPTX] Enable support for the debug info on NVPTX target.
Summary: Enable full support for the debug info. Reviewers: echristo Subscribers: jholewinski, aprantl, JDevlieghere, llvm-commits Differential Revision: https://reviews.llvm.org/D46189 llvm-svn: 351846
This commit is contained in:
		
							parent
							
								
									0efe27e62b
								
							
						
					
					
						commit
						4e9db1beff
					
				| 
						 | 
				
			
			@ -37,12 +37,11 @@ NVPTXMCAsmInfo::NVPTXMCAsmInfo(const Triple &TheTriple) {
 | 
			
		|||
  HiddenDeclarationVisibilityAttr = HiddenVisibilityAttr = MCSA_Invalid;
 | 
			
		||||
  ProtectedVisibilityAttr = MCSA_Invalid;
 | 
			
		||||
 | 
			
		||||
  // FIXME: remove comment once debug info is properly supported.
 | 
			
		||||
  Data8bitsDirective = "// .b8 ";
 | 
			
		||||
  Data8bitsDirective = ".b8 ";
 | 
			
		||||
  Data16bitsDirective = nullptr; // not supported
 | 
			
		||||
  Data32bitsDirective = "// .b32 ";
 | 
			
		||||
  Data64bitsDirective = "// .b64 ";
 | 
			
		||||
  ZeroDirective = "// .b8";
 | 
			
		||||
  Data32bitsDirective = ".b32 ";
 | 
			
		||||
  Data64bitsDirective = ".b64 ";
 | 
			
		||||
  ZeroDirective = ".b8";
 | 
			
		||||
  AsciiDirective = nullptr; // not supported
 | 
			
		||||
  AscizDirective = nullptr; // not supported
 | 
			
		||||
  SupportsQuotedNames = false;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -81,10 +81,9 @@ void NVPTXTargetStreamer::changeSection(const MCSection *CurSection,
 | 
			
		|||
                                        raw_ostream &OS) {
 | 
			
		||||
  assert(!SubSection && "SubSection is not null!");
 | 
			
		||||
  const MCObjectFileInfo *FI = getStreamer().getContext().getObjectFileInfo();
 | 
			
		||||
  // FIXME: remove comment once debug info is properly supported.
 | 
			
		||||
  // Emit closing brace for DWARF sections only.
 | 
			
		||||
  if (isDwarfSection(FI, CurSection))
 | 
			
		||||
    OS << "//\t}\n";
 | 
			
		||||
    OS << "\t}\n";
 | 
			
		||||
  if (isDwarfSection(FI, Section)) {
 | 
			
		||||
    // Emit DWARF .file directives in the outermost scope.
 | 
			
		||||
    outputDwarfFileDirectives();
 | 
			
		||||
| 
						 | 
				
			
			@ -92,7 +91,7 @@ void NVPTXTargetStreamer::changeSection(const MCSection *CurSection,
 | 
			
		|||
    Section->PrintSwitchToSection(*getStreamer().getContext().getAsmInfo(),
 | 
			
		||||
                                  FI->getTargetTriple(), OS, SubSection);
 | 
			
		||||
    // DWARF sections are enclosed into braces - emit the open one.
 | 
			
		||||
    OS << "//\t{\n";
 | 
			
		||||
    OS << "\t{\n";
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -901,9 +901,8 @@ void NVPTXAsmPrinter::emitHeader(Module &M, raw_ostream &O,
 | 
			
		|||
    if (HasFullDebugInfo)
 | 
			
		||||
      break;
 | 
			
		||||
  }
 | 
			
		||||
  // FIXME: remove comment once debug info is properly supported.
 | 
			
		||||
  if (MMI && MMI->hasDebugInfo() && HasFullDebugInfo)
 | 
			
		||||
    O << "//, debug";
 | 
			
		||||
    O << ", debug";
 | 
			
		||||
 | 
			
		||||
  O << "\n";
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -954,10 +953,9 @@ bool NVPTXAsmPrinter::doFinalization(Module &M) {
 | 
			
		|||
  clearAnnotationCache(&M);
 | 
			
		||||
 | 
			
		||||
  delete[] gv_array;
 | 
			
		||||
  // FIXME: remove comment once debug info is properly supported.
 | 
			
		||||
  // Close the last emitted section
 | 
			
		||||
  if (HasDebugInfo)
 | 
			
		||||
    OutStreamer->EmitRawText("//\t}");
 | 
			
		||||
    OutStreamer->EmitRawText("\t}");
 | 
			
		||||
 | 
			
		||||
  // Output last DWARF .file directives, if any.
 | 
			
		||||
  static_cast<NVPTXTargetStreamer *>(OutStreamer->getTargetStreamer())
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,6 @@
 | 
			
		|||
; RUN: llc < %s -mtriple=nvptx64-nvidia-cuda | FileCheck %s
 | 
			
		||||
 | 
			
		||||
; CHECK: .target sm_{{[0-9]+}}//, debug
 | 
			
		||||
; CHECK: .target sm_{{[0-9]+}}, debug
 | 
			
		||||
 | 
			
		||||
; CHECK: .visible .func  (.param .b32 func_retval0) b(
 | 
			
		||||
; CHECK: .param .b32 b_param_0
 | 
			
		||||
| 
						 | 
				
			
			@ -72,145 +72,145 @@ entry:
 | 
			
		|||
  ret i32 %add, !dbg !16
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
; CHECK: // .section .debug_abbrev
 | 
			
		||||
; CHECK-NEXT: // {
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: // .b8 17                               // DW_TAG_compile_unit
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_CHILDREN_yes
 | 
			
		||||
; CHECK-NEXT: // .b8 37                               // DW_AT_producer
 | 
			
		||||
; CHECK-NEXT: // .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: // .b8 19                               // DW_AT_language
 | 
			
		||||
; CHECK-NEXT: // .b8 5                                // DW_FORM_data2
 | 
			
		||||
; CHECK-NEXT: // .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: // .b8 16                               // DW_AT_stmt_list
 | 
			
		||||
; CHECK-NEXT: // .b8 6                                // DW_FORM_data4
 | 
			
		||||
; CHECK-NEXT: // .b8 27                               // DW_AT_comp_dir
 | 
			
		||||
; CHECK-NEXT: // .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: // .b8 17                               // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_FORM_addr
 | 
			
		||||
; CHECK-NEXT: // .b8 18                               // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_FORM_addr
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: // .b8 2                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: // .b8 46                               // DW_TAG_subprogram
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_CHILDREN_yes
 | 
			
		||||
; CHECK-NEXT: // .b8 17                               // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_FORM_addr
 | 
			
		||||
; CHECK-NEXT: // .b8 18                               // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_FORM_addr
 | 
			
		||||
; CHECK-NEXT: // .b8 64                               // DW_AT_frame_base
 | 
			
		||||
; CHECK-NEXT: // .b8 10                               // DW_FORM_block1
 | 
			
		||||
; CHECK-NEXT: // .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: // .b8 58                               // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: // .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: // .b8 59                               // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: // .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: // .b8 39                               // DW_AT_prototyped
 | 
			
		||||
; CHECK-NEXT: // .b8 12                               // DW_FORM_flag
 | 
			
		||||
; CHECK-NEXT: // .b8 73                               // DW_AT_type
 | 
			
		||||
; CHECK-NEXT: // .b8 19                               // DW_FORM_ref4
 | 
			
		||||
; CHECK-NEXT: // .b8 63                               // DW_AT_external
 | 
			
		||||
; CHECK-NEXT: // .b8 12                               // DW_FORM_flag
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: // .b8 3                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: // .b8 5                                // DW_TAG_formal_parameter
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // DW_CHILDREN_no
 | 
			
		||||
; CHECK-NEXT: // .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: // .b8 58                               // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: // .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: // .b8 59                               // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: // .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: // .b8 73                               // DW_AT_type
 | 
			
		||||
; CHECK-NEXT: // .b8 19                               // DW_FORM_ref4
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: // .b8 4                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: // .b8 36                               // DW_TAG_base_type
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // DW_CHILDREN_no
 | 
			
		||||
; CHECK-NEXT: // .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: // .b8 62                               // DW_AT_encoding
 | 
			
		||||
; CHECK-NEXT: // .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: // .b8 11                               // DW_AT_byte_size
 | 
			
		||||
; CHECK-NEXT: // .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(3)
 | 
			
		||||
; CHECK-NEXT: // }
 | 
			
		||||
; CHECK-NEXT: // .section .debug_info
 | 
			
		||||
; CHECK-NEXT: // {
 | 
			
		||||
; CHECK-NEXT: // .b32 183                             // Length of Unit
 | 
			
		||||
; CHECK-NEXT: // .b8 2                                // DWARF version number
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b32 .debug_abbrev                   // Offset Into Abbrev. Section
 | 
			
		||||
; CHECK-NEXT: // .b8 8                                // Address Size (in bytes)
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // Abbrev [1] 0xb:0xb0 DW_TAG_compile_unit
 | 
			
		||||
; CHECK-NEXT: // .b8 99,108,97,110,103,32,118,101,114,115,105,111,110,32,51,46,53,46,48,32,40,116,114,117,110,107,32,50,48,52,49,54,52,41,32,40,108,108,118,109 // DW_AT_producer
 | 
			
		||||
; CHECK-NEXT: // .b8 47,116,114,117,110,107,32,50,48,52,49,56,51,41
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b8 12                               // DW_AT_language
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b8 98,46,99                         // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b32 .debug_line                     // DW_AT_stmt_list
 | 
			
		||||
; CHECK-NEXT: // .b8 47,115,111,117,114,99,101        // DW_AT_comp_dir
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b64 Lfunc_begin0                    // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: // .b64 Lfunc_end2                      // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: // .b8 2                                // Abbrev [2] 0x65:0x27 DW_TAG_subprogram
 | 
			
		||||
; CHECK-NEXT: // .b64 Lfunc_begin0                    // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: // .b64 Lfunc_end0                      // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_AT_frame_base
 | 
			
		||||
; CHECK-NEXT: // .b8 156
 | 
			
		||||
; CHECK-NEXT: // .b8 98                               // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_AT_prototyped
 | 
			
		||||
; CHECK-NEXT: // .b32 179                             // DW_AT_type
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_AT_external
 | 
			
		||||
; CHECK-NEXT: // .b8 3                                // Abbrev [3] 0x82:0x9 DW_TAG_formal_parameter
 | 
			
		||||
; CHECK-NEXT: // .b8 99                               // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: // .b32 179                             // DW_AT_type
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // End Of Children Mark
 | 
			
		||||
; CHECK-NEXT: // .b8 2                                // Abbrev [2] 0x8c:0x27 DW_TAG_subprogram
 | 
			
		||||
; CHECK-NEXT: // .b64 Lfunc_begin2                    // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: // .b64 Lfunc_end2                      // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_AT_frame_base
 | 
			
		||||
; CHECK-NEXT: // .b8 156
 | 
			
		||||
; CHECK-NEXT: // .b8 100                              // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: // .b8 3                                // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_AT_prototyped
 | 
			
		||||
; CHECK-NEXT: // .b32 179                             // DW_AT_type
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_AT_external
 | 
			
		||||
; CHECK-NEXT: // .b8 3                                // Abbrev [3] 0xa9:0x9 DW_TAG_formal_parameter
 | 
			
		||||
; CHECK-NEXT: // .b8 101                              // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: // .b8 3                                // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: // .b32 179                             // DW_AT_type
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // End Of Children Mark
 | 
			
		||||
; CHECK-NEXT: // .b8 4                                // Abbrev [4] 0xb3:0x7 DW_TAG_base_type
 | 
			
		||||
; CHECK-NEXT: // .b8 105,110,116                      // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b8 5                                // DW_AT_encoding
 | 
			
		||||
; CHECK-NEXT: // .b8 4                                // DW_AT_byte_size
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // End Of Children Mark
 | 
			
		||||
; CHECK-NEXT: // }
 | 
			
		||||
; CHECK-NEXT: // .section .debug_macinfo
 | 
			
		||||
; CHECK-NEXT: // {
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // End Of Macro List Mark
 | 
			
		||||
; CHECK:      // }
 | 
			
		||||
; CHECK: .section .debug_abbrev
 | 
			
		||||
; CHECK-NEXT: {
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: .b8 17                               // DW_TAG_compile_unit
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_CHILDREN_yes
 | 
			
		||||
; CHECK-NEXT: .b8 37                               // DW_AT_producer
 | 
			
		||||
; CHECK-NEXT: .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: .b8 19                               // DW_AT_language
 | 
			
		||||
; CHECK-NEXT: .b8 5                                // DW_FORM_data2
 | 
			
		||||
; CHECK-NEXT: .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: .b8 16                               // DW_AT_stmt_list
 | 
			
		||||
; CHECK-NEXT: .b8 6                                // DW_FORM_data4
 | 
			
		||||
; CHECK-NEXT: .b8 27                               // DW_AT_comp_dir
 | 
			
		||||
; CHECK-NEXT: .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: .b8 17                               // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_FORM_addr
 | 
			
		||||
; CHECK-NEXT: .b8 18                               // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_FORM_addr
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: .b8 2                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: .b8 46                               // DW_TAG_subprogram
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_CHILDREN_yes
 | 
			
		||||
; CHECK-NEXT: .b8 17                               // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_FORM_addr
 | 
			
		||||
; CHECK-NEXT: .b8 18                               // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_FORM_addr
 | 
			
		||||
; CHECK-NEXT: .b8 64                               // DW_AT_frame_base
 | 
			
		||||
; CHECK-NEXT: .b8 10                               // DW_FORM_block1
 | 
			
		||||
; CHECK-NEXT: .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: .b8 58                               // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: .b8 59                               // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: .b8 39                               // DW_AT_prototyped
 | 
			
		||||
; CHECK-NEXT: .b8 12                               // DW_FORM_flag
 | 
			
		||||
; CHECK-NEXT: .b8 73                               // DW_AT_type
 | 
			
		||||
; CHECK-NEXT: .b8 19                               // DW_FORM_ref4
 | 
			
		||||
; CHECK-NEXT: .b8 63                               // DW_AT_external
 | 
			
		||||
; CHECK-NEXT: .b8 12                               // DW_FORM_flag
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: .b8 3                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: .b8 5                                // DW_TAG_formal_parameter
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // DW_CHILDREN_no
 | 
			
		||||
; CHECK-NEXT: .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: .b8 58                               // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: .b8 59                               // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: .b8 73                               // DW_AT_type
 | 
			
		||||
; CHECK-NEXT: .b8 19                               // DW_FORM_ref4
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: .b8 4                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: .b8 36                               // DW_TAG_base_type
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // DW_CHILDREN_no
 | 
			
		||||
; CHECK-NEXT: .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: .b8 62                               // DW_AT_encoding
 | 
			
		||||
; CHECK-NEXT: .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: .b8 11                               // DW_AT_byte_size
 | 
			
		||||
; CHECK-NEXT: .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(3)
 | 
			
		||||
; CHECK-NEXT: }
 | 
			
		||||
; CHECK-NEXT: .section .debug_info
 | 
			
		||||
; CHECK-NEXT: {
 | 
			
		||||
; CHECK-NEXT: .b32 183                             // Length of Unit
 | 
			
		||||
; CHECK-NEXT: .b8 2                                // DWARF version number
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b32 .debug_abbrev                   // Offset Into Abbrev. Section
 | 
			
		||||
; CHECK-NEXT: .b8 8                                // Address Size (in bytes)
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // Abbrev [1] 0xb:0xb0 DW_TAG_compile_unit
 | 
			
		||||
; CHECK-NEXT: .b8 99,108,97,110,103,32,118,101,114,115,105,111,110,32,51,46,53,46,48,32,40,116,114,117,110,107,32,50,48,52,49,54,52,41,32,40,108,108,118,109 // DW_AT_producer
 | 
			
		||||
; CHECK-NEXT: .b8 47,116,114,117,110,107,32,50,48,52,49,56,51,41
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b8 12                               // DW_AT_language
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b8 98,46,99                         // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b32 .debug_line                     // DW_AT_stmt_list
 | 
			
		||||
; CHECK-NEXT: .b8 47,115,111,117,114,99,101        // DW_AT_comp_dir
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b64 Lfunc_begin0                    // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: .b64 Lfunc_end2                      // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: .b8 2                                // Abbrev [2] 0x65:0x27 DW_TAG_subprogram
 | 
			
		||||
; CHECK-NEXT: .b64 Lfunc_begin0                    // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: .b64 Lfunc_end0                      // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_AT_frame_base
 | 
			
		||||
; CHECK-NEXT: .b8 156
 | 
			
		||||
; CHECK-NEXT: .b8 98                               // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_AT_prototyped
 | 
			
		||||
; CHECK-NEXT: .b32 179                             // DW_AT_type
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_AT_external
 | 
			
		||||
; CHECK-NEXT: .b8 3                                // Abbrev [3] 0x82:0x9 DW_TAG_formal_parameter
 | 
			
		||||
; CHECK-NEXT: .b8 99                               // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: .b32 179                             // DW_AT_type
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // End Of Children Mark
 | 
			
		||||
; CHECK-NEXT: .b8 2                                // Abbrev [2] 0x8c:0x27 DW_TAG_subprogram
 | 
			
		||||
; CHECK-NEXT: .b64 Lfunc_begin2                    // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: .b64 Lfunc_end2                      // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_AT_frame_base
 | 
			
		||||
; CHECK-NEXT: .b8 156
 | 
			
		||||
; CHECK-NEXT: .b8 100                              // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: .b8 3                                // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_AT_prototyped
 | 
			
		||||
; CHECK-NEXT: .b32 179                             // DW_AT_type
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_AT_external
 | 
			
		||||
; CHECK-NEXT: .b8 3                                // Abbrev [3] 0xa9:0x9 DW_TAG_formal_parameter
 | 
			
		||||
; CHECK-NEXT: .b8 101                              // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: .b8 3                                // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: .b32 179                             // DW_AT_type
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // End Of Children Mark
 | 
			
		||||
; CHECK-NEXT: .b8 4                                // Abbrev [4] 0xb3:0x7 DW_TAG_base_type
 | 
			
		||||
; CHECK-NEXT: .b8 105,110,116                      // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b8 5                                // DW_AT_encoding
 | 
			
		||||
; CHECK-NEXT: .b8 4                                // DW_AT_byte_size
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // End Of Children Mark
 | 
			
		||||
; CHECK-NEXT: }
 | 
			
		||||
; CHECK-NEXT: .section .debug_macinfo
 | 
			
		||||
; CHECK-NEXT: {
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // End Of Macro List Mark
 | 
			
		||||
; CHECK:      }
 | 
			
		||||
 | 
			
		||||
attributes #0 = { nounwind uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
 | 
			
		||||
attributes #1 = { nounwind readnone }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,6 @@
 | 
			
		|||
; RUN: llc < %s -mtriple=nvptx64-nvidia-cuda | FileCheck %s
 | 
			
		||||
 | 
			
		||||
; CHECK: .target sm_20//, debug
 | 
			
		||||
; CHECK: .target sm_20, debug
 | 
			
		||||
 | 
			
		||||
; CHECK: .visible .func use_dbg_declare()
 | 
			
		||||
; CHECK: .local .align 8 .b8 __local_depot0[8];
 | 
			
		||||
| 
						 | 
				
			
			@ -23,169 +23,169 @@
 | 
			
		|||
 | 
			
		||||
; CHECK: .file 1 "test{{(/|\\\\)}}t.c"
 | 
			
		||||
 | 
			
		||||
; CHECK: // .section .debug_abbrev
 | 
			
		||||
; CHECK-NEXT: // {
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: // .b8 17                               // DW_TAG_compile_unit
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_CHILDREN_yes
 | 
			
		||||
; CHECK-NEXT: // .b8 37                               // DW_AT_producer
 | 
			
		||||
; CHECK-NEXT: // .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: // .b8 19                               // DW_AT_language
 | 
			
		||||
; CHECK-NEXT: // .b8 5                                // DW_FORM_data2
 | 
			
		||||
; CHECK-NEXT: // .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: // .b8 16                               // DW_AT_stmt_list
 | 
			
		||||
; CHECK-NEXT: // .b8 6                                // DW_FORM_data4
 | 
			
		||||
; CHECK-NEXT: // .b8 27                               // DW_AT_comp_dir
 | 
			
		||||
; CHECK-NEXT: // .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: // .b8 17                               // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_FORM_addr
 | 
			
		||||
; CHECK-NEXT: // .b8 18                               // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_FORM_addr
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: // .b8 2                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: // .b8 46                               // DW_TAG_subprogram
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_CHILDREN_yes
 | 
			
		||||
; CHECK-NEXT: // .b8 17                               // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_FORM_addr
 | 
			
		||||
; CHECK-NEXT: // .b8 18                               // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_FORM_addr
 | 
			
		||||
; CHECK-NEXT: // .b8 64                               // DW_AT_frame_base
 | 
			
		||||
; CHECK-NEXT: // .b8 10                               // DW_FORM_block1
 | 
			
		||||
; CHECK-NEXT: // .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: // .b8 58                               // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: // .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: // .b8 59                               // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: // .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: // .b8 39                               // DW_AT_prototyped
 | 
			
		||||
; CHECK-NEXT: // .b8 12                               // DW_FORM_flag
 | 
			
		||||
; CHECK-NEXT: // .b8 63                               // DW_AT_external
 | 
			
		||||
; CHECK-NEXT: // .b8 12                               // DW_FORM_flag
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: // .b8 3                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: // .b8 52                               // DW_TAG_variable
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // DW_CHILDREN_no
 | 
			
		||||
; CHECK-NEXT: // .b8 2                                // DW_AT_location
 | 
			
		||||
; CHECK-NEXT: // .b8 10                               // DW_FORM_block1
 | 
			
		||||
; CHECK-NEXT: // .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: // .b8 58                               // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: // .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: // .b8 59                               // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: // .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: // .b8 73                               // DW_AT_type
 | 
			
		||||
; CHECK-NEXT: // .b8 19                               // DW_FORM_ref4
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: // .b8 4                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: // .b8 19                               // DW_TAG_structure_type
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_CHILDREN_yes
 | 
			
		||||
; CHECK-NEXT: // .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: // .b8 11                               // DW_AT_byte_size
 | 
			
		||||
; CHECK-NEXT: // .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: // .b8 58                               // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: // .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: // .b8 59                               // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: // .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: // .b8 5                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: // .b8 13                               // DW_TAG_member
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // DW_CHILDREN_no
 | 
			
		||||
; CHECK-NEXT: // .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: // .b8 73                               // DW_AT_type
 | 
			
		||||
; CHECK-NEXT: // .b8 19                               // DW_FORM_ref4
 | 
			
		||||
; CHECK-NEXT: // .b8 58                               // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: // .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: // .b8 59                               // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: // .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: // .b8 56                               // DW_AT_data_member_location
 | 
			
		||||
; CHECK-NEXT: // .b8 10                               // DW_FORM_block1
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: // .b8 6                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: // .b8 36                               // DW_TAG_base_type
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // DW_CHILDREN_no
 | 
			
		||||
; CHECK-NEXT: // .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: // .b8 62                               // DW_AT_encoding
 | 
			
		||||
; CHECK-NEXT: // .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: // .b8 11                               // DW_AT_byte_size
 | 
			
		||||
; CHECK-NEXT: // .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(3)
 | 
			
		||||
; CHECK-NEXT: // }
 | 
			
		||||
; CHECK-NEXT: // .section .debug_info
 | 
			
		||||
; CHECK-NEXT: // {
 | 
			
		||||
; CHECK-NEXT: // .b32 135                             // Length of Unit
 | 
			
		||||
; CHECK-NEXT: // .b8 2                                // DWARF version number
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b32 .debug_abbrev                   // Offset Into Abbrev. Section
 | 
			
		||||
; CHECK-NEXT: // .b8 8                                // Address Size (in bytes)
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // Abbrev [1] 0xb:0x80 DW_TAG_compile_unit
 | 
			
		||||
; CHECK-NEXT: // .b8 99,108,97,110,103                // DW_AT_producer
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b8 12                               // DW_AT_language
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b8 116,46,99                        // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b32 .debug_line                     // DW_AT_stmt_list
 | 
			
		||||
; CHECK-NEXT: // .b8 116,101,115,116                  // DW_AT_comp_dir
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b64 Lfunc_begin0                    // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: // .b64 Lfunc_end0                      // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: // .b8 2                                // Abbrev [2] 0x31:0x3d DW_TAG_subprogram
 | 
			
		||||
; CHECK-NEXT: // .b64 Lfunc_begin0                    // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: // .b64 Lfunc_end0                      // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_AT_frame_base
 | 
			
		||||
; CHECK-NEXT: // .b8 156
 | 
			
		||||
; CHECK-NEXT: // .b8 117,115,101,95,100,98,103,95,100,101,99,108,97,114,101 // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: // .b8 3                                // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_AT_prototyped
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_AT_external
 | 
			
		||||
; CHECK-NEXT: // .b8 3                                // Abbrev [3] 0x58:0x15 DW_TAG_variable
 | 
			
		||||
; CHECK-NEXT: // .b8 11                               // DW_AT_location
 | 
			
		||||
; CHECK-NEXT: // .b8 3
 | 
			
		||||
; CHECK-NEXT: // .b64 __local_depot0
 | 
			
		||||
; CHECK-NEXT: // .b8 35
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b8 111                              // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: // .b8 4                                // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: // .b32 110                             // DW_AT_type
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // End Of Children Mark
 | 
			
		||||
; CHECK-NEXT: // .b8 4                                // Abbrev [4] 0x6e:0x15 DW_TAG_structure_type
 | 
			
		||||
; CHECK-NEXT: // .b8 70,111,111                       // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b8 4                                // DW_AT_byte_size
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: // .b8 5                                // Abbrev [5] 0x76:0xc DW_TAG_member
 | 
			
		||||
; CHECK-NEXT: // .b8 120                              // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b32 131                             // DW_AT_type
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: // .b8 2                                // DW_AT_data_member_location
 | 
			
		||||
; CHECK-NEXT: // .b8 35
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // End Of Children Mark
 | 
			
		||||
; CHECK-NEXT: // .b8 6                                // Abbrev [6] 0x83:0x7 DW_TAG_base_type
 | 
			
		||||
; CHECK-NEXT: // .b8 105,110,116                      // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b8 5                                // DW_AT_encoding
 | 
			
		||||
; CHECK-NEXT: // .b8 4                                // DW_AT_byte_size
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // End Of Children Mark
 | 
			
		||||
; CHECK-NEXT: // }
 | 
			
		||||
; CHECK: .section .debug_abbrev
 | 
			
		||||
; CHECK-NEXT: {
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: .b8 17                               // DW_TAG_compile_unit
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_CHILDREN_yes
 | 
			
		||||
; CHECK-NEXT: .b8 37                               // DW_AT_producer
 | 
			
		||||
; CHECK-NEXT: .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: .b8 19                               // DW_AT_language
 | 
			
		||||
; CHECK-NEXT: .b8 5                                // DW_FORM_data2
 | 
			
		||||
; CHECK-NEXT: .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: .b8 16                               // DW_AT_stmt_list
 | 
			
		||||
; CHECK-NEXT: .b8 6                                // DW_FORM_data4
 | 
			
		||||
; CHECK-NEXT: .b8 27                               // DW_AT_comp_dir
 | 
			
		||||
; CHECK-NEXT: .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: .b8 17                               // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_FORM_addr
 | 
			
		||||
; CHECK-NEXT: .b8 18                               // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_FORM_addr
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: .b8 2                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: .b8 46                               // DW_TAG_subprogram
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_CHILDREN_yes
 | 
			
		||||
; CHECK-NEXT: .b8 17                               // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_FORM_addr
 | 
			
		||||
; CHECK-NEXT: .b8 18                               // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_FORM_addr
 | 
			
		||||
; CHECK-NEXT: .b8 64                               // DW_AT_frame_base
 | 
			
		||||
; CHECK-NEXT: .b8 10                               // DW_FORM_block1
 | 
			
		||||
; CHECK-NEXT: .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: .b8 58                               // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: .b8 59                               // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: .b8 39                               // DW_AT_prototyped
 | 
			
		||||
; CHECK-NEXT: .b8 12                               // DW_FORM_flag
 | 
			
		||||
; CHECK-NEXT: .b8 63                               // DW_AT_external
 | 
			
		||||
; CHECK-NEXT: .b8 12                               // DW_FORM_flag
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: .b8 3                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: .b8 52                               // DW_TAG_variable
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // DW_CHILDREN_no
 | 
			
		||||
; CHECK-NEXT: .b8 2                                // DW_AT_location
 | 
			
		||||
; CHECK-NEXT: .b8 10                               // DW_FORM_block1
 | 
			
		||||
; CHECK-NEXT: .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: .b8 58                               // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: .b8 59                               // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: .b8 73                               // DW_AT_type
 | 
			
		||||
; CHECK-NEXT: .b8 19                               // DW_FORM_ref4
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: .b8 4                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: .b8 19                               // DW_TAG_structure_type
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_CHILDREN_yes
 | 
			
		||||
; CHECK-NEXT: .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: .b8 11                               // DW_AT_byte_size
 | 
			
		||||
; CHECK-NEXT: .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: .b8 58                               // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: .b8 59                               // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: .b8 5                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: .b8 13                               // DW_TAG_member
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // DW_CHILDREN_no
 | 
			
		||||
; CHECK-NEXT: .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: .b8 73                               // DW_AT_type
 | 
			
		||||
; CHECK-NEXT: .b8 19                               // DW_FORM_ref4
 | 
			
		||||
; CHECK-NEXT: .b8 58                               // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: .b8 59                               // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: .b8 56                               // DW_AT_data_member_location
 | 
			
		||||
; CHECK-NEXT: .b8 10                               // DW_FORM_block1
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: .b8 6                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: .b8 36                               // DW_TAG_base_type
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // DW_CHILDREN_no
 | 
			
		||||
; CHECK-NEXT: .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: .b8 62                               // DW_AT_encoding
 | 
			
		||||
; CHECK-NEXT: .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: .b8 11                               // DW_AT_byte_size
 | 
			
		||||
; CHECK-NEXT: .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(3)
 | 
			
		||||
; CHECK-NEXT: }
 | 
			
		||||
; CHECK-NEXT: .section .debug_info
 | 
			
		||||
; CHECK-NEXT: {
 | 
			
		||||
; CHECK-NEXT: .b32 135                             // Length of Unit
 | 
			
		||||
; CHECK-NEXT: .b8 2                                // DWARF version number
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b32 .debug_abbrev                   // Offset Into Abbrev. Section
 | 
			
		||||
; CHECK-NEXT: .b8 8                                // Address Size (in bytes)
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // Abbrev [1] 0xb:0x80 DW_TAG_compile_unit
 | 
			
		||||
; CHECK-NEXT: .b8 99,108,97,110,103                // DW_AT_producer
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b8 12                               // DW_AT_language
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b8 116,46,99                        // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b32 .debug_line                     // DW_AT_stmt_list
 | 
			
		||||
; CHECK-NEXT: .b8 116,101,115,116                  // DW_AT_comp_dir
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b64 Lfunc_begin0                    // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: .b64 Lfunc_end0                      // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: .b8 2                                // Abbrev [2] 0x31:0x3d DW_TAG_subprogram
 | 
			
		||||
; CHECK-NEXT: .b64 Lfunc_begin0                    // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: .b64 Lfunc_end0                      // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_AT_frame_base
 | 
			
		||||
; CHECK-NEXT: .b8 156
 | 
			
		||||
; CHECK-NEXT: .b8 117,115,101,95,100,98,103,95,100,101,99,108,97,114,101 // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: .b8 3                                // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_AT_prototyped
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_AT_external
 | 
			
		||||
; CHECK-NEXT: .b8 3                                // Abbrev [3] 0x58:0x15 DW_TAG_variable
 | 
			
		||||
; CHECK-NEXT: .b8 11                               // DW_AT_location
 | 
			
		||||
; CHECK-NEXT: .b8 3
 | 
			
		||||
; CHECK-NEXT: .b64 __local_depot0
 | 
			
		||||
; CHECK-NEXT: .b8 35
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b8 111                              // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: .b8 4                                // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: .b32 110                             // DW_AT_type
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // End Of Children Mark
 | 
			
		||||
; CHECK-NEXT: .b8 4                                // Abbrev [4] 0x6e:0x15 DW_TAG_structure_type
 | 
			
		||||
; CHECK-NEXT: .b8 70,111,111                       // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b8 4                                // DW_AT_byte_size
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: .b8 5                                // Abbrev [5] 0x76:0xc DW_TAG_member
 | 
			
		||||
; CHECK-NEXT: .b8 120                              // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b32 131                             // DW_AT_type
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: .b8 2                                // DW_AT_data_member_location
 | 
			
		||||
; CHECK-NEXT: .b8 35
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // End Of Children Mark
 | 
			
		||||
; CHECK-NEXT: .b8 6                                // Abbrev [6] 0x83:0x7 DW_TAG_base_type
 | 
			
		||||
; CHECK-NEXT: .b8 105,110,116                      // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b8 5                                // DW_AT_encoding
 | 
			
		||||
; CHECK-NEXT: .b8 4                                // DW_AT_byte_size
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // End Of Children Mark
 | 
			
		||||
; CHECK-NEXT: }
 | 
			
		||||
 | 
			
		||||
%struct.Foo = type { i32 }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,7 +8,7 @@
 | 
			
		|||
;__device__ void bar() {}
 | 
			
		||||
;}
 | 
			
		||||
 | 
			
		||||
; CHECK: .target sm_{{[0-9]+}}//, debug
 | 
			
		||||
; CHECK: .target sm_{{[0-9]+}}, debug
 | 
			
		||||
 | 
			
		||||
; CHECK: .visible .func foo()
 | 
			
		||||
; CHECK: .loc [[FOO:[0-9]+]] 1 31
 | 
			
		||||
| 
						 | 
				
			
			@ -29,52 +29,52 @@ bb:
 | 
			
		|||
 | 
			
		||||
; CHECK-DAG: .file [[FOO]] "{{.*}}foo.h"
 | 
			
		||||
; CHECK-DAG: .file [[BAR]] "{{.*}}bar.cu"
 | 
			
		||||
; CHECK: // .section .debug_abbrev
 | 
			
		||||
; CHECK-NEXT: // {
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: // .b8 17                               // DW_TAG_compile_unit
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // DW_CHILDREN_no
 | 
			
		||||
; CHECK-NEXT: // .b8 37                               // DW_AT_producer
 | 
			
		||||
; CHECK-NEXT: // .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: // .b8 19                               // DW_AT_language
 | 
			
		||||
; CHECK-NEXT: // .b8 5                                // DW_FORM_data2
 | 
			
		||||
; CHECK-NEXT: // .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: // .b8 16                               // DW_AT_stmt_list
 | 
			
		||||
; CHECK-NEXT: // .b8 6                                // DW_FORM_data4
 | 
			
		||||
; CHECK-NEXT: // .b8 27                               // DW_AT_comp_dir
 | 
			
		||||
; CHECK-NEXT: // .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: // .b8 17                               // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_FORM_addr
 | 
			
		||||
; CHECK-NEXT: // .b8 18                               // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_FORM_addr
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(3)
 | 
			
		||||
; CHECK-NEXT: // }
 | 
			
		||||
; CHECK-NEXT: // .section .debug_info
 | 
			
		||||
; CHECK-NEXT: // {
 | 
			
		||||
; CHECK-NEXT: // .b32 50                              // Length of Unit
 | 
			
		||||
; CHECK-NEXT: // .b8 2                                // DWARF version number
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b32 .debug_abbrev                   // Offset Into Abbrev. Section
 | 
			
		||||
; CHECK-NEXT: // .b8 8                                // Address Size (in bytes)
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // Abbrev [1] 0xb:0x2b DW_TAG_compile_unit
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // DW_AT_producer
 | 
			
		||||
; CHECK-NEXT: // .b8 4                                // DW_AT_language
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b8 98,97,114,46,99,117              // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b32 .debug_line                     // DW_AT_stmt_list
 | 
			
		||||
; CHECK-NEXT: // .b8 47,115,111,117,114,99,101,47,100,105,114                // DW_AT_comp_dir
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b64 Lfunc_begin0                    // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: // .b64 Lfunc_end1                      // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: // }
 | 
			
		||||
; CHECK-NEXT: // .section .debug_macinfo
 | 
			
		||||
; CHECK-NEXT: // {
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // End Of Macro List Mark
 | 
			
		||||
; CHECK:      // }
 | 
			
		||||
; CHECK: .section .debug_abbrev
 | 
			
		||||
; CHECK-NEXT: {
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: .b8 17                               // DW_TAG_compile_unit
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // DW_CHILDREN_no
 | 
			
		||||
; CHECK-NEXT: .b8 37                               // DW_AT_producer
 | 
			
		||||
; CHECK-NEXT: .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: .b8 19                               // DW_AT_language
 | 
			
		||||
; CHECK-NEXT: .b8 5                                // DW_FORM_data2
 | 
			
		||||
; CHECK-NEXT: .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: .b8 16                               // DW_AT_stmt_list
 | 
			
		||||
; CHECK-NEXT: .b8 6                                // DW_FORM_data4
 | 
			
		||||
; CHECK-NEXT: .b8 27                               // DW_AT_comp_dir
 | 
			
		||||
; CHECK-NEXT: .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: .b8 17                               // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_FORM_addr
 | 
			
		||||
; CHECK-NEXT: .b8 18                               // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_FORM_addr
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(3)
 | 
			
		||||
; CHECK-NEXT: }
 | 
			
		||||
; CHECK-NEXT: .section .debug_info
 | 
			
		||||
; CHECK-NEXT: {
 | 
			
		||||
; CHECK-NEXT: .b32 50                              // Length of Unit
 | 
			
		||||
; CHECK-NEXT: .b8 2                                // DWARF version number
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b32 .debug_abbrev                   // Offset Into Abbrev. Section
 | 
			
		||||
; CHECK-NEXT: .b8 8                                // Address Size (in bytes)
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // Abbrev [1] 0xb:0x2b DW_TAG_compile_unit
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // DW_AT_producer
 | 
			
		||||
; CHECK-NEXT: .b8 4                                // DW_AT_language
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b8 98,97,114,46,99,117              // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b32 .debug_line                     // DW_AT_stmt_list
 | 
			
		||||
; CHECK-NEXT: .b8 47,115,111,117,114,99,101,47,100,105,114                // DW_AT_comp_dir
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b64 Lfunc_begin0                    // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: .b64 Lfunc_end1                      // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: }
 | 
			
		||||
; CHECK-NEXT: .section .debug_macinfo
 | 
			
		||||
; CHECK-NEXT: {
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // End Of Macro List Mark
 | 
			
		||||
; CHECK:      }
 | 
			
		||||
 | 
			
		||||
!llvm.dbg.cu = !{!0}
 | 
			
		||||
!llvm.module.flags = !{!8, !9}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| 
						 | 
				
			
			@ -1,6 +1,6 @@
 | 
			
		|||
; RUN: llc -mtriple=nvptx64-nvidia-cuda < %s | FileCheck %s
 | 
			
		||||
 | 
			
		||||
; CHECK: .target sm_{{[0-9]+}}//, debug
 | 
			
		||||
; CHECK: .target sm_{{[0-9]+}}, debug
 | 
			
		||||
 | 
			
		||||
; CHECK: .extern .func  (.param .b32 func_retval0) _ZN1A3fooEv
 | 
			
		||||
; CHECK: (
 | 
			
		||||
| 
						 | 
				
			
			@ -129,207 +129,207 @@ attributes #2 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "n
 | 
			
		|||
!33 = !DILocation(line: 11, scope: !32)
 | 
			
		||||
!34 = !DILocation(line: 12, scope: !14)
 | 
			
		||||
 | 
			
		||||
; CHECK: // .section .debug_abbrev
 | 
			
		||||
; CHECK-NEXT: // {
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: // .b8 17                               // DW_TAG_compile_unit
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_CHILDREN_yes
 | 
			
		||||
; CHECK-NEXT: // .b8 37                               // DW_AT_producer
 | 
			
		||||
; CHECK-NEXT: // .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: // .b8 19                               // DW_AT_language
 | 
			
		||||
; CHECK-NEXT: // .b8 5                                // DW_FORM_data2
 | 
			
		||||
; CHECK-NEXT: // .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: // .b8 16                               // DW_AT_stmt_list
 | 
			
		||||
; CHECK-NEXT: // .b8 6                                // DW_FORM_data4
 | 
			
		||||
; CHECK-NEXT: // .b8 27                               // DW_AT_comp_dir
 | 
			
		||||
; CHECK-NEXT: // .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: // .b8 17                               // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_FORM_addr
 | 
			
		||||
; CHECK-NEXT: // .b8 18                               // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_FORM_addr
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: // .b8 2                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: // .b8 19                               // DW_TAG_structure_type
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // DW_CHILDREN_no
 | 
			
		||||
; CHECK-NEXT: // .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: // .b8 60                               // DW_AT_declaration
 | 
			
		||||
; CHECK-NEXT: // .b8 12                               // DW_FORM_flag
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: // .b8 3                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: // .b8 46                               // DW_TAG_subprogram
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_CHILDREN_yes
 | 
			
		||||
; CHECK-NEXT: // .b8 17                               // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_FORM_addr
 | 
			
		||||
; CHECK-NEXT: // .b8 18                               // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_FORM_addr
 | 
			
		||||
; CHECK-NEXT: // .b8 64                               // DW_AT_frame_base
 | 
			
		||||
; CHECK-NEXT: // .b8 10                               // DW_FORM_block1
 | 
			
		||||
; CHECK-NEXT: // .b8 135,64                           // DW_AT_MIPS_linkage_name
 | 
			
		||||
; CHECK-NEXT: // .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: // .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: // .b8 58                               // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: // .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: // .b8 59                               // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: // .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: // .b8 63                               // DW_AT_external
 | 
			
		||||
; CHECK-NEXT: // .b8 12                               // DW_FORM_flag
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: // .b8 4                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: // .b8 52                               // DW_TAG_variable
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // DW_CHILDREN_no
 | 
			
		||||
; CHECK-NEXT: // .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: // .b8 58                               // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: // .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: // .b8 59                               // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: // .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: // .b8 73                               // DW_AT_type
 | 
			
		||||
; CHECK-NEXT: // .b8 16                               // DW_FORM_ref_addr
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: // .b8 5                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: // .b8 46                               // DW_TAG_subprogram
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_CHILDREN_yes
 | 
			
		||||
; CHECK-NEXT: // .b8 17                               // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_FORM_addr
 | 
			
		||||
; CHECK-NEXT: // .b8 18                               // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_FORM_addr
 | 
			
		||||
; CHECK-NEXT: // .b8 64                               // DW_AT_frame_base
 | 
			
		||||
; CHECK-NEXT: // .b8 10                               // DW_FORM_block1
 | 
			
		||||
; CHECK-NEXT: // .b8 135,64                           // DW_AT_MIPS_linkage_name
 | 
			
		||||
; CHECK-NEXT: // .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: // .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: // .b8 58                               // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: // .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: // .b8 59                               // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: // .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: // .b8 73                               // DW_AT_type
 | 
			
		||||
; CHECK-NEXT: // .b8 19                               // DW_FORM_ref4
 | 
			
		||||
; CHECK-NEXT: // .b8 63                               // DW_AT_external
 | 
			
		||||
; CHECK-NEXT: // .b8 12                               // DW_FORM_flag
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: // .b8 6                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: // .b8 5                                // DW_TAG_formal_parameter
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // DW_CHILDREN_no
 | 
			
		||||
; CHECK-NEXT: // .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: // .b8 58                               // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: // .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: // .b8 59                               // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: // .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: // .b8 73                               // DW_AT_type
 | 
			
		||||
; CHECK-NEXT: // .b8 19                               // DW_FORM_ref4
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: // .b8 7                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: // .b8 36                               // DW_TAG_base_type
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // DW_CHILDREN_no
 | 
			
		||||
; CHECK-NEXT: // .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: // .b8 62                               // DW_AT_encoding
 | 
			
		||||
; CHECK-NEXT: // .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: // .b8 11                               // DW_AT_byte_size
 | 
			
		||||
; CHECK-NEXT: // .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // EOM(3)
 | 
			
		||||
; CHECK-NEXT: // }
 | 
			
		||||
; CHECK-NEXT: // .section .debug_info
 | 
			
		||||
; CHECK-NEXT: // {
 | 
			
		||||
; CHECK-NEXT: // .b32 150                             // Length of Unit
 | 
			
		||||
; CHECK-NEXT: // .b8 2                                // DWARF version number
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b32 .debug_abbrev                   // Offset Into Abbrev. Section
 | 
			
		||||
; CHECK-NEXT: // .b8 8                                // Address Size (in bytes)
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // Abbrev [1] 0xb:0x8f DW_TAG_compile_unit
 | 
			
		||||
; CHECK-NEXT: // .b8 99,108,97,110,103,32,118,101,114,115,105,111,110,32,51,46,53,46,48,32,40,50,49,48,52,55,57,41 // DW_AT_producer
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b8 4                                // DW_AT_language
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b8 100,101,98,117,103,45,108,111,99,45,111,102,102,115,101,116,50,46,99,99 // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b32 .debug_line                     // DW_AT_stmt_list
 | 
			
		||||
; CHECK-NEXT: // .b8 47,108,108,118,109,95,99,109,97,107,101,95,103,99,99 // DW_AT_comp_dir
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b64 Lfunc_begin1                    // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: // .b64 Lfunc_end1                      // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: // .b8 2                                // Abbrev [2] 0x64:0x4 DW_TAG_structure_type
 | 
			
		||||
; CHECK-NEXT: // .b8 65                               // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_AT_declaration
 | 
			
		||||
; CHECK-NEXT: // .b8 3                                // Abbrev [3] 0x68:0x31 DW_TAG_subprogram
 | 
			
		||||
; CHECK-NEXT: // .b64 Lfunc_begin1                    // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: // .b64 Lfunc_end1                      // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_AT_frame_base
 | 
			
		||||
; CHECK-NEXT: // .b8 156
 | 
			
		||||
; CHECK-NEXT: // .b8 95,90,51,98,97,122,49,65         // DW_AT_MIPS_linkage_name
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b8 98,97,122                        // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b8 2                                // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: // .b8 6                                // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_AT_external
 | 
			
		||||
; CHECK-NEXT: // .b8 4                                // Abbrev [4] 0x8b:0xd DW_TAG_variable
 | 
			
		||||
; CHECK-NEXT: // .b8 122                              // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b8 2                                // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: // .b8 7                                // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: // .b64 .debug_info+302                 // DW_AT_type
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // End Of Children Mark
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // End Of Children Mark
 | 
			
		||||
; CHECK-NEXT: // .b32 152                             // Length of Unit
 | 
			
		||||
; CHECK-NEXT: // .b8 2                                // DWARF version number
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b32 .debug_abbrev                   // Offset Into Abbrev. Section
 | 
			
		||||
; CHECK-NEXT: // .b8 8                                // Address Size (in bytes)
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // Abbrev [1] 0xb:0x91 DW_TAG_compile_unit
 | 
			
		||||
; CHECK-NEXT: // .b8 99,108,97,110,103,32,118,101,114,115,105,111,110,32,51,46,53,46,48,32,40,50,49,48,52,55,57,41 // DW_AT_producer
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b8 4                                // DW_AT_language
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b8 100,101,98,117,103,45,108,111,99,45,111,102,102,115,101,116,49,46,99,99 // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b32 .debug_line                     // DW_AT_stmt_list
 | 
			
		||||
; CHECK-NEXT: // .b8 47,108,108,118,109,95,99,109,97,107,101,95,103,99,99 // DW_AT_comp_dir
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b64 Lfunc_begin0                    // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: // .b64 Lfunc_end0                      // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: // .b8 5                                // Abbrev [5] 0x64:0x30 DW_TAG_subprogram
 | 
			
		||||
; CHECK-NEXT: // .b64 Lfunc_begin0                    // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: // .b64 Lfunc_end0                      // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_AT_frame_base
 | 
			
		||||
; CHECK-NEXT: // .b8 156
 | 
			
		||||
; CHECK-NEXT: // .b8 95,90,51,98,97,114,105           // DW_AT_MIPS_linkage_name
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b8 98,97,114                        // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: // .b32 148                             // DW_AT_type
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_AT_external
 | 
			
		||||
; CHECK-NEXT: // .b8 6                                // Abbrev [6] 0x8a:0x9 DW_TAG_formal_parameter
 | 
			
		||||
; CHECK-NEXT: // .b8 98                               // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: // .b8 1                                // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: // .b32 148                             // DW_AT_type
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // End Of Children Mark
 | 
			
		||||
; CHECK-NEXT: // .b8 7                                // Abbrev [7] 0x94:0x7 DW_TAG_base_type
 | 
			
		||||
; CHECK-NEXT: // .b8 105,110,116                      // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: // .b8 0
 | 
			
		||||
; CHECK-NEXT: // .b8 5                                // DW_AT_encoding
 | 
			
		||||
; CHECK-NEXT: // .b8 4                                // DW_AT_byte_size
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // End Of Children Mark
 | 
			
		||||
; CHECK-NEXT: // }
 | 
			
		||||
; CHECK-NEXT: // .section .debug_macinfo
 | 
			
		||||
; CHECK-NEXT: // {
 | 
			
		||||
; CHECK-NEXT: // .b8 0                                // End Of Macro List Mark
 | 
			
		||||
; CHECK:      // }
 | 
			
		||||
; CHECK: .section .debug_abbrev
 | 
			
		||||
; CHECK-NEXT: {
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: .b8 17                               // DW_TAG_compile_unit
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_CHILDREN_yes
 | 
			
		||||
; CHECK-NEXT: .b8 37                               // DW_AT_producer
 | 
			
		||||
; CHECK-NEXT: .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: .b8 19                               // DW_AT_language
 | 
			
		||||
; CHECK-NEXT: .b8 5                                // DW_FORM_data2
 | 
			
		||||
; CHECK-NEXT: .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: .b8 16                               // DW_AT_stmt_list
 | 
			
		||||
; CHECK-NEXT: .b8 6                                // DW_FORM_data4
 | 
			
		||||
; CHECK-NEXT: .b8 27                               // DW_AT_comp_dir
 | 
			
		||||
; CHECK-NEXT: .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: .b8 17                               // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_FORM_addr
 | 
			
		||||
; CHECK-NEXT: .b8 18                               // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_FORM_addr
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: .b8 2                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: .b8 19                               // DW_TAG_structure_type
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // DW_CHILDREN_no
 | 
			
		||||
; CHECK-NEXT: .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: .b8 60                               // DW_AT_declaration
 | 
			
		||||
; CHECK-NEXT: .b8 12                               // DW_FORM_flag
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: .b8 3                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: .b8 46                               // DW_TAG_subprogram
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_CHILDREN_yes
 | 
			
		||||
; CHECK-NEXT: .b8 17                               // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_FORM_addr
 | 
			
		||||
; CHECK-NEXT: .b8 18                               // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_FORM_addr
 | 
			
		||||
; CHECK-NEXT: .b8 64                               // DW_AT_frame_base
 | 
			
		||||
; CHECK-NEXT: .b8 10                               // DW_FORM_block1
 | 
			
		||||
; CHECK-NEXT: .b8 135,64                           // DW_AT_MIPS_linkage_name
 | 
			
		||||
; CHECK-NEXT: .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: .b8 58                               // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: .b8 59                               // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: .b8 63                               // DW_AT_external
 | 
			
		||||
; CHECK-NEXT: .b8 12                               // DW_FORM_flag
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: .b8 4                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: .b8 52                               // DW_TAG_variable
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // DW_CHILDREN_no
 | 
			
		||||
; CHECK-NEXT: .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: .b8 58                               // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: .b8 59                               // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: .b8 73                               // DW_AT_type
 | 
			
		||||
; CHECK-NEXT: .b8 16                               // DW_FORM_ref_addr
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: .b8 5                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: .b8 46                               // DW_TAG_subprogram
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_CHILDREN_yes
 | 
			
		||||
; CHECK-NEXT: .b8 17                               // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_FORM_addr
 | 
			
		||||
; CHECK-NEXT: .b8 18                               // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_FORM_addr
 | 
			
		||||
; CHECK-NEXT: .b8 64                               // DW_AT_frame_base
 | 
			
		||||
; CHECK-NEXT: .b8 10                               // DW_FORM_block1
 | 
			
		||||
; CHECK-NEXT: .b8 135,64                           // DW_AT_MIPS_linkage_name
 | 
			
		||||
; CHECK-NEXT: .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: .b8 58                               // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: .b8 59                               // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: .b8 73                               // DW_AT_type
 | 
			
		||||
; CHECK-NEXT: .b8 19                               // DW_FORM_ref4
 | 
			
		||||
; CHECK-NEXT: .b8 63                               // DW_AT_external
 | 
			
		||||
; CHECK-NEXT: .b8 12                               // DW_FORM_flag
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: .b8 6                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: .b8 5                                // DW_TAG_formal_parameter
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // DW_CHILDREN_no
 | 
			
		||||
; CHECK-NEXT: .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: .b8 58                               // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: .b8 59                               // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: .b8 73                               // DW_AT_type
 | 
			
		||||
; CHECK-NEXT: .b8 19                               // DW_FORM_ref4
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: .b8 7                                // Abbreviation Code
 | 
			
		||||
; CHECK-NEXT: .b8 36                               // DW_TAG_base_type
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // DW_CHILDREN_no
 | 
			
		||||
; CHECK-NEXT: .b8 3                                // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 8                                // DW_FORM_string
 | 
			
		||||
; CHECK-NEXT: .b8 62                               // DW_AT_encoding
 | 
			
		||||
; CHECK-NEXT: .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: .b8 11                               // DW_AT_byte_size
 | 
			
		||||
; CHECK-NEXT: .b8 11                               // DW_FORM_data1
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(1)
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(2)
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // EOM(3)
 | 
			
		||||
; CHECK-NEXT: }
 | 
			
		||||
; CHECK-NEXT: .section .debug_info
 | 
			
		||||
; CHECK-NEXT: {
 | 
			
		||||
; CHECK-NEXT: .b32 150                             // Length of Unit
 | 
			
		||||
; CHECK-NEXT: .b8 2                                // DWARF version number
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b32 .debug_abbrev                   // Offset Into Abbrev. Section
 | 
			
		||||
; CHECK-NEXT: .b8 8                                // Address Size (in bytes)
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // Abbrev [1] 0xb:0x8f DW_TAG_compile_unit
 | 
			
		||||
; CHECK-NEXT: .b8 99,108,97,110,103,32,118,101,114,115,105,111,110,32,51,46,53,46,48,32,40,50,49,48,52,55,57,41 // DW_AT_producer
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b8 4                                // DW_AT_language
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b8 100,101,98,117,103,45,108,111,99,45,111,102,102,115,101,116,50,46,99,99 // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b32 .debug_line                     // DW_AT_stmt_list
 | 
			
		||||
; CHECK-NEXT: .b8 47,108,108,118,109,95,99,109,97,107,101,95,103,99,99 // DW_AT_comp_dir
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b64 Lfunc_begin1                    // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: .b64 Lfunc_end1                      // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: .b8 2                                // Abbrev [2] 0x64:0x4 DW_TAG_structure_type
 | 
			
		||||
; CHECK-NEXT: .b8 65                               // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_AT_declaration
 | 
			
		||||
; CHECK-NEXT: .b8 3                                // Abbrev [3] 0x68:0x31 DW_TAG_subprogram
 | 
			
		||||
; CHECK-NEXT: .b64 Lfunc_begin1                    // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: .b64 Lfunc_end1                      // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_AT_frame_base
 | 
			
		||||
; CHECK-NEXT: .b8 156
 | 
			
		||||
; CHECK-NEXT: .b8 95,90,51,98,97,122,49,65         // DW_AT_MIPS_linkage_name
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b8 98,97,122                        // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b8 2                                // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: .b8 6                                // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_AT_external
 | 
			
		||||
; CHECK-NEXT: .b8 4                                // Abbrev [4] 0x8b:0xd DW_TAG_variable
 | 
			
		||||
; CHECK-NEXT: .b8 122                              // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b8 2                                // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: .b8 7                                // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: .b64 .debug_info+302                 // DW_AT_type
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // End Of Children Mark
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // End Of Children Mark
 | 
			
		||||
; CHECK-NEXT: .b32 152                             // Length of Unit
 | 
			
		||||
; CHECK-NEXT: .b8 2                                // DWARF version number
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b32 .debug_abbrev                   // Offset Into Abbrev. Section
 | 
			
		||||
; CHECK-NEXT: .b8 8                                // Address Size (in bytes)
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // Abbrev [1] 0xb:0x91 DW_TAG_compile_unit
 | 
			
		||||
; CHECK-NEXT: .b8 99,108,97,110,103,32,118,101,114,115,105,111,110,32,51,46,53,46,48,32,40,50,49,48,52,55,57,41 // DW_AT_producer
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b8 4                                // DW_AT_language
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b8 100,101,98,117,103,45,108,111,99,45,111,102,102,115,101,116,49,46,99,99 // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b32 .debug_line                     // DW_AT_stmt_list
 | 
			
		||||
; CHECK-NEXT: .b8 47,108,108,118,109,95,99,109,97,107,101,95,103,99,99 // DW_AT_comp_dir
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b64 Lfunc_begin0                    // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: .b64 Lfunc_end0                      // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: .b8 5                                // Abbrev [5] 0x64:0x30 DW_TAG_subprogram
 | 
			
		||||
; CHECK-NEXT: .b64 Lfunc_begin0                    // DW_AT_low_pc
 | 
			
		||||
; CHECK-NEXT: .b64 Lfunc_end0                      // DW_AT_high_pc
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_AT_frame_base
 | 
			
		||||
; CHECK-NEXT: .b8 156
 | 
			
		||||
; CHECK-NEXT: .b8 95,90,51,98,97,114,105           // DW_AT_MIPS_linkage_name
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b8 98,97,114                        // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: .b32 148                             // DW_AT_type
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_AT_external
 | 
			
		||||
; CHECK-NEXT: .b8 6                                // Abbrev [6] 0x8a:0x9 DW_TAG_formal_parameter
 | 
			
		||||
; CHECK-NEXT: .b8 98                               // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_AT_decl_file
 | 
			
		||||
; CHECK-NEXT: .b8 1                                // DW_AT_decl_line
 | 
			
		||||
; CHECK-NEXT: .b32 148                             // DW_AT_type
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // End Of Children Mark
 | 
			
		||||
; CHECK-NEXT: .b8 7                                // Abbrev [7] 0x94:0x7 DW_TAG_base_type
 | 
			
		||||
; CHECK-NEXT: .b8 105,110,116                      // DW_AT_name
 | 
			
		||||
; CHECK-NEXT: .b8 0
 | 
			
		||||
; CHECK-NEXT: .b8 5                                // DW_AT_encoding
 | 
			
		||||
; CHECK-NEXT: .b8 4                                // DW_AT_byte_size
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // End Of Children Mark
 | 
			
		||||
; CHECK-NEXT: }
 | 
			
		||||
; CHECK-NEXT: .section .debug_macinfo
 | 
			
		||||
; CHECK-NEXT: {
 | 
			
		||||
; CHECK-NEXT: .b8 0                                // End Of Macro List Mark
 | 
			
		||||
; CHECK:      }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue