brintos

brintos / llvm-project-archived public Read only

0
0
Text · 13.1 KiB · fa42481 Raw
250 lines · plain
1; RUN: llc < %s -mtriple=nvptx64-nvidia-cuda | FileCheck %s2; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64-nvidia-cuda | %ptxas-verify %}3 4; CHECK: .target sm_30, debug5 6; CHECK: .visible .func use_dbg_declare()7; CHECK: .local .align 8 .b8 __local_depot0[8];8; CHECK: mov.b64 %SPL, __local_depot0;9; CHECK: .loc 1 5 3                   // t.c:5:310; CHECK: { // callseq 0, 011; CHECK: .param .b64 param0;12; CHECK: add.u64 %rd1, %SP, 0;13; CHECK: st.param.b64 [param0], %rd1;14; CHECK: call.uni escape_foo, (param0);15; CHECK: } // callseq 016; CHECK: .loc 1 6 1                   // t.c:6:117; CHECK: ret;18; CHECK: }19 20; CHECK: .file 1 "test{{(/|\\\\)}}t.c"21 22; CHECK: 	.section	.debug_abbrev23; CHECK-NEXT: 	{24; CHECK-NEXT: .b8 1                                   // Abbreviation Code25; CHECK-NEXT: .b8 17                                  // DW_TAG_compile_unit26; CHECK-NEXT: .b8 1                                   // DW_CHILDREN_yes27; CHECK-NEXT: .b8 37                                  // DW_AT_producer28; CHECK-NEXT: .b8 8                                   // DW_FORM_string29; CHECK-NEXT: .b8 19                                  // DW_AT_language30; CHECK-NEXT: .b8 5                                   // DW_FORM_data231; CHECK-NEXT: .b8 3                                   // DW_AT_name32; CHECK-NEXT: .b8 8                                   // DW_FORM_string33; CHECK-NEXT: .b8 16                                  // DW_AT_stmt_list34; CHECK-NEXT: .b8 6                                   // DW_FORM_data435; CHECK-NEXT: .b8 27                                  // DW_AT_comp_dir36; CHECK-NEXT: .b8 8                                   // DW_FORM_string37; CHECK-NEXT: .b8 0                                   // EOM(1)38; CHECK-NEXT: .b8 0                                   // EOM(2)39; CHECK-NEXT: .b8 2                                   // Abbreviation Code40; CHECK-NEXT: .b8 46                                  // DW_TAG_subprogram41; CHECK-NEXT: .b8 1                                   // DW_CHILDREN_yes42; CHECK-NEXT: .b8 17                                  // DW_AT_low_pc43; CHECK-NEXT: .b8 1                                   // DW_FORM_addr44; CHECK-NEXT: .b8 18                                  // DW_AT_high_pc45; CHECK-NEXT: .b8 1                                   // DW_FORM_addr46; CHECK-NEXT: .b8 64                                  // DW_AT_frame_base47; CHECK-NEXT: .b8 10                                  // DW_FORM_block148; CHECK-NEXT: .b8 3                                   // DW_AT_name49; CHECK-NEXT: .b8 8                                   // DW_FORM_string50; CHECK-NEXT: .b8 58                                  // DW_AT_decl_file51; CHECK-NEXT: .b8 11                                  // DW_FORM_data152; CHECK-NEXT: .b8 59                                  // DW_AT_decl_line53; CHECK-NEXT: .b8 11                                  // DW_FORM_data154; CHECK-NEXT: .b8 39                                  // DW_AT_prototyped55; CHECK-NEXT: .b8 12                                  // DW_FORM_flag56; CHECK-NEXT: .b8 63                                  // DW_AT_external57; CHECK-NEXT: .b8 12                                  // DW_FORM_flag58; CHECK-NEXT: .b8 0                                   // EOM(1)59; CHECK-NEXT: .b8 0                                   // EOM(2)60; CHECK-NEXT: .b8 3                                   // Abbreviation Code61; CHECK-NEXT: .b8 52                                  // DW_TAG_variable62; CHECK-NEXT: .b8 0                                   // DW_CHILDREN_no63; CHECK-NEXT: .b8 51                                  // DW_AT_address_class64; CHECK-NEXT: .b8 11                                  // DW_FORM_data165; CHECK-NEXT: .b8 2                                   // DW_AT_location66; CHECK-NEXT: .b8 10                                  // DW_FORM_block167; CHECK-NEXT: .b8 3                                   // DW_AT_name68; CHECK-NEXT: .b8 8                                   // DW_FORM_string69; CHECK-NEXT: .b8 58                                  // DW_AT_decl_file70; CHECK-NEXT: .b8 11                                  // DW_FORM_data171; CHECK-NEXT: .b8 59                                  // DW_AT_decl_line72; CHECK-NEXT: .b8 11                                  // DW_FORM_data173; CHECK-NEXT: .b8 73                                  // DW_AT_type74; CHECK-NEXT: .b8 19                                  // DW_FORM_ref475; CHECK-NEXT: .b8 0                                   // EOM(1)76; CHECK-NEXT: .b8 0                                   // EOM(2)77; CHECK-NEXT: .b8 4                                   // Abbreviation Code78; CHECK-NEXT: .b8 19                                  // DW_TAG_structure_type79; CHECK-NEXT: .b8 1                                   // DW_CHILDREN_yes80; CHECK-NEXT: .b8 3                                   // DW_AT_name81; CHECK-NEXT: .b8 8                                   // DW_FORM_string82; CHECK-NEXT: .b8 11                                  // DW_AT_byte_size83; CHECK-NEXT: .b8 11                                  // DW_FORM_data184; CHECK-NEXT: .b8 58                                  // DW_AT_decl_file85; CHECK-NEXT: .b8 11                                  // DW_FORM_data186; CHECK-NEXT: .b8 59                                  // DW_AT_decl_line87; CHECK-NEXT: .b8 11                                  // DW_FORM_data188; CHECK-NEXT: .b8 0                                   // EOM(1)89; CHECK-NEXT: .b8 0                                   // EOM(2)90; CHECK-NEXT: .b8 5                                   // Abbreviation Code91; CHECK-NEXT: .b8 13                                  // DW_TAG_member92; CHECK-NEXT: .b8 0                                   // DW_CHILDREN_no93; CHECK-NEXT: .b8 3                                   // DW_AT_name94; CHECK-NEXT: .b8 8                                   // DW_FORM_string95; CHECK-NEXT: .b8 73                                  // DW_AT_type96; CHECK-NEXT: .b8 19                                  // DW_FORM_ref497; CHECK-NEXT: .b8 58                                  // DW_AT_decl_file98; CHECK-NEXT: .b8 11                                  // DW_FORM_data199; CHECK-NEXT: .b8 59                                  // DW_AT_decl_line100; CHECK-NEXT: .b8 11                                  // DW_FORM_data1101; CHECK-NEXT: .b8 56                                  // DW_AT_data_member_location102; CHECK-NEXT: .b8 10                                  // DW_FORM_block1103; CHECK-NEXT: .b8 0                                   // EOM(1)104; CHECK-NEXT: .b8 0                                   // EOM(2)105; CHECK-NEXT: .b8 6                                   // Abbreviation Code106; CHECK-NEXT: .b8 36                                  // DW_TAG_base_type107; CHECK-NEXT: .b8 0                                   // DW_CHILDREN_no108; CHECK-NEXT: .b8 3                                   // DW_AT_name109; CHECK-NEXT: .b8 8                                   // DW_FORM_string110; CHECK-NEXT: .b8 62                                  // DW_AT_encoding111; CHECK-NEXT: .b8 11                                  // DW_FORM_data1112; CHECK-NEXT: .b8 11                                  // DW_AT_byte_size113; CHECK-NEXT: .b8 11                                  // DW_FORM_data1114; CHECK-NEXT: .b8 0                                   // EOM(1)115; CHECK-NEXT: .b8 0                                   // EOM(2)116; CHECK-NEXT: .b8 0                                   // EOM(3)117; CHECK-NEXT: 	}118; CHECK-NEXT: 	.section	.debug_info119; CHECK-NEXT: 	{120; CHECK-NEXT: .b32 118                                // Length of Unit121; CHECK-NEXT: .b8 2                                   // DWARF version number122; CHECK-NEXT: .b8 0123; CHECK-NEXT: .b32 .debug_abbrev                      // Offset Into Abbrev. Section124; CHECK-NEXT: .b8 8                                   // Address Size (in bytes)125; CHECK-NEXT: .b8 1                                   // Abbrev [1] 0xb:0x6f DW_TAG_compile_unit126; CHECK-NEXT: .b8 99                                  // DW_AT_producer127; CHECK-NEXT: .b8 108128; CHECK-NEXT: .b8 97129; CHECK-NEXT: .b8 110130; CHECK-NEXT: .b8 103131; CHECK-NEXT: .b8 0132; CHECK-NEXT: .b8 12                                  // DW_AT_language133; CHECK-NEXT: .b8 0134; CHECK-NEXT: .b8 116                                 // DW_AT_name135; CHECK-NEXT: .b8 46136; CHECK-NEXT: .b8 99137; CHECK-NEXT: .b8 0138; CHECK-NEXT: .b32 .debug_line                        // DW_AT_stmt_list139; CHECK-NEXT: .b8 116                                 // DW_AT_comp_dir140; CHECK-NEXT: .b8 101141; CHECK-NEXT: .b8 115142; CHECK-NEXT: .b8 116143; CHECK-NEXT: .b8 0144; CHECK-NEXT: .b8 2                                   // Abbrev [2] 0x21:0x3c DW_TAG_subprogram145; CHECK-NEXT: .b64 $L__func_begin0                    // DW_AT_low_pc146; CHECK-NEXT: .b64 $L__func_end0                      // DW_AT_high_pc147; CHECK-NEXT: .b8 1                                   // DW_AT_frame_base148; CHECK-NEXT: .b8 156149; CHECK-NEXT: .b8 117                                 // DW_AT_name150; CHECK-NEXT: .b8 115151; CHECK-NEXT: .b8 101152; CHECK-NEXT: .b8 95153; CHECK-NEXT: .b8 100154; CHECK-NEXT: .b8 98155; CHECK-NEXT: .b8 103156; CHECK-NEXT: .b8 95157; CHECK-NEXT: .b8 100158; CHECK-NEXT: .b8 101159; CHECK-NEXT: .b8 99160; CHECK-NEXT: .b8 108161; CHECK-NEXT: .b8 97162; CHECK-NEXT: .b8 114163; CHECK-NEXT: .b8 101164; CHECK-NEXT: .b8 0165; CHECK-NEXT: .b8 1                                   // DW_AT_decl_file166; CHECK-NEXT: .b8 3                                   // DW_AT_decl_line167; CHECK-NEXT: .b8 1                                   // DW_AT_prototyped168; CHECK-NEXT: .b8 1                                   // DW_AT_external169; CHECK-NEXT: .b8 3                                   // Abbrev [3] 0x48:0x14 DW_TAG_variable170; CHECK-NEXT: .b8 6                                   // DW_AT_address_class171; CHECK-NEXT: .b8 9                                   // DW_AT_location172; CHECK-NEXT: .b8 3173; CHECK-NEXT: .b64 __local_depot0174; CHECK-NEXT: .b8 111                                 // DW_AT_name175; CHECK-NEXT: .b8 0176; CHECK-NEXT: .b8 1                                   // DW_AT_decl_file177; CHECK-NEXT: .b8 4                                   // DW_AT_decl_line178; CHECK-NEXT: .b32 93                                 // DW_AT_type179; CHECK-NEXT: .b8 0                                   // End Of Children Mark180; CHECK-NEXT: .b8 4                                   // Abbrev [4] 0x5d:0x15 DW_TAG_structure_type181; CHECK-NEXT: .b8 70                                  // DW_AT_name182; CHECK-NEXT: .b8 111183; CHECK-NEXT: .b8 111184; CHECK-NEXT: .b8 0185; CHECK-NEXT: .b8 4                                   // DW_AT_byte_size186; CHECK-NEXT: .b8 1                                   // DW_AT_decl_file187; CHECK-NEXT: .b8 1                                   // DW_AT_decl_line188; CHECK-NEXT: .b8 5                                   // Abbrev [5] 0x65:0xc DW_TAG_member189; CHECK-NEXT: .b8 120                                 // DW_AT_name190; CHECK-NEXT: .b8 0191; CHECK-NEXT: .b32 114                                // DW_AT_type192; CHECK-NEXT: .b8 1                                   // DW_AT_decl_file193; CHECK-NEXT: .b8 1                                   // DW_AT_decl_line194; CHECK-NEXT: .b8 2                                   // DW_AT_data_member_location195; CHECK-NEXT: .b8 35196; CHECK-NEXT: .b8 0197; CHECK-NEXT: .b8 0                                   // End Of Children Mark198; CHECK-NEXT: .b8 6                                   // Abbrev [6] 0x72:0x7 DW_TAG_base_type199; CHECK-NEXT: .b8 105                                 // DW_AT_name200; CHECK-NEXT: .b8 110201; CHECK-NEXT: .b8 116202; CHECK-NEXT: .b8 0203; CHECK-NEXT: .b8 5                                   // DW_AT_encoding204; CHECK-NEXT: .b8 4                                   // DW_AT_byte_size205; CHECK-NEXT: .b8 0                                   // End Of Children Mark206; CHECK-NEXT: 	}207 208%struct.Foo = type { i32 }209 210; Function Attrs: noinline nounwind uwtable211define void @use_dbg_declare() #0 !dbg !7 {212entry:213  %o = alloca %struct.Foo, align 8214  call void @llvm.dbg.declare(metadata ptr %o, metadata !10, metadata !15), !dbg !16215  call void @escape_foo(ptr %o), !dbg !17216  ret void, !dbg !18217}218 219; Function Attrs: nounwind readnone speculatable220declare void @llvm.dbg.declare(metadata, metadata, metadata) #1221 222declare void @escape_foo(ptr)223 224attributes #0 = { noinline nounwind uwtable }225attributes #1 = { nounwind readnone speculatable }226 227!llvm.dbg.cu = !{!0}228!llvm.module.flags = !{!3, !4, !5}229!llvm.ident = !{!6}230 231!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, nameTableKind: None)232!1 = !DIFile(filename: "t.c", directory: "test")233!2 = !{}234!3 = !{i32 2, !"Dwarf Version", i32 2}235!4 = !{i32 2, !"Debug Info Version", i32 3}236!5 = !{i32 1, !"wchar_size", i32 4}237!6 = !{!"clang"}238!7 = distinct !DISubprogram(name: "use_dbg_declare", scope: !1, file: !1, line: 3, type: !8, isLocal: false, isDefinition: true, scopeLine: 3, flags: DIFlagPrototyped, isOptimized: false, unit: !0, retainedNodes: !2)239!8 = !DISubroutineType(types: !9)240!9 = !{null}241!10 = !DILocalVariable(name: "o", scope: !7, file: !1, line: 4, type: !11)242!11 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "Foo", file: !1, line: 1, size: 32, elements: !12)243!12 = !{!13}244!13 = !DIDerivedType(tag: DW_TAG_member, name: "x", scope: !11, file: !1, line: 1, baseType: !14, size: 32)245!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)246!15 = !DIExpression()247!16 = !DILocation(line: 4, column: 14, scope: !7)248!17 = !DILocation(line: 5, column: 3, scope: !7)249!18 = !DILocation(line: 6, column: 1, scope: !7)250