Revert "[DEBUGINFO, NVPTX] Enable support for the debug info on NVPTX target."

This reverts commit r351972. Some pieces of the patch was not applied
correctly.

llvm-svn: 351973
This commit is contained in:
Alexey Bataev 2019-01-23 18:48:36 +00:00
parent fe0b356063
commit 25624e2e5b
10 changed files with 5261 additions and 5285 deletions

View File

@ -37,11 +37,12 @@ NVPTXMCAsmInfo::NVPTXMCAsmInfo(const Triple &TheTriple) {
HiddenDeclarationVisibilityAttr = HiddenVisibilityAttr = MCSA_Invalid; HiddenDeclarationVisibilityAttr = HiddenVisibilityAttr = MCSA_Invalid;
ProtectedVisibilityAttr = MCSA_Invalid; ProtectedVisibilityAttr = MCSA_Invalid;
Data8bitsDirective = ".b8 "; // FIXME: remove comment once debug info is properly supported.
Data8bitsDirective = "// .b8 ";
Data16bitsDirective = nullptr; // not supported Data16bitsDirective = nullptr; // not supported
Data32bitsDirective = ".b32 "; Data32bitsDirective = "// .b32 ";
Data64bitsDirective = ".b64 "; Data64bitsDirective = "// .b64 ";
ZeroDirective = ".b8"; ZeroDirective = "// .b8";
AsciiDirective = nullptr; // not supported AsciiDirective = nullptr; // not supported
AscizDirective = nullptr; // not supported AscizDirective = nullptr; // not supported
SupportsQuotedNames = false; SupportsQuotedNames = false;

View File

@ -30,11 +30,6 @@ void NVPTXTargetStreamer::outputDwarfFileDirectives() {
DwarfFiles.clear(); DwarfFiles.clear();
} }
void NVPTXTargetStreamer::closeLastSection() {
if (HasSections)
getStreamer().EmitRawText("\t}");
}
void NVPTXTargetStreamer::emitDwarfFileDirective(StringRef Directive) { void NVPTXTargetStreamer::emitDwarfFileDirective(StringRef Directive) {
DwarfFiles.emplace_back(Directive); DwarfFiles.emplace_back(Directive);
} }
@ -86,9 +81,10 @@ void NVPTXTargetStreamer::changeSection(const MCSection *CurSection,
raw_ostream &OS) { raw_ostream &OS) {
assert(!SubSection && "SubSection is not null!"); assert(!SubSection && "SubSection is not null!");
const MCObjectFileInfo *FI = getStreamer().getContext().getObjectFileInfo(); const MCObjectFileInfo *FI = getStreamer().getContext().getObjectFileInfo();
// FIXME: remove comment once debug info is properly supported.
// Emit closing brace for DWARF sections only. // Emit closing brace for DWARF sections only.
if (isDwarfSection(FI, CurSection)) if (isDwarfSection(FI, CurSection))
OS << "\t}\n"; OS << "//\t}\n";
if (isDwarfSection(FI, Section)) { if (isDwarfSection(FI, Section)) {
// Emit DWARF .file directives in the outermost scope. // Emit DWARF .file directives in the outermost scope.
outputDwarfFileDirectives(); outputDwarfFileDirectives();
@ -96,8 +92,7 @@ void NVPTXTargetStreamer::changeSection(const MCSection *CurSection,
Section->PrintSwitchToSection(*getStreamer().getContext().getAsmInfo(), Section->PrintSwitchToSection(*getStreamer().getContext().getAsmInfo(),
FI->getTargetTriple(), OS, SubSection); FI->getTargetTriple(), OS, SubSection);
// DWARF sections are enclosed into braces - emit the open one. // DWARF sections are enclosed into braces - emit the open one.
OS << "\t{\n"; OS << "//\t{\n";
HasSections = true;
} }
} }

View File

