brintos

brintos / llvm-project-archived public Read only

0
0
Text · 18.3 KiB · 3bcc0f9 Raw
333 lines · plain
1 2; RUN: llc -debugger-tune=gdb -mcpu=ppc -mtriple powerpc-ibm-aix-xcoff < %s | \3; RUN:   FileCheck %s4 5source_filename = "2.c"6target datalayout = "E-m:a-p:32:32-i64:64-n32"7 8; Function Attrs: noinline nounwind optnone9define i32 @bar() #0 !dbg !8 {10entry:11  ret i32 1, !dbg !1312}13 14; Function Attrs: noinline nounwind optnone15define i32 @main() #0 section "explicit_main_sec" !dbg !14 {16entry:17  %retval = alloca i32, align 418  store i32 0, ptr %retval, align 419  %call = call i32 @bar(), !dbg !1520  ret i32 %call, !dbg !1621}22 23!llvm.dbg.cu = !{!0}24!llvm.module.flags = !{!3, !4, !5, !6}25!llvm.ident = !{!7}26 27!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 13.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, nameTableKind: None)28!1 = !DIFile(filename: "2.c", directory: "debug")29!2 = !{}30!3 = !{i32 7, !"Dwarf Version", i32 3}31!4 = !{i32 2, !"Debug Info Version", i32 3}32!5 = !{i32 1, !"wchar_size", i32 2}33!6 = !{i32 7, !"PIC Level", i32 2}34!7 = !{!"clang version 13.0.0"}35!8 = distinct !DISubprogram(name: "bar", scope: !9, file: !9, line: 1, type: !10, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !2)36!9 = !DIFile(filename: "2.c", directory: "debug")37!10 = !DISubroutineType(types: !11)38!11 = !{!12}39!12 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)40!13 = !DILocation(line: 1, column: 12, scope: !8)41!14 = distinct !DISubprogram(name: "main", scope: !9, file: !9, line: 2, type: !10, scopeLine: 2, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !2)42!15 = !DILocation(line: 3, column: 10, scope: !14)43!16 = !DILocation(line: 3, column: 3, scope: !14)44 45; CHECK:               .file   "2.c"46; CHECK-NEXT:          .csect ..text..[PR],547; CHECK-NEXT:          .rename ..text..[PR],""48; CHECK-NEXT:          .machine "COM"49; CHECK-NEXT:          .globl  bar[DS]                         # -- Begin function bar50; CHECK-NEXT:          .globl  .bar51; CHECK-NEXT:          .align  252; CHECK-NEXT:          .csect bar[DS],253; CHECK-NEXT:          .vbyte  4, .bar                         # @bar54; CHECK-NEXT:          .vbyte  4, TOC[TC0]55; CHECK-NEXT:          .vbyte  4, 056; CHECK-NEXT:          .csect ..text..[PR],557; CHECK-NEXT:  .bar:58; CHECK-NEXT:  L..func_begin0:59; CHECK-NEXT:  # %bb.0:                                # %entry60; CHECK-NEXT:  L..tmp0:61; CHECK-NEXT:          li 3, 162; CHECK-NEXT:          blr63; CHECK-NEXT:  L..tmp1:64; CHECK-NEXT:  L..bar0:65; CHECK-NEXT:          .vbyte  4, 0x00000000                   # Traceback table begin66; CHECK-NEXT:          .byte   0x00                            # Version = 067; CHECK-NEXT:          .byte   0x09                            # Language = CPlusPlus68; CHECK-NEXT:          .byte   0x20                            # -IsGlobalLinkage, -IsOutOfLineEpilogOrPrologue69; CHECK-NEXT:                                          # +HasTraceBackTableOffset, -IsInternalProcedure70; CHECK-NEXT:                                          # -HasControlledStorage, -IsTOCless71; CHECK-NEXT:                                          # -IsFloatingPointPresent72; CHECK-NEXT:                                          # -IsFloatingPointOperationLogOrAbortEnabled73; CHECK-NEXT:          .byte   0x40                            # -IsInterruptHandler, +IsFunctionNamePresent, -IsAllocaUsed74; CHECK-NEXT:                                          # OnConditionDirective = 0, -IsCRSaved, -IsLRSaved75; CHECK-NEXT:          .byte   0x00                            # -IsBackChainStored, -IsFixup, NumOfFPRsSaved = 076; CHECK-NEXT:          .byte   0x00                            # -HasExtensionTable, -HasVectorInfo, NumOfGPRsSaved = 077; CHECK-NEXT:          .byte   0x00                            # NumberOfFixedParms = 078; CHECK-NEXT:          .byte   0x01                            # NumberOfFPParms = 0, +HasParmsOnStack79; CHECK-NEXT:          .vbyte  4, L..bar0-.bar                 # Function size80; CHECK-NEXT:          .vbyte  2, 0x0003                       # Function name len = 381; CHECK-NEXT:          .byte   "bar"                           # Function Name82; CHECK-NEXT:  L..func_end0:83; CHECK-NEXT:                                          # -- End function84; CHECK-NEXT:          .csect explicit_main_sec[PR],585; CHECK-NEXT:          .globl  main[DS]                        # -- Begin function main86; CHECK-NEXT:          .globl  .main87; CHECK-NEXT:          .align  288; CHECK-NEXT:          .csect main[DS],289; CHECK-NEXT:          .vbyte  4, .main                        # @main90; CHECK-NEXT:          .vbyte  4, TOC[TC0]91; CHECK-NEXT:          .vbyte  4, 092; CHECK-NEXT:          .csect explicit_main_sec[PR],593; CHECK-NEXT:  .main:94; CHECK-NEXT:  L..func_begin1:95; CHECK-NEXT:  # %bb.0:                                # %entry96; CHECK-NEXT:  L..tmp2:97; CHECK-NEXT:          mflr 098; CHECK-NEXT:          stwu 1, -64(1)99; CHECK-NEXT:          li 3, 0100; CHECK-NEXT:          stw 0, 72(1)101; CHECK-NEXT:          stw 3, 60(1)102; CHECK-NEXT:  L..tmp3:103; CHECK-NEXT:  L..tmp4:104; CHECK-NEXT:          bl .bar105; CHECK-NEXT:          nop106; CHECK-NEXT:  L..tmp5:107; CHECK-NEXT:          addi 1, 1, 64108; CHECK-NEXT:          lwz 0, 8(1)109; CHECK-NEXT:          mtlr 0110; CHECK-NEXT:          blr111; CHECK-NEXT:  L..tmp6:112; CHECK-NEXT:  L..main0:113; CHECK-NEXT:          .vbyte  4, 0x00000000                   # Traceback table begin114; CHECK-NEXT:          .byte   0x00                            # Version = 0115; CHECK-NEXT:          .byte   0x09                            # Language = CPlusPlus116; CHECK-NEXT:          .byte   0x20                            # -IsGlobalLinkage, -IsOutOfLineEpilogOrPrologue117; CHECK-NEXT:                                          # +HasTraceBackTableOffset, -IsInternalProcedure118; CHECK-NEXT:                                          # -HasControlledStorage, -IsTOCless119; CHECK-NEXT:                                          # -IsFloatingPointPresent120; CHECK-NEXT:                                          # -IsFloatingPointOperationLogOrAbortEnabled121; CHECK-NEXT:          .byte   0x41                            # -IsInterruptHandler, +IsFunctionNamePresent, -IsAllocaUsed122; CHECK-NEXT:                                          # OnConditionDirective = 0, -IsCRSaved, +IsLRSaved123; CHECK-NEXT:          .byte   0x80                            # +IsBackChainStored, -IsFixup, NumOfFPRsSaved = 0124; CHECK-NEXT:          .byte   0x00                            # -HasExtensionTable, -HasVectorInfo, NumOfGPRsSaved = 0125; CHECK-NEXT:          .byte   0x00                            # NumberOfFixedParms = 0126; CHECK-NEXT:          .byte   0x01                            # NumberOfFPParms = 0, +HasParmsOnStack127; CHECK-NEXT:          .vbyte  4, L..main0-.main               # Function size128; CHECK-NEXT:          .vbyte  2, 0x0004                       # Function name len = 4129; CHECK-NEXT:          .byte   "main"                          # Function Name130; CHECK-NEXT:  L..func_end1:131; CHECK-NEXT:                                          # -- End function132; CHECK-NEXT:  L..sec_end0:133; CHECK:               .dwsect 0x60000134; CHECK-NEXT:  .dwabrev:135; CHECK-NEXT:          .byte   1                               # Abbreviation Code136; CHECK-NEXT:          .byte   17                              # DW_TAG_compile_unit137; CHECK-NEXT:          .byte   1                               # DW_CHILDREN_yes138; CHECK-NEXT:          .byte   37                              # DW_AT_producer139; CHECK-NEXT:          .byte   14                              # DW_FORM_strp140; CHECK-NEXT:          .byte   19                              # DW_AT_language141; CHECK-NEXT:          .byte   5                               # DW_FORM_data2142; CHECK-NEXT:          .byte   3                               # DW_AT_name143; CHECK-NEXT:          .byte   14                              # DW_FORM_strp144; CHECK-NEXT:          .byte   16                              # DW_AT_stmt_list145; CHECK-NEXT:          .byte   6                               # DW_FORM_data4146; CHECK-NEXT:          .byte   27                              # DW_AT_comp_dir147; CHECK-NEXT:          .byte   14                              # DW_FORM_strp148; CHECK-NEXT:          .byte   17                              # DW_AT_low_pc149; CHECK-NEXT:          .byte   1                               # DW_FORM_addr150; CHECK-NEXT:          .byte   85                              # DW_AT_ranges151; CHECK-NEXT:          .byte   6                               # DW_FORM_data4152; CHECK-NEXT:          .byte   0                               # EOM(1)153; CHECK-NEXT:          .byte   0                               # EOM(2)154; CHECK-NEXT:          .byte   2                               # Abbreviation Code155; CHECK-NEXT:          .byte   46                              # DW_TAG_subprogram156; CHECK-NEXT:          .byte   0                               # DW_CHILDREN_no157; CHECK-NEXT:          .byte   17                              # DW_AT_low_pc158; CHECK-NEXT:          .byte   1                               # DW_FORM_addr159; CHECK-NEXT:          .byte   18                              # DW_AT_high_pc160; CHECK-NEXT:          .byte   1                               # DW_FORM_addr161; CHECK-NEXT:          .byte   64                              # DW_AT_frame_base162; CHECK-NEXT:          .byte   10                              # DW_FORM_block1163; CHECK-NEXT:          .byte   3                               # DW_AT_name164; CHECK-NEXT:          .byte   14                              # DW_FORM_strp165; CHECK-NEXT:          .byte   58                              # DW_AT_decl_file166; CHECK-NEXT:          .byte   11                              # DW_FORM_data1167; CHECK-NEXT:          .byte   59                              # DW_AT_decl_line168; CHECK-NEXT:          .byte   11                              # DW_FORM_data1169; CHECK-NEXT:          .byte   73                              # DW_AT_type170; CHECK-NEXT:          .byte   19                              # DW_FORM_ref4171; CHECK-NEXT:          .byte   63                              # DW_AT_external172; CHECK-NEXT:          .byte   12                              # DW_FORM_flag173; CHECK-NEXT:          .byte   0                               # EOM(1)174; CHECK-NEXT:          .byte   0                               # EOM(2)175; CHECK-NEXT:          .byte   3                               # Abbreviation Code176; CHECK-NEXT:          .byte   36                              # DW_TAG_base_type177; CHECK-NEXT:          .byte   0                               # DW_CHILDREN_no178; CHECK-NEXT:          .byte   3                               # DW_AT_name179; CHECK-NEXT:          .byte   14                              # DW_FORM_strp180; CHECK-NEXT:          .byte   62                              # DW_AT_encoding181; CHECK-NEXT:          .byte   11                              # DW_FORM_data1182; CHECK-NEXT:          .byte   11                              # DW_AT_byte_size183; CHECK-NEXT:          .byte   11                              # DW_FORM_data1184; CHECK-NEXT:          .byte   0                               # EOM(1)185; CHECK-NEXT:          .byte   0                               # EOM(2)186; CHECK-NEXT:          .byte   0                               # EOM(3)187; CHECK:               .dwsect 0x10000188; CHECK-NEXT:  .dwinfo:189; CHECK-NEXT:  L..cu_begin0:190; CHECK-NEXT:          .vbyte  2, 3                            # DWARF version number191; CHECK-NEXT:          .vbyte  4, .dwabrev                  # Offset Into Abbrev. Section192; CHECK-NEXT:          .byte   4                               # Address Size (in bytes)193; CHECK-NEXT:          .byte   1                               # Abbrev [1] 0xb:0x4f DW_TAG_compile_unit194; CHECK-NEXT:          .vbyte  4, L..info_string0              # DW_AT_producer195; CHECK-NEXT:          .vbyte  2, 12                           # DW_AT_language196; CHECK-NEXT:          .vbyte  4, L..info_string1              # DW_AT_name197; CHECK-NEXT:          .vbyte  4, L..line_table_start0         # DW_AT_stmt_list198; CHECK-NEXT:          .vbyte  4, L..info_string2              # DW_AT_comp_dir199; CHECK-NEXT:          .vbyte  4, 0                            # DW_AT_low_pc200; CHECK-NEXT:          .vbyte  4, L..debug_ranges0             # DW_AT_ranges201; CHECK-NEXT:          .byte   2                               # Abbrev [2] 0x26:0x16 DW_TAG_subprogram202; CHECK-NEXT:          .vbyte  4, L..func_begin0               # DW_AT_low_pc203; CHECK-NEXT:          .vbyte  4, L..func_end0                 # DW_AT_high_pc204; CHECK-NEXT:          .byte   1                               # DW_AT_frame_base205; CHECK-NEXT:          .byte   81206; CHECK-NEXT:          .vbyte  4, L..info_string3              # DW_AT_name207; CHECK-NEXT:          .byte   1                               # DW_AT_decl_file208; CHECK-NEXT:          .byte   1                               # DW_AT_decl_line209; CHECK-NEXT:          .vbyte  4, 82                           # DW_AT_type210; CHECK-NEXT:          .byte   1                               # DW_AT_external211; CHECK-NEXT:          .byte   2                               # Abbrev [2] 0x3c:0x16 DW_TAG_subprogram212; CHECK-NEXT:          .vbyte  4, L..func_begin1               # DW_AT_low_pc213; CHECK-NEXT:          .vbyte  4, L..func_end1                 # DW_AT_high_pc214; CHECK-NEXT:          .byte   1                               # DW_AT_frame_base215; CHECK-NEXT:          .byte   81216; CHECK-NEXT:          .vbyte  4, L..info_string5              # DW_AT_name217; CHECK-NEXT:          .byte   1                               # DW_AT_decl_file218; CHECK-NEXT:          .byte   2                               # DW_AT_decl_line219; CHECK-NEXT:          .vbyte  4, 82                           # DW_AT_type220; CHECK-NEXT:          .byte   1                               # DW_AT_external221; CHECK-NEXT:          .byte   3                               # Abbrev [3] 0x52:0x7 DW_TAG_base_type222; CHECK-NEXT:          .vbyte  4, L..info_string4              # DW_AT_name223; CHECK-NEXT:          .byte   5                               # DW_AT_encoding224; CHECK-NEXT:          .byte   4                               # DW_AT_byte_size225; CHECK-NEXT:          .byte   0                               # End Of Children Mark226; CHECK-NEXT:  L..debug_info_end0:227; CHECK:               .dwsect 0x80000228; CHECK-NEXT:  .dwrnges:229; CHECK-NEXT:  L..debug_ranges0:230; CHECK-NEXT:          .vbyte  4, L..func_begin0231; CHECK-NEXT:          .vbyte  4, L..func_end0232; CHECK-NEXT:          .vbyte  4, L..func_begin1233; CHECK-NEXT:          .vbyte  4, L..func_end1234; CHECK-NEXT:          .vbyte  4, 0235; CHECK-NEXT:          .vbyte  4, 0236; CHECK:               .dwsect 0x70000237; CHECK-NEXT:  .dwstr:238; CHECK-NEXT:  L..info_string0:239; CHECK-NEXT:  	.string	"clang version 13.0.0"          # string offset=0240; CHECK-NEXT:  L..info_string1:241; CHECK-NEXT:  	.string	"2.c"                           # string offset=21242; CHECK-NEXT:  L..info_string2:243; CHECK-NEXT:  	.string	"debug"                         # string offset=25244; CHECK-NEXT:  L..info_string3:245; CHECK-NEXT:  	.string	"bar"                           # string offset=31246; CHECK-NEXT:  L..info_string4:247; CHECK-NEXT:  	.string	"int"                           # string offset=35248; CHECK-NEXT:  L..info_string5:249; CHECK-NEXT:  	.string	"main"                          # string offset=39250; CHECK-NEXT:          .toc251; CHECK:               .dwsect 0x20000252; CHECK-NEXT:  .dwline:253; CHECK-NEXT:  L..debug_line_0:254; CHECK-NEXT:  .set L..line_table_start0, L..debug_line_0-4255; CHECK-NEXT:          .vbyte  2, 3256; CHECK-NEXT:          .vbyte  4, L..prologue_end0-L..prologue_start0257; CHECK-NEXT:  L..prologue_start0:258; CHECK-NEXT:          .byte   4259; CHECK-NEXT:          .byte   1260; CHECK-NEXT:          .byte   -5261; CHECK-NEXT:          .byte   14262; CHECK-NEXT:          .byte   13263; CHECK-NEXT:          .byte   0264; CHECK-NEXT:          .byte   1265; CHECK-NEXT:          .byte   1266; CHECK-NEXT:          .byte   1267; CHECK-NEXT:          .byte   1268; CHECK-NEXT:          .byte   0269; CHECK-NEXT:          .byte   0270; CHECK-NEXT:          .byte   0271; CHECK-NEXT:          .byte   1272; CHECK-NEXT:          .byte   0273; CHECK-NEXT:          .byte   0274; CHECK-NEXT:          .byte   1275; CHECK-NEXT:          .byte   "debug"276; CHECK-NEXT:          .byte   0277; CHECK-NEXT:          .byte   0278; CHECK-NEXT:          .byte   "2.c"279; CHECK-NEXT:          .byte   0280; CHECK-NEXT:          .byte   1281; CHECK-NEXT:          .byte   0282; CHECK-NEXT:          .byte   0283; CHECK-NEXT:          .byte   0284; CHECK-NEXT:  L..prologue_end0:285; CHECK-NEXT:          .byte   5286; CHECK-NEXT:          .byte   12287; CHECK-NEXT:          .byte   10288; CHECK-NEXT:          .byte   0                               # Set address to L..tmp0289; CHECK-NEXT:          .byte   5290; CHECK-NEXT:          .byte   2291; CHECK-NEXT:          .vbyte  4, L..tmp0292; CHECK-NEXT:          .byte   1                               # Start sequence293; CHECK-NEXT:          .byte   0                               # Set address to L..func_end0294; CHECK-NEXT:          .byte   5295; CHECK-NEXT:          .byte   2296; CHECK-NEXT:          .vbyte  4, L..func_end0297; CHECK-NEXT:          .byte   0                               # End sequence298; CHECK-NEXT:          .byte   1299; CHECK-NEXT:          .byte   1300; CHECK-NEXT:          .byte   0                               # Set address to L..tmp2301; CHECK-NEXT:          .byte   5302; CHECK-NEXT:          .byte   2303; CHECK-NEXT:          .vbyte  4, L..tmp2304; CHECK-NEXT:          .byte   19                              # Start sequence305; CHECK-NEXT:          .byte   5306; CHECK-NEXT:          .byte   10307; CHECK-NEXT:          .byte   10308; CHECK-NEXT:          .byte   0                               # Set address to L..tmp4309; CHECK-NEXT:          .byte   5310; CHECK-NEXT:          .byte   2311; CHECK-NEXT:          .vbyte  4, L..tmp4312; CHECK-NEXT:          .byte   3                               # Advance line 1313; CHECK-NEXT:          .byte   1314; CHECK-NEXT:          .byte   1315; CHECK-NEXT:          .byte   5316; CHECK-NEXT:          .byte   3317; CHECK-NEXT:          .byte   6318; CHECK-NEXT:          .byte   0                               # Set address to L..tmp5319; CHECK-NEXT:          .byte   5320; CHECK-NEXT:          .byte   2321; CHECK-NEXT:          .vbyte  4, L..tmp5322; CHECK-NEXT:          .byte   3                               # Advance line 0323; CHECK-NEXT:          .byte   0324; CHECK-NEXT:          .byte   1325; CHECK-NEXT:          .byte   0                               # Set address to L..func_end1326; CHECK-NEXT:          .byte   5327; CHECK-NEXT:          .byte   2328; CHECK-NEXT:          .vbyte  4, L..func_end1329; CHECK-NEXT:          .byte   0                               # End sequence330; CHECK-NEXT:          .byte   1331; CHECK-NEXT:          .byte   1332; CHECK-NEXT:  L..debug_line_end0:333