@ -18,7 +18,6 @@ class MCSection;
class NVPTXTargetStreamer : public MCTargetStreamer { class NVPTXTargetStreamer : public MCTargetStreamer {
private: private:
SmallVector<std::string, 4> DwarfFiles; SmallVector<std::string, 4> DwarfFiles;
bool HasSections = false;
public: public:
NVPTXTargetStreamer(MCStreamer &S); NVPTXTargetStreamer(MCStreamer &S);
@ -26,8 +25,6 @@ public:
/// Outputs the list of the DWARF '.file' directives to the streamer. /// Outputs the list of the DWARF '.file' directives to the streamer.
void outputDwarfFileDirectives(); void outputDwarfFileDirectives();
/// Close last section.
void closeLastSection();
/// Record DWARF file directives for later output. /// Record DWARF file directives for later output.
/// According to PTX ISA, CUDA Toolkit documentation, 11.5.3. Debugging /// According to PTX ISA, CUDA Toolkit documentation, 11.5.3. Debugging

View File

@ -901,8 +901,9 @@ void NVPTXAsmPrinter::emitHeader(Module &M, raw_ostream &O,
if (HasFullDebugInfo) if (HasFullDebugInfo)
break; break;
} }
// FIXME: remove comment once debug info is properly supported.
if (MMI && MMI->hasDebugInfo() && HasFullDebugInfo) if (MMI && MMI->hasDebugInfo() && HasFullDebugInfo)
O << ", debug"; O << "//, debug";
O << "\n"; O << "\n";
@ -953,10 +954,10 @@ bool NVPTXAsmPrinter::doFinalization(Module &M) {
clearAnnotationCache(&M); clearAnnotationCache(&M);
delete[] gv_array; delete[] gv_array;
// FIXME: remove comment once debug info is properly supported.
// Close the last emitted section // Close the last emitted section
if (HasDebugInfo) if (HasDebugInfo)
static_cast<NVPTXTargetStreamer *>(OutStreamer->getTargetStreamer()) OutStreamer->EmitRawText("//\t}");
->closeLastSection();
// Output last DWARF .file directives, if any. // Output last DWARF .file directives, if any.
static_cast<NVPTXTargetStreamer *>(OutStreamer->getTargetStreamer()) static_cast<NVPTXTargetStreamer *>(OutStreamer->getTargetStreamer())

View File

@ -1,6 +1,6 @@
; RUN: llc < %s -mtriple=nvptx64-nvidia-cuda | FileCheck %s ; 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: .visible .func (.param .b32 func_retval0) b(
; CHECK: .param .b32 b_param_0 ; CHECK: .param .b32 b_param_0
@ -72,145 +72,145 @@ entry:
ret i32 %add, !dbg !16 ret i32 %add, !dbg !16
} }
; CHECK: .section .debug_abbrev ; CHECK: // .section .debug_abbrev
; CHECK-NEXT: { ; CHECK-NEXT: // {
; CHECK-NEXT: .b8 1 // Abbreviation Code ; CHECK-NEXT: // .b8 1 // Abbreviation Code
; CHECK-NEXT: .b8 17 // DW_TAG_compile_unit ; CHECK-NEXT: // .b8 17 // DW_TAG_compile_unit
; CHECK-NEXT: .b8 1 // DW_CHILDREN_yes ; CHECK-NEXT: // .b8 1 // DW_CHILDREN_yes
; CHECK-NEXT: .b8 37 // DW_AT_producer ; CHECK-NEXT: // .b8 37 // DW_AT_producer
; CHECK-NEXT: .b8 8 // DW_FORM_string ; CHECK-NEXT: // .b8 8 // DW_FORM_string
; CHECK-NEXT: .b8 19 // DW_AT_language ; CHECK-NEXT: // .b8 19 // DW_AT_language
; CHECK-NEXT: .b8 5 // DW_FORM_data2 ; CHECK-NEXT: // .b8 5 // DW_FORM_data2
; CHECK-NEXT: .b8 3 // DW_AT_name ; CHECK-NEXT: // .b8 3 // DW_AT_name
; CHECK-NEXT: .b8 8 // DW_FORM_string ; CHECK-NEXT: // .b8 8 // DW_FORM_string
; CHECK-NEXT: .b8 16 // DW_AT_stmt_list ; CHECK-NEXT: // .b8 16 // DW_AT_stmt_list
; CHECK-NEXT: .b8 6 // DW_FORM_data4 ; CHECK-NEXT: // .b8 6 // DW_FORM_data4
; CHECK-NEXT: .b8 27 // DW_AT_comp_dir ; CHECK-NEXT: // .b8 27 // DW_AT_comp_dir
; CHECK-NEXT: .b8 8 // DW_FORM_string ; CHECK-NEXT: // .b8 8 // DW_FORM_string
; CHECK-NEXT: .b8 17 // DW_AT_low_pc ; CHECK-NEXT: // .b8 17 // DW_AT_low_pc
; CHECK-NEXT: .b8 1 // DW_FORM_addr ; CHECK-NEXT: // .b8 1 // DW_FORM_addr
; CHECK-NEXT: .b8 18 // DW_AT_high_pc ; CHECK-NEXT: // .b8 18 // DW_AT_high_pc
; CHECK-NEXT: .b8 1 // DW_FORM_addr ; CHECK-NEXT: // .b8 1 // DW_FORM_addr
; CHECK-NEXT: .b8 0 // EOM(1) ; CHECK-NEXT: // .b8 0 // EOM(1)
; CHECK-NEXT: .b8 0 // EOM(2) ; CHECK-NEXT: // .b8 0 // EOM(2)
; CHECK-NEXT: .b8 2 // Abbreviation Code ; CHECK-NEXT: // .b8 2 // Abbreviation Code
; CHECK-NEXT: .b8 46 // DW_TAG_subprogram ; CHECK-NEXT: // .b8 46 // DW_TAG_subprogram
; CHECK-NEXT: .b8 1 // DW_CHILDREN_yes ; CHECK-NEXT: // .b8 1 // DW_CHILDREN_yes
; CHECK-NEXT: .b8 17 // DW_AT_low_pc ; CHECK-NEXT: // .b8 17 // DW_AT_low_pc
; CHECK-NEXT: .b8 1 // DW_FORM_addr ; CHECK-NEXT: // .b8 1 // DW_FORM_addr
; CHECK-NEXT: .b8 18 // DW_AT_high_pc ; CHECK-NEXT: // .b8 18 // DW_AT_high_pc
; CHECK-NEXT: .b8 1 // DW_FORM_addr ; CHECK-NEXT: // .b8 1 // DW_FORM_addr
; CHECK-NEXT: .b8 64 // DW_AT_frame_base ; CHECK-NEXT: // .b8 64 // DW_AT_frame_base
; CHECK-NEXT: .b8 10 // DW_FORM_block1 ; CHECK-NEXT: // .b8 10 // DW_FORM_block1
; CHECK-NEXT: .b8 3 // DW_AT_name ; CHECK-NEXT: // .b8 3 // DW_AT_name
; CHECK-NEXT: .b8 8 // DW_FORM_string ; CHECK-NEXT: // .b8 8 // DW_FORM_string
; CHECK-NEXT: .b8 58 // DW_AT_decl_file ; CHECK-NEXT: // .b8 58 // DW_AT_decl_file
; CHECK-NEXT: .b8 11 // DW_FORM_data1 ; CHECK-NEXT: // .b8 11 // DW_FORM_data1
; CHECK-NEXT: .b8 59 // DW_AT_decl_line ; CHECK-NEXT: // .b8 59 // DW_AT_decl_line
; CHECK-NEXT: .b8 11 // DW_FORM_data1 ; CHECK-NEXT: // .b8 11 // DW_FORM_data1
; CHECK-NEXT: .b8 39 // DW_AT_prototyped ; CHECK-NEXT: // .b8 39 // DW_AT_prototyped
; CHECK-NEXT: .b8 12 // DW_FORM_flag ; CHECK-NEXT: // .b8 12 // DW_FORM_flag
; CHECK-NEXT: .b8 73 // DW_AT_type ; CHECK-NEXT: // .b8 73 // DW_AT_type
; CHECK-NEXT: .b8 19 // DW_FORM_ref4 ; CHECK-NEXT: // .b8 19 // DW_FORM_ref4
; CHECK-NEXT: .b8 63 // DW_AT_external ; CHECK-NEXT: // .b8 63 // DW_AT_external
; CHECK-NEXT: .b8 12 // DW_FORM_flag ; CHECK-NEXT: // .b8 12 // DW_FORM_flag
; CHECK-NEXT: .b8 0 // EOM(1) ; CHECK-NEXT: // .b8 0 // EOM(1)
; CHECK-NEXT: .b8 0 // EOM(2) ; CHECK-NEXT: // .b8 0 // EOM(2)
; CHECK-NEXT: .b8 3 // Abbreviation Code ; CHECK-NEXT: // .b8 3 // Abbreviation Code
; CHECK-NEXT: .b8 5 // DW_TAG_formal_parameter ; CHECK-NEXT: // .b8 5 // DW_TAG_formal_parameter
; CHECK-NEXT: .b8 0 // DW_CHILDREN_no ; CHECK-NEXT: // .b8 0 // DW_CHILDREN_no
; CHECK-NEXT: .b8 3 // DW_AT_name ; CHECK-NEXT: // .b8 3 // DW_AT_name
; CHECK-NEXT: .b8 8 // DW_FORM_string ; CHECK-NEXT: // .b8 8 // DW_FORM_string
; CHECK-NEXT: .b8 58 // DW_AT_decl_file ; CHECK-NEXT: // .b8 58 // DW_AT_decl_file
; CHECK-NEXT: .b8 11 // DW_FORM_data1 ; CHECK-NEXT: // .b8 11 // DW_FORM_data1
; CHECK-NEXT: .b8 59 // DW_AT_decl_line ; CHECK-NEXT: // .b8 59 // DW_AT_decl_line
; CHECK-NEXT: .b8 11 // DW_FORM_data1 ; CHECK-NEXT: // .b8 11 // DW_FORM_data1
; CHECK-NEXT: .b8 73 // DW_AT_type ; CHECK-NEXT: // .b8 73 // DW_AT_type
; CHECK-NEXT: .b8 19 // DW_FORM_ref4 ; CHECK-NEXT: // .b8 19 // DW_FORM_ref4
; CHECK-NEXT: .b8 0 // EOM(1) ; CHECK-NEXT: // .b8 0 // EOM(1)
; CHECK-NEXT: .b8 0 // EOM(2) ; CHECK-NEXT: // .b8 0 // EOM(2)
; CHECK-NEXT: .b8 4 // Abbreviation Code ; CHECK-NEXT: // .b8 4 // Abbreviation Code
; CHECK-NEXT: .b8 36 // DW_TAG_base_type ; CHECK-NEXT: // .b8 36 // DW_TAG_base_type
; CHECK-NEXT: .b8 0 // DW_CHILDREN_no ; CHECK-NEXT: // .b8 0 // DW_CHILDREN_no
; CHECK-NEXT: .b8 3 // DW_AT_name ; CHECK-NEXT: // .b8 3 // DW_AT_name
; CHECK-NEXT: .b8 8 // DW_FORM_string ; CHECK-NEXT: // .b8 8 // DW_FORM_string
; CHECK-NEXT: .b8 62 // DW_AT_encoding ; CHECK-NEXT: // .b8 62 // DW_AT_encoding
; CHECK-NEXT: .b8 11 // DW_FORM_data1 ; CHECK-NEXT: // .b8 11 // DW_FORM_data1
; CHECK-NEXT: .b8 11 // DW_AT_byte_size ; CHECK-NEXT: // .b8 11 // DW_AT_byte_size
; CHECK-NEXT: .b8 11 // DW_FORM_data1 ; CHECK-NEXT: // .b8 11 // DW_FORM_data1
; CHECK-NEXT: .b8 0 // EOM(1) ; CHECK-NEXT: // .b8 0 // EOM(1)
; CHECK-NEXT: .b8 0 // EOM(2) ; CHECK-NEXT: // .b8 0 // EOM(2)
; CHECK-NEXT: .b8 0 // EOM(3) ; CHECK-NEXT: // .b8 0 // EOM(3)
; CHECK-NEXT: } ; CHECK-NEXT: // }
; CHECK-NEXT: .section .debug_info ; CHECK-NEXT: // .section .debug_info
; CHECK-NEXT: { ; CHECK-NEXT: // {
; CHECK-NEXT: .b32 183 // Length of Unit ; CHECK-NEXT: // .b32 183 // Length of Unit
; CHECK-NEXT: .b8 2 // DWARF version number ; CHECK-NEXT: // .b8 2 // DWARF version number
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b32 .debug_abbrev // Offset Into Abbrev. Section ; CHECK-NEXT: // .b32 .debug_abbrev // Offset Into Abbrev. Section
; CHECK-NEXT: .b8 8 // Address Size (in bytes) ; CHECK-NEXT: // .b8 8 // Address Size (in bytes)
; CHECK-NEXT: .b8 1 // Abbrev [1] 0xb:0xb0 DW_TAG_compile_unit ; 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 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 47,116,114,117,110,107,32,50,48,52,49,56,51,41
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b8 12 // DW_AT_language ; CHECK-NEXT: // .b8 12 // DW_AT_language
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b8 98,46,99 // DW_AT_name ; CHECK-NEXT: // .b8 98,46,99 // DW_AT_name
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b32 .debug_line // DW_AT_stmt_list ; 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 47,115,111,117,114,99,101 // DW_AT_comp_dir
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b64 Lfunc_begin0 // DW_AT_low_pc ; CHECK-NEXT: // .b64 Lfunc_begin0 // DW_AT_low_pc
; CHECK-NEXT: .b64 Lfunc_end2 // DW_AT_high_pc ; CHECK-NEXT: // .b64 Lfunc_end2 // DW_AT_high_pc
; CHECK-NEXT: .b8 2 // Abbrev [2] 0x65:0x27 DW_TAG_subprogram ; CHECK-NEXT: // .b8 2 // Abbrev [2] 0x65:0x27 DW_TAG_subprogram
; CHECK-NEXT: .b64 Lfunc_begin0 // DW_AT_low_pc ; CHECK-NEXT: // .b64 Lfunc_begin0 // DW_AT_low_pc
; CHECK-NEXT: .b64 Lfunc_end0 // DW_AT_high_pc ; CHECK-NEXT: // .b64 Lfunc_end0 // DW_AT_high_pc
; CHECK-NEXT: .b8 1 // DW_AT_frame_base ; CHECK-NEXT: // .b8 1 // DW_AT_frame_base
; CHECK-NEXT: .b8 156 ; CHECK-NEXT: // .b8 156
; CHECK-NEXT: .b8 98 // DW_AT_name ; CHECK-NEXT: // .b8 98 // DW_AT_name
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b8 1 // DW_AT_decl_file ; CHECK-NEXT: // .b8 1 // DW_AT_decl_file
; CHECK-NEXT: .b8 1 // DW_AT_decl_line ; CHECK-NEXT: // .b8 1 // DW_AT_decl_line
; CHECK-NEXT: .b8 1 // DW_AT_prototyped ; CHECK-NEXT: // .b8 1 // DW_AT_prototyped
; CHECK-NEXT: .b32 179 // DW_AT_type ; CHECK-NEXT: // .b32 179 // DW_AT_type
; CHECK-NEXT: .b8 1 // DW_AT_external ; CHECK-NEXT: // .b8 1 // DW_AT_external
; CHECK-NEXT: .b8 3 // Abbrev [3] 0x82:0x9 DW_TAG_formal_parameter ; CHECK-NEXT: // .b8 3 // Abbrev [3] 0x82:0x9 DW_TAG_formal_parameter
; CHECK-NEXT: .b8 99 // DW_AT_name ; CHECK-NEXT: // .b8 99 // DW_AT_name
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b8 1 // DW_AT_decl_file ; CHECK-NEXT: // .b8 1 // DW_AT_decl_file
; CHECK-NEXT: .b8 1 // DW_AT_decl_line ; CHECK-NEXT: // .b8 1 // DW_AT_decl_line
; CHECK-NEXT: .b32 179 // DW_AT_type ; CHECK-NEXT: // .b32 179 // DW_AT_type
; CHECK-NEXT: .b8 0 // End Of Children Mark ; CHECK-NEXT: // .b8 0 // End Of Children Mark
; CHECK-NEXT: .b8 2 // Abbrev [2] 0x8c:0x27 DW_TAG_subprogram ; CHECK-NEXT: // .b8 2 // Abbrev [2] 0x8c:0x27 DW_TAG_subprogram
; CHECK-NEXT: .b64 Lfunc_begin2 // DW_AT_low_pc ; CHECK-NEXT: // .b64 Lfunc_begin2 // DW_AT_low_pc
; CHECK-NEXT: .b64 Lfunc_end2 // DW_AT_high_pc ; CHECK-NEXT: // .b64 Lfunc_end2 // DW_AT_high_pc
; CHECK-NEXT: .b8 1 // DW_AT_frame_base ; CHECK-NEXT: // .b8 1 // DW_AT_frame_base
; CHECK-NEXT: .b8 156 ; CHECK-NEXT: // .b8 156
; CHECK-NEXT: .b8 100 // DW_AT_name ; CHECK-NEXT: // .b8 100 // DW_AT_name
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b8 1 // DW_AT_decl_file ; CHECK-NEXT: // .b8 1 // DW_AT_decl_file
; CHECK-NEXT: .b8 3 // DW_AT_decl_line ; CHECK-NEXT: // .b8 3 // DW_AT_decl_line
; CHECK-NEXT: .b8 1 // DW_AT_prototyped ; CHECK-NEXT: // .b8 1 // DW_AT_prototyped
; CHECK-NEXT: .b32 179 // DW_AT_type ; CHECK-NEXT: // .b32 179 // DW_AT_type
; CHECK-NEXT: .b8 1 // DW_AT_external ; CHECK-NEXT: // .b8 1 // DW_AT_external
; CHECK-NEXT: .b8 3 // Abbrev [3] 0xa9:0x9 DW_TAG_formal_parameter ; CHECK-NEXT: // .b8 3 // Abbrev [3] 0xa9:0x9 DW_TAG_formal_parameter
; CHECK-NEXT: .b8 101 // DW_AT_name ; CHECK-NEXT: // .b8 101 // DW_AT_name
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b8 1 // DW_AT_decl_file ; CHECK-NEXT: // .b8 1 // DW_AT_decl_file
; CHECK-NEXT: .b8 3 // DW_AT_decl_line ; CHECK-NEXT: // .b8 3 // DW_AT_decl_line
; CHECK-NEXT: .b32 179 // DW_AT_type ; CHECK-NEXT: // .b32 179 // DW_AT_type
; CHECK-NEXT: .b8 0 // End Of Children Mark ; CHECK-NEXT: // .b8 0 // End Of Children Mark
; CHECK-NEXT: .b8 4 // Abbrev [4] 0xb3:0x7 DW_TAG_base_type ; CHECK-NEXT: // .b8 4 // Abbrev [4] 0xb3:0x7 DW_TAG_base_type
; CHECK-NEXT: .b8 105,110,116 // DW_AT_name ; CHECK-NEXT: // .b8 105,110,116 // DW_AT_name
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b8 5 // DW_AT_encoding ; CHECK-NEXT: // .b8 5 // DW_AT_encoding
; CHECK-NEXT: .b8 4 // DW_AT_byte_size ; CHECK-NEXT: // .b8 4 // DW_AT_byte_size
; CHECK-NEXT: .b8 0 // End Of Children Mark ; CHECK-NEXT: // .b8 0 // End Of Children Mark
; CHECK-NEXT: } ; CHECK-NEXT: // }
; CHECK-NEXT: .section .debug_macinfo ; CHECK-NEXT: // .section .debug_macinfo
; CHECK-NEXT: { ; CHECK-NEXT: // {
; CHECK-NEXT: .b8 0 // End Of Macro List Mark ; CHECK-NEXT: // .b8 0 // End Of Macro List Mark
; CHECK: } ; 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 #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 } attributes #1 = { nounwind readnone }

View File

@ -1,6 +1,6 @@
; RUN: llc < %s -mtriple=nvptx64-nvidia-cuda | FileCheck %s ; 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: .visible .func use_dbg_declare()
; CHECK: .local .align 8 .b8 __local_depot0[8]; ; CHECK: .local .align 8 .b8 __local_depot0[8];
@ -23,169 +23,169 @@
; CHECK: .file 1 "test{{(/|\\\\)}}t.c" ; CHECK: .file 1 "test{{(/|\\\\)}}t.c"
; CHECK: .section .debug_abbrev ; CHECK: // .section .debug_abbrev
; CHECK-NEXT: { ; CHECK-NEXT: // {
; CHECK-NEXT: .b8 1 // Abbreviation Code ; CHECK-NEXT: // .b8 1 // Abbreviation Code
; CHECK-NEXT: .b8 17 // DW_TAG_compile_unit ; CHECK-NEXT: // .b8 17 // DW_TAG_compile_unit
; CHECK-NEXT: .b8 1 // DW_CHILDREN_yes ; CHECK-NEXT: // .b8 1 // DW_CHILDREN_yes
; CHECK-NEXT: .b8 37 // DW_AT_producer ; CHECK-NEXT: // .b8 37 // DW_AT_producer
; CHECK-NEXT: .b8 8 // DW_FORM_string ; CHECK-NEXT: // .b8 8 // DW_FORM_string
; CHECK-NEXT: .b8 19 // DW_AT_language ; CHECK-NEXT: // .b8 19 // DW_AT_language
; CHECK-NEXT: .b8 5 // DW_FORM_data2 ; CHECK-NEXT: // .b8 5 // DW_FORM_data2
; CHECK-NEXT: .b8 3 // DW_AT_name ; CHECK-NEXT: // .b8 3 // DW_AT_name
; CHECK-NEXT: .b8 8 // DW_FORM_string ; CHECK-NEXT: // .b8 8 // DW_FORM_string
; CHECK-NEXT: .b8 16 // DW_AT_stmt_list ; CHECK-NEXT: // .b8 16 // DW_AT_stmt_list
; CHECK-NEXT: .b8 6 // DW_FORM_data4 ; CHECK-NEXT: // .b8 6 // DW_FORM_data4
; CHECK-NEXT: .b8 27 // DW_AT_comp_dir ; CHECK-NEXT: // .b8 27 // DW_AT_comp_dir
; CHECK-NEXT: .b8 8 // DW_FORM_string ; CHECK-NEXT: // .b8 8 // DW_FORM_string
; CHECK-NEXT: .b8 17 // DW_AT_low_pc ; CHECK-NEXT: // .b8 17 // DW_AT_low_pc
; CHECK-NEXT: .b8 1 // DW_FORM_addr ; CHECK-NEXT: // .b8 1 // DW_FORM_addr
; CHECK-NEXT: .b8 18 // DW_AT_high_pc ; CHECK-NEXT: // .b8 18 // DW_AT_high_pc
; CHECK-NEXT: .b8 1 // DW_FORM_addr ; CHECK-NEXT: // .b8 1 // DW_FORM_addr
; CHECK-NEXT: .b8 0 // EOM(1) ; CHECK-NEXT: // .b8 0 // EOM(1)
; CHECK-NEXT: .b8 0 // EOM(2) ; CHECK-NEXT: // .b8 0 // EOM(2)
; CHECK-NEXT: .b8 2 // Abbreviation Code ; CHECK-NEXT: // .b8 2 // Abbreviation Code
; CHECK-NEXT: .b8 46 // DW_TAG_subprogram ; CHECK-NEXT: // .b8 46 // DW_TAG_subprogram
; CHECK-NEXT: .b8 1 // DW_CHILDREN_yes ; CHECK-NEXT: // .b8 1 // DW_CHILDREN_yes
; CHECK-NEXT: .b8 17 // DW_AT_low_pc ; CHECK-NEXT: // .b8 17 // DW_AT_low_pc
; CHECK-NEXT: .b8 1 // DW_FORM_addr ; CHECK-NEXT: // .b8 1 // DW_FORM_addr
; CHECK-NEXT: .b8 18 // DW_AT_high_pc ; CHECK-NEXT: // .b8 18 // DW_AT_high_pc
; CHECK-NEXT: .b8 1 // DW_FORM_addr ; CHECK-NEXT: // .b8 1 // DW_FORM_addr
; CHECK-NEXT: .b8 64 // DW_AT_frame_base ; CHECK-NEXT: // .b8 64 // DW_AT_frame_base
; CHECK-NEXT: .b8 10 // DW_FORM_block1 ; CHECK-NEXT: // .b8 10 // DW_FORM_block1
; CHECK-NEXT: .b8 3 // DW_AT_name ; CHECK-NEXT: // .b8 3 // DW_AT_name
; CHECK-NEXT: .b8 8 // DW_FORM_string ; CHECK-NEXT: // .b8 8 // DW_FORM_string
; CHECK-NEXT: .b8 58 // DW_AT_decl_file ; CHECK-NEXT: // .b8 58 // DW_AT_decl_file
; CHECK-NEXT: .b8 11 // DW_FORM_data1 ; CHECK-NEXT: // .b8 11 // DW_FORM_data1
; CHECK-NEXT: .b8 59 // DW_AT_decl_line ; CHECK-NEXT: // .b8 59 // DW_AT_decl_line
; CHECK-NEXT: .b8 11 // DW_FORM_data1 ; CHECK-NEXT: // .b8 11 // DW_FORM_data1
; CHECK-NEXT: .b8 39 // DW_AT_prototyped ; CHECK-NEXT: // .b8 39 // DW_AT_prototyped
; CHECK-NEXT: .b8 12 // DW_FORM_flag ; CHECK-NEXT: // .b8 12 // DW_FORM_flag
; CHECK-NEXT: .b8 63 // DW_AT_external ; CHECK-NEXT: // .b8 63 // DW_AT_external
; CHECK-NEXT: .b8 12 // DW_FORM_flag ; CHECK-NEXT: // .b8 12 // DW_FORM_flag
; CHECK-NEXT: .b8 0 // EOM(1) ; CHECK-NEXT: // .b8 0 // EOM(1)
; CHECK-NEXT: .b8 0 // EOM(2) ; CHECK-NEXT: // .b8 0 // EOM(2)
; CHECK-NEXT: .b8 3 // Abbreviation Code ; CHECK-NEXT: // .b8 3 // Abbreviation Code
; CHECK-NEXT: .b8 52 // DW_TAG_variable ; CHECK-NEXT: // .b8 52 // DW_TAG_variable
; CHECK-NEXT: .b8 0 // DW_CHILDREN_no ; CHECK-NEXT: // .b8 0 // DW_CHILDREN_no
; CHECK-NEXT: .b8 2 // DW_AT_location ; CHECK-NEXT: // .b8 2 // DW_AT_location
; CHECK-NEXT: .b8 10 // DW_FORM_block1 ; CHECK-NEXT: // .b8 10 // DW_FORM_block1
; CHECK-NEXT: .b8 3 // DW_AT_name ; CHECK-NEXT: // .b8 3 // DW_AT_name
; CHECK-NEXT: .b8 8 // DW_FORM_string ; CHECK-NEXT: // .b8 8 // DW_FORM_string
; CHECK-NEXT: .b8 58 // DW_AT_decl_file ; CHECK-NEXT: // .b8 58 // DW_AT_decl_file
; CHECK-NEXT: .b8 11 // DW_FORM_data1 ; CHECK-NEXT: // .b8 11 // DW_FORM_data1
; CHECK-NEXT: .b8 59 // DW_AT_decl_line ; CHECK-NEXT: // .b8 59 // DW_AT_decl_line
; CHECK-NEXT: .b8 11 // DW_FORM_data1 ; CHECK-NEXT: // .b8 11 // DW_FORM_data1
; CHECK-NEXT: .b8 73 // DW_AT_type ; CHECK-NEXT: // .b8 73 // DW_AT_type
; CHECK-NEXT: .b8 19 // DW_FORM_ref4 ; CHECK-NEXT: // .b8 19 // DW_FORM_ref4
; CHECK-NEXT: .b8 0 // EOM(1) ; CHECK-NEXT: // .b8 0 // EOM(1)
; CHECK-NEXT: .b8 0 // EOM(2) ; CHECK-NEXT: // .b8 0 // EOM(2)
; CHECK-NEXT: .b8 4 // Abbreviation Code ; CHECK-NEXT: // .b8 4 // Abbreviation Code
; CHECK-NEXT: .b8 19 // DW_TAG_structure_type ; CHECK-NEXT: // .b8 19 // DW_TAG_structure_type
; CHECK-NEXT: .b8 1 // DW_CHILDREN_yes ; CHECK-NEXT: // .b8 1 // DW_CHILDREN_yes
; CHECK-NEXT: .b8 3 // DW_AT_name ; CHECK-NEXT: // .b8 3 // DW_AT_name
; CHECK-NEXT: .b8 8 // DW_FORM_string ; CHECK-NEXT: // .b8 8 // DW_FORM_string
; CHECK-NEXT: .b8 11 // DW_AT_byte_size ; CHECK-NEXT: // .b8 11 // DW_AT_byte_size
; CHECK-NEXT: .b8 11 // DW_FORM_data1 ; CHECK-NEXT: // .b8 11 // DW_FORM_data1
; CHECK-NEXT: .b8 58 // DW_AT_decl_file ; CHECK-NEXT: // .b8 58 // DW_AT_decl_file
; CHECK-NEXT: .b8 11 // DW_FORM_data1 ; CHECK-NEXT: // .b8 11 // DW_FORM_data1
; CHECK-NEXT: .b8 59 // DW_AT_decl_line ; CHECK-NEXT: // .b8 59 // DW_AT_decl_line
; CHECK-NEXT: .b8 11 // DW_FORM_data1 ; CHECK-NEXT: // .b8 11 // DW_FORM_data1
; CHECK-NEXT: .b8 0 // EOM(1) ; CHECK-NEXT: // .b8 0 // EOM(1)
; CHECK-NEXT: .b8 0 // EOM(2) ; CHECK-NEXT: // .b8 0 // EOM(2)
; CHECK-NEXT: .b8 5 // Abbreviation Code ; CHECK-NEXT: // .b8 5 // Abbreviation Code
; CHECK-NEXT: .b8 13 // DW_TAG_member ; CHECK-NEXT: // .b8 13 // DW_TAG_member
; CHECK-NEXT: .b8 0 // DW_CHILDREN_no ; CHECK-NEXT: // .b8 0 // DW_CHILDREN_no
; CHECK-NEXT: .b8 3 // DW_AT_name ; CHECK-NEXT: // .b8 3 // DW_AT_name
; CHECK-NEXT: .b8 8 // DW_FORM_string ; CHECK-NEXT: // .b8 8 // DW_FORM_string
; CHECK-NEXT: .b8 73 // DW_AT_type ; CHECK-NEXT: // .b8 73 // DW_AT_type
; CHECK-NEXT: .b8 19 // DW_FORM_ref4 ; CHECK-NEXT: // .b8 19 // DW_FORM_ref4
; CHECK-NEXT: .b8 58 // DW_AT_decl_file ; CHECK-NEXT: // .b8 58 // DW_AT_decl_file
; CHECK-NEXT: .b8 11 // DW_FORM_data1 ; CHECK-NEXT: // .b8 11 // DW_FORM_data1
; CHECK-NEXT: .b8 59 // DW_AT_decl_line ; CHECK-NEXT: // .b8 59 // DW_AT_decl_line
; CHECK-NEXT: .b8 11 // DW_FORM_data1 ; CHECK-NEXT: // .b8 11 // DW_FORM_data1
; CHECK-NEXT: .b8 56 // DW_AT_data_member_location ; CHECK-NEXT: // .b8 56 // DW_AT_data_member_location
; CHECK-NEXT: .b8 10 // DW_FORM_block1 ; CHECK-NEXT: // .b8 10 // DW_FORM_block1
; CHECK-NEXT: .b8 0 // EOM(1) ; CHECK-NEXT: // .b8 0 // EOM(1)
; CHECK-NEXT: .b8 0 // EOM(2) ; CHECK-NEXT: // .b8 0 // EOM(2)
; CHECK-NEXT: .b8 6 // Abbreviation Code ; CHECK-NEXT: // .b8 6 // Abbreviation Code
; CHECK-NEXT: .b8 36 // DW_TAG_base_type ; CHECK-NEXT: // .b8 36 // DW_TAG_base_type
; CHECK-NEXT: .b8 0 // DW_CHILDREN_no ; CHECK-NEXT: // .b8 0 // DW_CHILDREN_no
; CHECK-NEXT: .b8 3 // DW_AT_name ; CHECK-NEXT: // .b8 3 // DW_AT_name
; CHECK-NEXT: .b8 8 // DW_FORM_string ; CHECK-NEXT: // .b8 8 // DW_FORM_string
; CHECK-NEXT: .b8 62 // DW_AT_encoding ; CHECK-NEXT: // .b8 62 // DW_AT_encoding
; CHECK-NEXT: .b8 11 // DW_FORM_data1 ; CHECK-NEXT: // .b8 11 // DW_FORM_data1
; CHECK-NEXT: .b8 11 // DW_AT_byte_size ; CHECK-NEXT: // .b8 11 // DW_AT_byte_size
; CHECK-NEXT: .b8 11 // DW_FORM_data1 ; CHECK-NEXT: // .b8 11 // DW_FORM_data1
; CHECK-NEXT: .b8 0 // EOM(1) ; CHECK-NEXT: // .b8 0 // EOM(1)
; CHECK-NEXT: .b8 0 // EOM(2) ; CHECK-NEXT: // .b8 0 // EOM(2)
; CHECK-NEXT: .b8 0 // EOM(3) ; CHECK-NEXT: // .b8 0 // EOM(3)
; CHECK-NEXT: } ; CHECK-NEXT: // }
; CHECK-NEXT: .section .debug_info ; CHECK-NEXT: // .section .debug_info
; CHECK-NEXT: { ; CHECK-NEXT: // {
; CHECK-NEXT: .b32 135 // Length of Unit ; CHECK-NEXT: // .b32 135 // Length of Unit
; CHECK-NEXT: .b8 2 // DWARF version number ; CHECK-NEXT: // .b8 2 // DWARF version number
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b32 .debug_abbrev // Offset Into Abbrev. Section ; CHECK-NEXT: // .b32 .debug_abbrev // Offset Into Abbrev. Section
; CHECK-NEXT: .b8 8 // Address Size (in bytes) ; CHECK-NEXT: // .b8 8 // Address Size (in bytes)
; CHECK-NEXT: .b8 1 // Abbrev [1] 0xb:0x80 DW_TAG_compile_unit ; 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 99,108,97,110,103 // DW_AT_producer
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b8 12 // DW_AT_language ; CHECK-NEXT: // .b8 12 // DW_AT_language
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b8 116,46,99 // DW_AT_name ; CHECK-NEXT: // .b8 116,46,99 // DW_AT_name
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b32 .debug_line // DW_AT_stmt_list ; CHECK-NEXT: // .b32 .debug_line // DW_AT_stmt_list
; CHECK-NEXT: .b8 116,101,115,116 // DW_AT_comp_dir ; CHECK-NEXT: // .b8 116,101,115,116 // DW_AT_comp_dir
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b64 Lfunc_begin0 // DW_AT_low_pc ; CHECK-NEXT: // .b64 Lfunc_begin0 // DW_AT_low_pc
; CHECK-NEXT: .b64 Lfunc_end0 // DW_AT_high_pc ; CHECK-NEXT: // .b64 Lfunc_end0 // DW_AT_high_pc
; CHECK-NEXT: .b8 2 // Abbrev [2] 0x31:0x3d DW_TAG_subprogram ; CHECK-NEXT: // .b8 2 // Abbrev [2] 0x31:0x3d DW_TAG_subprogram
; CHECK-NEXT: .b64 Lfunc_begin0 // DW_AT_low_pc ; CHECK-NEXT: // .b64 Lfunc_begin0 // DW_AT_low_pc
; CHECK-NEXT: .b64 Lfunc_end0 // DW_AT_high_pc ; CHECK-NEXT: // .b64 Lfunc_end0 // DW_AT_high_pc
; CHECK-NEXT: .b8 1 // DW_AT_frame_base ; CHECK-NEXT: // .b8 1 // DW_AT_frame_base
; CHECK-NEXT: .b8 156 ; 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 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 0
; CHECK-NEXT: .b8 1 // DW_AT_decl_file ; CHECK-NEXT: // .b8 1 // DW_AT_decl_file
; CHECK-NEXT: .b8 3 // DW_AT_decl_line ; CHECK-NEXT: // .b8 3 // DW_AT_decl_line
; CHECK-NEXT: .b8 1 // DW_AT_prototyped ; CHECK-NEXT: // .b8 1 // DW_AT_prototyped
; CHECK-NEXT: .b8 1 // DW_AT_external ; CHECK-NEXT: // .b8 1 // DW_AT_external
; CHECK-NEXT: .b8 3 // Abbrev [3] 0x58:0x15 DW_TAG_variable ; CHECK-NEXT: // .b8 3 // Abbrev [3] 0x58:0x15 DW_TAG_variable
; CHECK-NEXT: .b8 11 // DW_AT_location ; CHECK-NEXT: // .b8 11 // DW_AT_location
; CHECK-NEXT: .b8 3 ; CHECK-NEXT: // .b8 3
; CHECK-NEXT: .b64 __local_depot0 ; CHECK-NEXT: // .b64 __local_depot0
; CHECK-NEXT: .b8 35 ; CHECK-NEXT: // .b8 35
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b8 111 // DW_AT_name ; CHECK-NEXT: // .b8 111 // DW_AT_name
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b8 1 // DW_AT_decl_file ; CHECK-NEXT: // .b8 1 // DW_AT_decl_file
; CHECK-NEXT: .b8 4 // DW_AT_decl_line ; CHECK-NEXT: // .b8 4 // DW_AT_decl_line
; CHECK-NEXT: .b32 110 // DW_AT_type ; CHECK-NEXT: // .b32 110 // DW_AT_type
; CHECK-NEXT: .b8 0 // End Of Children Mark ; CHECK-NEXT: // .b8 0 // End Of Children Mark
; CHECK-NEXT: .b8 4 // Abbrev [4] 0x6e:0x15 DW_TAG_structure_type ; CHECK-NEXT: // .b8 4 // Abbrev [4] 0x6e:0x15 DW_TAG_structure_type
; CHECK-NEXT: .b8 70,111,111 // DW_AT_name ; CHECK-NEXT: // .b8 70,111,111 // DW_AT_name
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b8 4 // DW_AT_byte_size ; CHECK-NEXT: // .b8 4 // DW_AT_byte_size
; CHECK-NEXT: .b8 1 // DW_AT_decl_file ; CHECK-NEXT: // .b8 1 // DW_AT_decl_file
; CHECK-NEXT: .b8 1 // DW_AT_decl_line ; CHECK-NEXT: // .b8 1 // DW_AT_decl_line
; CHECK-NEXT: .b8 5 // Abbrev [5] 0x76:0xc DW_TAG_member ; CHECK-NEXT: // .b8 5 // Abbrev [5] 0x76:0xc DW_TAG_member
; CHECK-NEXT: .b8 120 // DW_AT_name ; CHECK-NEXT: // .b8 120 // DW_AT_name
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b32 131 // DW_AT_type ; CHECK-NEXT: // .b32 131 // DW_AT_type
; CHECK-NEXT: .b8 1 // DW_AT_decl_file ; CHECK-NEXT: // .b8 1 // DW_AT_decl_file
; CHECK-NEXT: .b8 1 // DW_AT_decl_line ; CHECK-NEXT: // .b8 1 // DW_AT_decl_line
; CHECK-NEXT: .b8 2 // DW_AT_data_member_location ; CHECK-NEXT: // .b8 2 // DW_AT_data_member_location
; CHECK-NEXT: .b8 35 ; CHECK-NEXT: // .b8 35
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b8 0 // End Of Children Mark ; CHECK-NEXT: // .b8 0 // End Of Children Mark
; CHECK-NEXT: .b8 6 // Abbrev [6] 0x83:0x7 DW_TAG_base_type ; CHECK-NEXT: // .b8 6 // Abbrev [6] 0x83:0x7 DW_TAG_base_type
; CHECK-NEXT: .b8 105,110,116 // DW_AT_name ; CHECK-NEXT: // .b8 105,110,116 // DW_AT_name
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b8 5 // DW_AT_encoding ; CHECK-NEXT: // .b8 5 // DW_AT_encoding
; CHECK-NEXT: .b8 4 // DW_AT_byte_size ; CHECK-NEXT: // .b8 4 // DW_AT_byte_size
; CHECK-NEXT: .b8 0 // End Of Children Mark ; CHECK-NEXT: // .b8 0 // End Of Children Mark
; CHECK-NEXT: } ; CHECK-NEXT: // }
%struct.Foo = type { i32 } %struct.Foo = type { i32 }

View File

@ -1,18 +0,0 @@
; RUN: llc < %s -mtriple=nvptx64-nvidia-cuda | FileCheck %s
; CHECK: .target sm_{{[0-9]+$}}
; CHECK-NOT: }
!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!3, !4, !5, !6, !7}
!llvm.ident = !{!8}
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 9.0.0 (trunk 351924) (llvm/trunk 351968)", isOptimized: false, runtimeVersion: 0, emissionKind: DebugDirectivesOnly, enums: !2, nameTableKind: None)
!1 = !DIFile(filename: "new.cc", directory: "/test")
!2 = !{}
!3 = !{i32 2, !"Dwarf Version", i32 2}
!4 = !{i32 2, !"Debug Info Version", i32 3}
!5 = !{i32 1, !"wchar_size", i32 4}
!6 = !{i32 4, !"nvvm-reflect-ftz", i32 0}
!7 = !{i32 7, !"PIC Level", i32 2}
!8 = !{!"clang version 9.0.0 (trunk 351924) (llvm/trunk 351968)"}

View File

@ -8,7 +8,7 @@
;__device__ void bar() {} ;__device__ void bar() {}
;} ;}
; CHECK: .target sm_{{[0-9]+}}, debug ; CHECK: .target sm_{{[0-9]+}}//, debug
; CHECK: .visible .func foo() ; CHECK: .visible .func foo()
; CHECK: .loc [[FOO:[0-9]+]] 1 31 ; CHECK: .loc [[FOO:[0-9]+]] 1 31
@ -29,52 +29,52 @@ bb:
; CHECK-DAG: .file [[FOO]] "{{.*}}foo.h" ; CHECK-DAG: .file [[FOO]] "{{.*}}foo.h"
; CHECK-DAG: .file [[BAR]] "{{.*}}bar.cu" ; CHECK-DAG: .file [[BAR]] "{{.*}}bar.cu"
; CHECK: .section .debug_abbrev ; CHECK: // .section .debug_abbrev
; CHECK-NEXT: { ; CHECK-NEXT: // {
; CHECK-NEXT: .b8 1 // Abbreviation Code ; CHECK-NEXT: // .b8 1 // Abbreviation Code
; CHECK-NEXT: .b8 17 // DW_TAG_compile_unit ; CHECK-NEXT: // .b8 17 // DW_TAG_compile_unit
; CHECK-NEXT: .b8 0 // DW_CHILDREN_no ; CHECK-NEXT: // .b8 0 // DW_CHILDREN_no
; CHECK-NEXT: .b8 37 // DW_AT_producer ; CHECK-NEXT: // .b8 37 // DW_AT_producer
; CHECK-NEXT: .b8 8 // DW_FORM_string ; CHECK-NEXT: // .b8 8 // DW_FORM_string
; CHECK-NEXT: .b8 19 // DW_AT_language ; CHECK-NEXT: // .b8 19 // DW_AT_language
; CHECK-NEXT: .b8 5 // DW_FORM_data2 ; CHECK-NEXT: // .b8 5 // DW_FORM_data2
; CHECK-NEXT: .b8 3 // DW_AT_name ; CHECK-NEXT: // .b8 3 // DW_AT_name
; CHECK-NEXT: .b8 8 // DW_FORM_string ; CHECK-NEXT: // .b8 8 // DW_FORM_string
; CHECK-NEXT: .b8 16 // DW_AT_stmt_list ; CHECK-NEXT: // .b8 16 // DW_AT_stmt_list
; CHECK-NEXT: .b8 6 // DW_FORM_data4 ; CHECK-NEXT: // .b8 6 // DW_FORM_data4
; CHECK-NEXT: .b8 27 // DW_AT_comp_dir ; CHECK-NEXT: // .b8 27 // DW_AT_comp_dir
; CHECK-NEXT: .b8 8 // DW_FORM_string ; CHECK-NEXT: // .b8 8 // DW_FORM_string
; CHECK-NEXT: .b8 17 // DW_AT_low_pc ; CHECK-NEXT: // .b8 17 // DW_AT_low_pc
; CHECK-NEXT: .b8 1 // DW_FORM_addr ; CHECK-NEXT: // .b8 1 // DW_FORM_addr
; CHECK-NEXT: .b8 18 // DW_AT_high_pc ; CHECK-NEXT: // .b8 18 // DW_AT_high_pc
; CHECK-NEXT: .b8 1 // DW_FORM_addr ; CHECK-NEXT: // .b8 1 // DW_FORM_addr
; CHECK-NEXT: .b8 0 // EOM(1) ; CHECK-NEXT: // .b8 0 // EOM(1)
; CHECK-NEXT: .b8 0 // EOM(2) ; CHECK-NEXT: // .b8 0 // EOM(2)
; CHECK-NEXT: .b8 0 // EOM(3) ; CHECK-NEXT: // .b8 0 // EOM(3)
; CHECK-NEXT: } ; CHECK-NEXT: // }
; CHECK-NEXT: .section .debug_info ; CHECK-NEXT: // .section .debug_info
; CHECK-NEXT: { ; CHECK-NEXT: // {
; CHECK-NEXT: .b32 50 // Length of Unit ; CHECK-NEXT: // .b32 50 // Length of Unit
; CHECK-NEXT: .b8 2 // DWARF version number ; CHECK-NEXT: // .b8 2 // DWARF version number
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b32 .debug_abbrev // Offset Into Abbrev. Section ; CHECK-NEXT: // .b32 .debug_abbrev // Offset Into Abbrev. Section
; CHECK-NEXT: .b8 8 // Address Size (in bytes) ; CHECK-NEXT: // .b8 8 // Address Size (in bytes)
; CHECK-NEXT: .b8 1 // Abbrev [1] 0xb:0x2b DW_TAG_compile_unit ; CHECK-NEXT: // .b8 1 // Abbrev [1] 0xb:0x2b DW_TAG_compile_unit
; CHECK-NEXT: .b8 0 // DW_AT_producer ; CHECK-NEXT: // .b8 0 // DW_AT_producer
; CHECK-NEXT: .b8 4 // DW_AT_language ; CHECK-NEXT: // .b8 4 // DW_AT_language
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b8 98,97,114,46,99,117 // DW_AT_name ; CHECK-NEXT: // .b8 98,97,114,46,99,117 // DW_AT_name
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b32 .debug_line // DW_AT_stmt_list ; 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 47,115,111,117,114,99,101,47,100,105,114 // DW_AT_comp_dir
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b64 Lfunc_begin0 // DW_AT_low_pc ; CHECK-NEXT: // .b64 Lfunc_begin0 // DW_AT_low_pc
; CHECK-NEXT: .b64 Lfunc_end1 // DW_AT_high_pc ; CHECK-NEXT: // .b64 Lfunc_end1 // DW_AT_high_pc
; CHECK-NEXT: } ; CHECK-NEXT: // }
; CHECK-NEXT: .section .debug_macinfo ; CHECK-NEXT: // .section .debug_macinfo
; CHECK-NEXT: { ; CHECK-NEXT: // {
; CHECK-NEXT: .b8 0 // End Of Macro List Mark ; CHECK-NEXT: // .b8 0 // End Of Macro List Mark
; CHECK: } ; CHECK: // }
!llvm.dbg.cu = !{!0} !llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!8, !9} !llvm.module.flags = !{!8, !9}

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
; RUN: llc -mtriple=nvptx64-nvidia-cuda < %s | FileCheck %s ; 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: .extern .func (.param .b32 func_retval0) _ZN1A3fooEv
; CHECK: ( ; CHECK: (
@ -129,207 +129,207 @@ attributes #2 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "n
!33 = !DILocation(line: 11, scope: !32) !33 = !DILocation(line: 11, scope: !32)
!34 = !DILocation(line: 12, scope: !14) !34 = !DILocation(line: 12, scope: !14)
; CHECK: .section .debug_abbrev ; CHECK: // .section .debug_abbrev
; CHECK-NEXT: { ; CHECK-NEXT: // {
; CHECK-NEXT: .b8 1 // Abbreviation Code ; CHECK-NEXT: // .b8 1 // Abbreviation Code
; CHECK-NEXT: .b8 17 // DW_TAG_compile_unit ; CHECK-NEXT: // .b8 17 // DW_TAG_compile_unit
; CHECK-NEXT: .b8 1 // DW_CHILDREN_yes ; CHECK-NEXT: // .b8 1 // DW_CHILDREN_yes
; CHECK-NEXT: .b8 37 // DW_AT_producer ; CHECK-NEXT: // .b8 37 // DW_AT_producer
; CHECK-NEXT: .b8 8 // DW_FORM_string ; CHECK-NEXT: // .b8 8 // DW_FORM_string
; CHECK-NEXT: .b8 19 // DW_AT_language ; CHECK-NEXT: // .b8 19 // DW_AT_language
; CHECK-NEXT: .b8 5 // DW_FORM_data2 ; CHECK-NEXT: // .b8 5 // DW_FORM_data2
; CHECK-NEXT: .b8 3 // DW_AT_name ; CHECK-NEXT: // .b8 3 // DW_AT_name
; CHECK-NEXT: .b8 8 // DW_FORM_string ; CHECK-NEXT: // .b8 8 // DW_FORM_string
; CHECK-NEXT: .b8 16 // DW_AT_stmt_list ; CHECK-NEXT: // .b8 16 // DW_AT_stmt_list
; CHECK-NEXT: .b8 6 // DW_FORM_data4 ; CHECK-NEXT: // .b8 6 // DW_FORM_data4
; CHECK-NEXT: .b8 27 // DW_AT_comp_dir ; CHECK-NEXT: // .b8 27 // DW_AT_comp_dir
; CHECK-NEXT: .b8 8 // DW_FORM_string ; CHECK-NEXT: // .b8 8 // DW_FORM_string
; CHECK-NEXT: .b8 17 // DW_AT_low_pc ; CHECK-NEXT: // .b8 17 // DW_AT_low_pc
; CHECK-NEXT: .b8 1 // DW_FORM_addr ; CHECK-NEXT: // .b8 1 // DW_FORM_addr
; CHECK-NEXT: .b8 18 // DW_AT_high_pc ; CHECK-NEXT: // .b8 18 // DW_AT_high_pc
; CHECK-NEXT: .b8 1 // DW_FORM_addr ; CHECK-NEXT: // .b8 1 // DW_FORM_addr
; CHECK-NEXT: .b8 0 // EOM(1) ; CHECK-NEXT: // .b8 0 // EOM(1)
; CHECK-NEXT: .b8 0 // EOM(2) ; CHECK-NEXT: // .b8 0 // EOM(2)
; CHECK-NEXT: .b8 2 // Abbreviation Code ; CHECK-NEXT: // .b8 2 // Abbreviation Code
; CHECK-NEXT: .b8 19 // DW_TAG_structure_type ; CHECK-NEXT: // .b8 19 // DW_TAG_structure_type
; CHECK-NEXT: .b8 0 // DW_CHILDREN_no ; CHECK-NEXT: // .b8 0 // DW_CHILDREN_no
; CHECK-NEXT: .b8 3 // DW_AT_name ; CHECK-NEXT: // .b8 3 // DW_AT_name
; CHECK-NEXT: .b8 8 // DW_FORM_string ; CHECK-NEXT: // .b8 8 // DW_FORM_string
; CHECK-NEXT: .b8 60 // DW_AT_declaration ; CHECK-NEXT: // .b8 60 // DW_AT_declaration
; CHECK-NEXT: .b8 12 // DW_FORM_flag ; CHECK-NEXT: // .b8 12 // DW_FORM_flag
; CHECK-NEXT: .b8 0 // EOM(1) ; CHECK-NEXT: // .b8 0 // EOM(1)
; CHECK-NEXT: .b8 0 // EOM(2) ; CHECK-NEXT: // .b8 0 // EOM(2)
; CHECK-NEXT: .b8 3 // Abbreviation Code ; CHECK-NEXT: // .b8 3 // Abbreviation Code
; CHECK-NEXT: .b8 46 // DW_TAG_subprogram ; CHECK-NEXT: // .b8 46 // DW_TAG_subprogram
; CHECK-NEXT: .b8 1 // DW_CHILDREN_yes ; CHECK-NEXT: // .b8 1 // DW_CHILDREN_yes
; CHECK-NEXT: .b8 17 // DW_AT_low_pc ; CHECK-NEXT: // .b8 17 // DW_AT_low_pc
; CHECK-NEXT: .b8 1 // DW_FORM_addr ; CHECK-NEXT: // .b8 1 // DW_FORM_addr
; CHECK-NEXT: .b8 18 // DW_AT_high_pc ; CHECK-NEXT: // .b8 18 // DW_AT_high_pc
; CHECK-NEXT: .b8 1 // DW_FORM_addr ; CHECK-NEXT: // .b8 1 // DW_FORM_addr
; CHECK-NEXT: .b8 64 // DW_AT_frame_base ; CHECK-NEXT: // .b8 64 // DW_AT_frame_base
; CHECK-NEXT: .b8 10 // DW_FORM_block1 ; CHECK-NEXT: // .b8 10 // DW_FORM_block1
; CHECK-NEXT: .b8 135,64 // DW_AT_MIPS_linkage_name ; CHECK-NEXT: // .b8 135,64 // DW_AT_MIPS_linkage_name
; CHECK-NEXT: .b8 8 // DW_FORM_string ; CHECK-NEXT: // .b8 8 // DW_FORM_string
; CHECK-NEXT: .b8 3 // DW_AT_name ; CHECK-NEXT: // .b8 3 // DW_AT_name
; CHECK-NEXT: .b8 8 // DW_FORM_string ; CHECK-NEXT: // .b8 8 // DW_FORM_string
; CHECK-NEXT: .b8 58 // DW_AT_decl_file ; CHECK-NEXT: // .b8 58 // DW_AT_decl_file
; CHECK-NEXT: .b8 11 // DW_FORM_data1 ; CHECK-NEXT: // .b8 11 // DW_FORM_data1
; CHECK-NEXT: .b8 59 // DW_AT_decl_line ; CHECK-NEXT: // .b8 59 // DW_AT_decl_line
; CHECK-NEXT: .b8 11 // DW_FORM_data1 ; CHECK-NEXT: // .b8 11 // DW_FORM_data1
; CHECK-NEXT: .b8 63 // DW_AT_external ; CHECK-NEXT: // .b8 63 // DW_AT_external
; CHECK-NEXT: .b8 12 // DW_FORM_flag ; CHECK-NEXT: // .b8 12 // DW_FORM_flag
; CHECK-NEXT: .b8 0 // EOM(1) ; CHECK-NEXT: // .b8 0 // EOM(1)
; CHECK-NEXT: .b8 0 // EOM(2) ; CHECK-NEXT: // .b8 0 // EOM(2)
; CHECK-NEXT: .b8 4 // Abbreviation Code ; CHECK-NEXT: // .b8 4 // Abbreviation Code
; CHECK-NEXT: .b8 52 // DW_TAG_variable ; CHECK-NEXT: // .b8 52 // DW_TAG_variable
; CHECK-NEXT: .b8 0 // DW_CHILDREN_no ; CHECK-NEXT: // .b8 0 // DW_CHILDREN_no
; CHECK-NEXT: .b8 3 // DW_AT_name ; CHECK-NEXT: // .b8 3 // DW_AT_name
; CHECK-NEXT: .b8 8 // DW_FORM_string ; CHECK-NEXT: // .b8 8 // DW_FORM_string
; CHECK-NEXT: .b8 58 // DW_AT_decl_file ; CHECK-NEXT: // .b8 58 // DW_AT_decl_file
; CHECK-NEXT: .b8 11 // DW_FORM_data1 ; CHECK-NEXT: // .b8 11 // DW_FORM_data1
; CHECK-NEXT: .b8 59 // DW_AT_decl_line ; CHECK-NEXT: // .b8 59 // DW_AT_decl_line
; CHECK-NEXT: .b8 11 // DW_FORM_data1 ; CHECK-NEXT: // .b8 11 // DW_FORM_data1
; CHECK-NEXT: .b8 73 // DW_AT_type ; CHECK-NEXT: // .b8 73 // DW_AT_type
; CHECK-NEXT: .b8 16 // DW_FORM_ref_addr ; CHECK-NEXT: // .b8 16 // DW_FORM_ref_addr
; CHECK-NEXT: .b8 0 // EOM(1) ; CHECK-NEXT: // .b8 0 // EOM(1)
; CHECK-NEXT: .b8 0 // EOM(2) ; CHECK-NEXT: // .b8 0 // EOM(2)
; CHECK-NEXT: .b8 5 // Abbreviation Code ; CHECK-NEXT: // .b8 5 // Abbreviation Code
; CHECK-NEXT: .b8 46 // DW_TAG_subprogram ; CHECK-NEXT: // .b8 46 // DW_TAG_subprogram
; CHECK-NEXT: .b8 1 // DW_CHILDREN_yes ; CHECK-NEXT: // .b8 1 // DW_CHILDREN_yes
; CHECK-NEXT: .b8 17 // DW_AT_low_pc ; CHECK-NEXT: // .b8 17 // DW_AT_low_pc
; CHECK-NEXT: .b8 1 // DW_FORM_addr ; CHECK-NEXT: // .b8 1 // DW_FORM_addr
; CHECK-NEXT: .b8 18 // DW_AT_high_pc ; CHECK-NEXT: // .b8 18 // DW_AT_high_pc
; CHECK-NEXT: .b8 1 // DW_FORM_addr ; CHECK-NEXT: // .b8 1 // DW_FORM_addr
; CHECK-NEXT: .b8 64 // DW_AT_frame_base ; CHECK-NEXT: // .b8 64 // DW_AT_frame_base
; CHECK-NEXT: .b8 10 // DW_FORM_block1 ; CHECK-NEXT: // .b8 10 // DW_FORM_block1
; CHECK-NEXT: .b8 135,64 // DW_AT_MIPS_linkage_name ; CHECK-NEXT: // .b8 135,64 // DW_AT_MIPS_linkage_name
; CHECK-NEXT: .b8 8 // DW_FORM_string ; CHECK-NEXT: // .b8 8 // DW_FORM_string
; CHECK-NEXT: .b8 3 // DW_AT_name ; CHECK-NEXT: // .b8 3 // DW_AT_name
; CHECK-NEXT: .b8 8 // DW_FORM_string ; CHECK-NEXT: // .b8 8 // DW_FORM_string
; CHECK-NEXT: .b8 58 // DW_AT_decl_file ; CHECK-NEXT: // .b8 58 // DW_AT_decl_file
; CHECK-NEXT: .b8 11 // DW_FORM_data1 ; CHECK-NEXT: // .b8 11 // DW_FORM_data1
; CHECK-NEXT: .b8 59 // DW_AT_decl_line ; CHECK-NEXT: // .b8 59 // DW_AT_decl_line
; CHECK-NEXT: .b8 11 // DW_FORM_data1 ; CHECK-NEXT: // .b8 11 // DW_FORM_data1
; CHECK-NEXT: .b8 73 // DW_AT_type ; CHECK-NEXT: // .b8 73 // DW_AT_type
; CHECK-NEXT: .b8 19 // DW_FORM_ref4 ; CHECK-NEXT: // .b8 19 // DW_FORM_ref4
; CHECK-NEXT: .b8 63 // DW_AT_external ; CHECK-NEXT: // .b8 63 // DW_AT_external
; CHECK-NEXT: .b8 12 // DW_FORM_flag ; CHECK-NEXT: // .b8 12 // DW_FORM_flag
; CHECK-NEXT: .b8 0 // EOM(1) ; CHECK-NEXT: // .b8 0 // EOM(1)
; CHECK-NEXT: .b8 0 // EOM(2) ; CHECK-NEXT: // .b8 0 // EOM(2)
; CHECK-NEXT: .b8 6 // Abbreviation Code ; CHECK-NEXT: // .b8 6 // Abbreviation Code
; CHECK-NEXT: .b8 5 // DW_TAG_formal_parameter ; CHECK-NEXT: // .b8 5 // DW_TAG_formal_parameter
; CHECK-NEXT: .b8 0 // DW_CHILDREN_no ; CHECK-NEXT: // .b8 0 // DW_CHILDREN_no
; CHECK-NEXT: .b8 3 // DW_AT_name ; CHECK-NEXT: // .b8 3 // DW_AT_name
; CHECK-NEXT: .b8 8 // DW_FORM_string ; CHECK-NEXT: // .b8 8 // DW_FORM_string
; CHECK-NEXT: .b8 58 // DW_AT_decl_file ; CHECK-NEXT: // .b8 58 // DW_AT_decl_file
; CHECK-NEXT: .b8 11 // DW_FORM_data1 ; CHECK-NEXT: // .b8 11 // DW_FORM_data1
; CHECK-NEXT: .b8 59 // DW_AT_decl_line ; CHECK-NEXT: // .b8 59 // DW_AT_decl_line
; CHECK-NEXT: .b8 11 // DW_FORM_data1 ; CHECK-NEXT: // .b8 11 // DW_FORM_data1
; CHECK-NEXT: .b8 73 // DW_AT_type ; CHECK-NEXT: // .b8 73 // DW_AT_type
; CHECK-NEXT: .b8 19 // DW_FORM_ref4 ; CHECK-NEXT: // .b8 19 // DW_FORM_ref4
; CHECK-NEXT: .b8 0 // EOM(1) ; CHECK-NEXT: // .b8 0 // EOM(1)
; CHECK-NEXT: .b8 0 // EOM(2) ; CHECK-NEXT: // .b8 0 // EOM(2)
; CHECK-NEXT: .b8 7 // Abbreviation Code ; CHECK-NEXT: // .b8 7 // Abbreviation Code
; CHECK-NEXT: .b8 36 // DW_TAG_base_type ; CHECK-NEXT: // .b8 36 // DW_TAG_base_type
; CHECK-NEXT: .b8 0 // DW_CHILDREN_no ; CHECK-NEXT: // .b8 0 // DW_CHILDREN_no
; CHECK-NEXT: .b8 3 // DW_AT_name ; CHECK-NEXT: // .b8 3 // DW_AT_name
; CHECK-NEXT: .b8 8 // DW_FORM_string ; CHECK-NEXT: // .b8 8 // DW_FORM_string
; CHECK-NEXT: .b8 62 // DW_AT_encoding ; CHECK-NEXT: // .b8 62 // DW_AT_encoding
; CHECK-NEXT: .b8 11 // DW_FORM_data1 ; CHECK-NEXT: // .b8 11 // DW_FORM_data1
; CHECK-NEXT: .b8 11 // DW_AT_byte_size ; CHECK-NEXT: // .b8 11 // DW_AT_byte_size
; CHECK-NEXT: .b8 11 // DW_FORM_data1 ; CHECK-NEXT: // .b8 11 // DW_FORM_data1
; CHECK-NEXT: .b8 0 // EOM(1) ; CHECK-NEXT: // .b8 0 // EOM(1)
; CHECK-NEXT: .b8 0 // EOM(2) ; CHECK-NEXT: // .b8 0 // EOM(2)
; CHECK-NEXT: .b8 0 // EOM(3) ; CHECK-NEXT: // .b8 0 // EOM(3)
; CHECK-NEXT: } ; CHECK-NEXT: // }
; CHECK-NEXT: .section .debug_info ; CHECK-NEXT: // .section .debug_info
; CHECK-NEXT: { ; CHECK-NEXT: // {
; CHECK-NEXT: .b32 150 // Length of Unit ; CHECK-NEXT: // .b32 150 // Length of Unit
; CHECK-NEXT: .b8 2 // DWARF version number ; CHECK-NEXT: // .b8 2 // DWARF version number
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b32 .debug_abbrev // Offset Into Abbrev. Section ; CHECK-NEXT: // .b32 .debug_abbrev // Offset Into Abbrev. Section
; CHECK-NEXT: .b8 8 // Address Size (in bytes) ; CHECK-NEXT: // .b8 8 // Address Size (in bytes)
; CHECK-NEXT: .b8 1 // Abbrev [1] 0xb:0x8f DW_TAG_compile_unit ; 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 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 0
; CHECK-NEXT: .b8 4 // DW_AT_language ; CHECK-NEXT: // .b8 4 // DW_AT_language
; CHECK-NEXT: .b8 0 ; 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 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: // .b8 0
; CHECK-NEXT: .b32 .debug_line // DW_AT_stmt_list ; 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 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: // .b8 0
; CHECK-NEXT: .b64 Lfunc_begin1 // DW_AT_low_pc ; CHECK-NEXT: // .b64 Lfunc_begin1 // DW_AT_low_pc
; CHECK-NEXT: .b64 Lfunc_end1 // DW_AT_high_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 2 // Abbrev [2] 0x64:0x4 DW_TAG_structure_type
; CHECK-NEXT: .b8 65 // DW_AT_name ; CHECK-NEXT: // .b8 65 // DW_AT_name
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b8 1 // DW_AT_declaration ; CHECK-NEXT: // .b8 1 // DW_AT_declaration
; CHECK-NEXT: .b8 3 // Abbrev [3] 0x68:0x31 DW_TAG_subprogram ; CHECK-NEXT: // .b8 3 // Abbrev [3] 0x68:0x31 DW_TAG_subprogram
; CHECK-NEXT: .b64 Lfunc_begin1 // DW_AT_low_pc ; CHECK-NEXT: // .b64 Lfunc_begin1 // DW_AT_low_pc
; CHECK-NEXT: .b64 Lfunc_end1 // DW_AT_high_pc ; CHECK-NEXT: // .b64 Lfunc_end1 // DW_AT_high_pc
; CHECK-NEXT: .b8 1 // DW_AT_frame_base ; CHECK-NEXT: // .b8 1 // DW_AT_frame_base
; CHECK-NEXT: .b8 156 ; CHECK-NEXT: // .b8 156
; CHECK-NEXT: .b8 95,90,51,98,97,122,49,65 // DW_AT_MIPS_linkage_name ; CHECK-NEXT: // .b8 95,90,51,98,97,122,49,65 // DW_AT_MIPS_linkage_name
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b8 98,97,122 // DW_AT_name ; CHECK-NEXT: // .b8 98,97,122 // DW_AT_name
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b8 2 // DW_AT_decl_file ; CHECK-NEXT: // .b8 2 // DW_AT_decl_file
; CHECK-NEXT: .b8 6 // DW_AT_decl_line ; CHECK-NEXT: // .b8 6 // DW_AT_decl_line
; CHECK-NEXT: .b8 1 // DW_AT_external ; CHECK-NEXT: // .b8 1 // DW_AT_external
; CHECK-NEXT: .b8 4 // Abbrev [4] 0x8b:0xd DW_TAG_variable ; CHECK-NEXT: // .b8 4 // Abbrev [4] 0x8b:0xd DW_TAG_variable
; CHECK-NEXT: .b8 122 // DW_AT_name ; CHECK-NEXT: // .b8 122 // DW_AT_name
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b8 2 // DW_AT_decl_file ; CHECK-NEXT: // .b8 2 // DW_AT_decl_file
; CHECK-NEXT: .b8 7 // DW_AT_decl_line ; CHECK-NEXT: // .b8 7 // DW_AT_decl_line
; CHECK-NEXT: .b64 .debug_info+302 // DW_AT_type ; 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: .b8 0 // End Of Children Mark ; CHECK-NEXT: // .b8 0 // End Of Children Mark
; CHECK-NEXT: .b32 152 // Length of Unit ; CHECK-NEXT: // .b32 152 // Length of Unit
; CHECK-NEXT: .b8 2 // DWARF version number ; CHECK-NEXT: // .b8 2 // DWARF version number
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b32 .debug_abbrev // Offset Into Abbrev. Section ; CHECK-NEXT: // .b32 .debug_abbrev // Offset Into Abbrev. Section
; CHECK-NEXT: .b8 8 // Address Size (in bytes) ; CHECK-NEXT: // .b8 8 // Address Size (in bytes)
; CHECK-NEXT: .b8 1 // Abbrev [1] 0xb:0x91 DW_TAG_compile_unit ; 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 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 0
; CHECK-NEXT: .b8 4 // DW_AT_language ; CHECK-NEXT: // .b8 4 // DW_AT_language
; CHECK-NEXT: .b8 0 ; 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 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: // .b8 0
; CHECK-NEXT: .b32 .debug_line // DW_AT_stmt_list ; 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 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: // .b8 0
; CHECK-NEXT: .b64 Lfunc_begin0 // DW_AT_low_pc ; CHECK-NEXT: // .b64 Lfunc_begin0 // DW_AT_low_pc
; CHECK-NEXT: .b64 Lfunc_end0 // DW_AT_high_pc ; CHECK-NEXT: // .b64 Lfunc_end0 // DW_AT_high_pc
; CHECK-NEXT: .b8 5 // Abbrev [5] 0x64:0x30 DW_TAG_subprogram ; CHECK-NEXT: // .b8 5 // Abbrev [5] 0x64:0x30 DW_TAG_subprogram
; CHECK-NEXT: .b64 Lfunc_begin0 // DW_AT_low_pc ; CHECK-NEXT: // .b64 Lfunc_begin0 // DW_AT_low_pc
; CHECK-NEXT: .b64 Lfunc_end0 // DW_AT_high_pc ; CHECK-NEXT: // .b64 Lfunc_end0 // DW_AT_high_pc
; CHECK-NEXT: .b8 1 // DW_AT_frame_base ; CHECK-NEXT: // .b8 1 // DW_AT_frame_base
; CHECK-NEXT: .b8 156 ; CHECK-NEXT: // .b8 156
; CHECK-NEXT: .b8 95,90,51,98,97,114,105 // DW_AT_MIPS_linkage_name ; CHECK-NEXT: // .b8 95,90,51,98,97,114,105 // DW_AT_MIPS_linkage_name
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b8 98,97,114 // DW_AT_name ; CHECK-NEXT: // .b8 98,97,114 // DW_AT_name
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b8 1 // DW_AT_decl_file ; CHECK-NEXT: // .b8 1 // DW_AT_decl_file
; CHECK-NEXT: .b8 1 // DW_AT_decl_line ; CHECK-NEXT: // .b8 1 // DW_AT_decl_line
; CHECK-NEXT: .b32 148 // DW_AT_type ; CHECK-NEXT: // .b32 148 // DW_AT_type
; CHECK-NEXT: .b8 1 // DW_AT_external ; CHECK-NEXT: // .b8 1 // DW_AT_external
; CHECK-NEXT: .b8 6 // Abbrev [6] 0x8a:0x9 DW_TAG_formal_parameter ; CHECK-NEXT: // .b8 6 // Abbrev [6] 0x8a:0x9 DW_TAG_formal_parameter
; CHECK-NEXT: .b8 98 // DW_AT_name ; CHECK-NEXT: // .b8 98 // DW_AT_name
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b8 1 // DW_AT_decl_file ; CHECK-NEXT: // .b8 1 // DW_AT_decl_file
; CHECK-NEXT: .b8 1 // DW_AT_decl_line ; CHECK-NEXT: // .b8 1 // DW_AT_decl_line
; CHECK-NEXT: .b32 148 // DW_AT_type ; CHECK-NEXT: // .b32 148 // DW_AT_type
; CHECK-NEXT: .b8 0 // End Of Children Mark ; CHECK-NEXT: // .b8 0 // End Of Children Mark
; CHECK-NEXT: .b8 7 // Abbrev [7] 0x94:0x7 DW_TAG_base_type ; CHECK-NEXT: // .b8 7 // Abbrev [7] 0x94:0x7 DW_TAG_base_type
; CHECK-NEXT: .b8 105,110,116 // DW_AT_name ; CHECK-NEXT: // .b8 105,110,116 // DW_AT_name
; CHECK-NEXT: .b8 0 ; CHECK-NEXT: // .b8 0
; CHECK-NEXT: .b8 5 // DW_AT_encoding ; CHECK-NEXT: // .b8 5 // DW_AT_encoding
; CHECK-NEXT: .b8 4 // DW_AT_byte_size ; CHECK-NEXT: // .b8 4 // DW_AT_byte_size
; CHECK-NEXT: .b8 0 // End Of Children Mark ; CHECK-NEXT: // .b8 0 // End Of Children Mark
; CHECK-NEXT: } ; CHECK-NEXT: // }
; CHECK-NEXT: .section .debug_macinfo ; CHECK-NEXT: // .section .debug_macinfo
; CHECK-NEXT: { ; CHECK-NEXT: // {
; CHECK-NEXT: .b8 0 // End Of Macro List Mark ; CHECK-NEXT: // .b8 0 // End Of Macro List Mark
; CHECK: } ; CHECK: // }