brintos

brintos / llvm-project-archived public Read only

0
0
Text · 17.4 KiB · 0b7a03b Raw
302 lines · plain
1 2; RUN: llc -debugger-tune=gdb -mcpu=ppc -mtriple powerpc-ibm-aix-xcoff -function-sections \3; RUN:   < %s | FileCheck %s4 5source_filename = "1.c"6target datalayout = "E-m:a-p:32:32-i64:64-n32"7 8; Function Attrs: noinline nounwind optnone9define i32 @foo() #0 !dbg !8 {10entry:11  ret i32 0, !dbg !1212}13 14; Function Attrs: noinline nounwind optnone15define i32 @bar() #0 !dbg !13 {16entry:17  ret i32 1, !dbg !1418}19 20!llvm.dbg.cu = !{!0}21!llvm.module.flags = !{!3, !4, !5, !6}22!llvm.ident = !{!7}23 24!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)25!1 = !DIFile(filename: "1.c", directory: "debug")26!2 = !{}27!3 = !{i32 7, !"Dwarf Version", i32 3}28!4 = !{i32 2, !"Debug Info Version", i32 3}29!5 = !{i32 1, !"wchar_size", i32 2}30!6 = !{i32 7, !"PIC Level", i32 2}31!7 = !{!"clang version 13.0.0"}32!8 = distinct !DISubprogram(name: "foo", scope: !1, file: !1, line: 1, type: !9, scopeLine: 2, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !2)33!9 = !DISubroutineType(types: !10)34!10 = !{!11}35!11 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)36!12 = !DILocation(line: 3, column: 3, scope: !8)37!13 = distinct !DISubprogram(name: "bar", scope: !1, file: !1, line: 6, type: !9, scopeLine: 7, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !2)38!14 = !DILocation(line: 8, column: 3, scope: !13)39 40; CHECK:               .file   "1.c"41; CHECK-NEXT:          .csect ..text..[PR],542; CHECK-NEXT:          .rename ..text..[PR],""43; CHECK-NEXT:          .machine "COM"44; CHECK-NEXT:          .csect .foo[PR],545; CHECK-NEXT:          .globl  foo[DS]                         # -- Begin function foo46; CHECK-NEXT:          .globl  .foo[PR]47; CHECK-NEXT:          .align  248; CHECK-NEXT:          .csect foo[DS],249; CHECK-NEXT:          .vbyte  4, .foo[PR]                     # @foo50; CHECK-NEXT:          .vbyte  4, TOC[TC0]51; CHECK-NEXT:          .vbyte  4, 052; CHECK-NEXT:          .csect .foo[PR],553; CHECK-NEXT:  L..func_begin0:54; CHECK-NEXT:  # %bb.0:                                # %entry55; CHECK-NEXT:  L..tmp0:56; CHECK-NEXT:          li 3, 057; CHECK-NEXT:          blr58; CHECK-NEXT:  L..tmp1:59; CHECK-NEXT:  L..foo0:60; CHECK-NEXT:          .vbyte  4, 0x00000000                   # Traceback table begin61; CHECK-NEXT:          .byte   0x00                            # Version = 062; CHECK-NEXT:          .byte   0x09                            # Language = CPlusPlus63; CHECK-NEXT:          .byte   0x20                            # -IsGlobalLinkage, -IsOutOfLineEpilogOrPrologue64; CHECK-NEXT:                                          # +HasTraceBackTableOffset, -IsInternalProcedure65; CHECK-NEXT:                                          # -HasControlledStorage, -IsTOCless66; CHECK-NEXT:                                          # -IsFloatingPointPresent67; CHECK-NEXT:                                          # -IsFloatingPointOperationLogOrAbortEnabled68; CHECK-NEXT:          .byte   0x40                            # -IsInterruptHandler, +IsFunctionNamePresent, -IsAllocaUsed69; CHECK-NEXT:                                          # OnConditionDirective = 0, -IsCRSaved, -IsLRSaved70; CHECK-NEXT:          .byte   0x00                            # -IsBackChainStored, -IsFixup, NumOfFPRsSaved = 071; CHECK-NEXT:          .byte   0x00                            # -HasExtensionTable, -HasVectorInfo, NumOfGPRsSaved = 072; CHECK-NEXT:          .byte   0x00                            # NumberOfFixedParms = 073; CHECK-NEXT:          .byte   0x01                            # NumberOfFPParms = 0, +HasParmsOnStack74; CHECK-NEXT:          .vbyte  4, L..foo0-.foo[PR]             # Function size75; CHECK-NEXT:          .vbyte  2, 0x0003                       # Function name len = 376; CHECK-NEXT:          .byte   "foo"                           # Function Name77; CHECK-NEXT:  L..func_end0:78; CHECK-NEXT:                                          # -- End function79; CHECK-NEXT:          .csect .bar[PR],580; CHECK-NEXT:          .globl  bar[DS]                         # -- Begin function bar81; CHECK-NEXT:          .globl  .bar[PR]82; CHECK-NEXT:          .align  283; CHECK-NEXT:          .csect bar[DS],284; CHECK-NEXT:          .vbyte  4, .bar[PR]                     # @bar85; CHECK-NEXT:          .vbyte  4, TOC[TC0]86; CHECK-NEXT:          .vbyte  4, 087; CHECK-NEXT:          .csect .bar[PR],588; CHECK-NEXT:  L..func_begin1:89; CHECK-NEXT:  # %bb.0:                                # %entry90; CHECK-NEXT:  L..tmp2:91; CHECK-NEXT:          li 3, 192; CHECK-NEXT:          blr93; CHECK-NEXT:  L..tmp3:94; CHECK-NEXT:  L..bar0:95; CHECK-NEXT:          .vbyte  4, 0x00000000                   # Traceback table begin96; CHECK-NEXT:          .byte   0x00                            # Version = 097; CHECK-NEXT:          .byte   0x09                            # Language = CPlusPlus98; CHECK-NEXT:          .byte   0x20                            # -IsGlobalLinkage, -IsOutOfLineEpilogOrPrologue99; CHECK-NEXT:                                          # +HasTraceBackTableOffset, -IsInternalProcedure100; CHECK-NEXT:                                          # -HasControlledStorage, -IsTOCless101; CHECK-NEXT:                                          # -IsFloatingPointPresent102; CHECK-NEXT:                                          # -IsFloatingPointOperationLogOrAbortEnabled103; CHECK-NEXT:          .byte   0x40                            # -IsInterruptHandler, +IsFunctionNamePresent, -IsAllocaUsed104; CHECK-NEXT:                                          # OnConditionDirective = 0, -IsCRSaved, -IsLRSaved105; CHECK-NEXT:          .byte   0x00                            # -IsBackChainStored, -IsFixup, NumOfFPRsSaved = 0106; CHECK-NEXT:          .byte   0x00                            # -HasExtensionTable, -HasVectorInfo, NumOfGPRsSaved = 0107; CHECK-NEXT:          .byte   0x00                            # NumberOfFixedParms = 0108; CHECK-NEXT:          .byte   0x01                            # NumberOfFPParms = 0, +HasParmsOnStack109; CHECK-NEXT:          .vbyte  4, L..bar0-.bar[PR]             # Function size110; CHECK-NEXT:          .vbyte  2, 0x0003                       # Function name len = 3111; CHECK-NEXT:          .byte   "bar"                           # Function Name112; CHECK-NEXT:  L..func_end1:113; CHECK-NEXT:                                          # -- End function114; CHECK-NEXT:  L..sec_end0:115; CHECK:               .dwsect 0x60000116; CHECK-NEXT:  .dwabrev:117; CHECK-NEXT:          .byte   1                               # Abbreviation Code118; CHECK-NEXT:          .byte   17                              # DW_TAG_compile_unit119; CHECK-NEXT:          .byte   1                               # DW_CHILDREN_yes120; CHECK-NEXT:          .byte   37                              # DW_AT_producer121; CHECK-NEXT:          .byte   14                              # DW_FORM_strp122; CHECK-NEXT:          .byte   19                              # DW_AT_language123; CHECK-NEXT:          .byte   5                               # DW_FORM_data2124; CHECK-NEXT:          .byte   3                               # DW_AT_name125; CHECK-NEXT:          .byte   14                              # DW_FORM_strp126; CHECK-NEXT:          .byte   16                              # DW_AT_stmt_list127; CHECK-NEXT:          .byte   6                               # DW_FORM_data4128; CHECK-NEXT:          .byte   27                              # DW_AT_comp_dir129; CHECK-NEXT:          .byte   14                              # DW_FORM_strp130; CHECK-NEXT:          .byte   17                              # DW_AT_low_pc131; CHECK-NEXT:          .byte   1                               # DW_FORM_addr132; CHECK-NEXT:          .byte   85                              # DW_AT_ranges133; CHECK-NEXT:          .byte   6                               # DW_FORM_data4134; CHECK-NEXT:          .byte   0                               # EOM(1)135; CHECK-NEXT:          .byte   0                               # EOM(2)136; CHECK-NEXT:          .byte   2                               # Abbreviation Code137; CHECK-NEXT:          .byte   46                              # DW_TAG_subprogram138; CHECK-NEXT:          .byte   0                               # DW_CHILDREN_no139; CHECK-NEXT:          .byte   17                              # DW_AT_low_pc140; CHECK-NEXT:          .byte   1                               # DW_FORM_addr141; CHECK-NEXT:          .byte   18                              # DW_AT_high_pc142; CHECK-NEXT:          .byte   1                               # DW_FORM_addr143; CHECK-NEXT:          .byte   64                              # DW_AT_frame_base144; CHECK-NEXT:          .byte   10                              # DW_FORM_block1145; CHECK-NEXT:          .byte   3                               # DW_AT_name146; CHECK-NEXT:          .byte   14                              # DW_FORM_strp147; CHECK-NEXT:          .byte   58                              # DW_AT_decl_file148; CHECK-NEXT:          .byte   11                              # DW_FORM_data1149; CHECK-NEXT:          .byte   59                              # DW_AT_decl_line150; CHECK-NEXT:          .byte   11                              # DW_FORM_data1151; CHECK-NEXT:          .byte   39                              # DW_AT_prototyped152; CHECK-NEXT:          .byte   12                              # DW_FORM_flag153; CHECK-NEXT:          .byte   73                              # DW_AT_type154; CHECK-NEXT:          .byte   19                              # DW_FORM_ref4155; CHECK-NEXT:          .byte   63                              # DW_AT_external156; CHECK-NEXT:          .byte   12                              # DW_FORM_flag157; CHECK-NEXT:          .byte   0                               # EOM(1)158; CHECK-NEXT:          .byte   0                               # EOM(2)159; CHECK-NEXT:          .byte   3                               # Abbreviation Code160; CHECK-NEXT:          .byte   36                              # DW_TAG_base_type161; CHECK-NEXT:          .byte   0                               # DW_CHILDREN_no162; CHECK-NEXT:          .byte   3                               # DW_AT_name163; CHECK-NEXT:          .byte   14                              # DW_FORM_strp164; CHECK-NEXT:          .byte   62                              # DW_AT_encoding165; CHECK-NEXT:          .byte   11                              # DW_FORM_data1166; CHECK-NEXT:          .byte   11                              # DW_AT_byte_size167; CHECK-NEXT:          .byte   11                              # DW_FORM_data1168; CHECK-NEXT:          .byte   0                               # EOM(1)169; CHECK-NEXT:          .byte   0                               # EOM(2)170; CHECK-NEXT:          .byte   0                               # EOM(3)171; CHECK:               .dwsect 0x10000172; CHECK-NEXT:  .dwinfo:173; CHECK-NEXT:  L..cu_begin0:174; CHECK-NEXT:          .vbyte  2, 3                            # DWARF version number175; CHECK-NEXT:          .vbyte  4, .dwabrev                  # Offset Into Abbrev. Section176; CHECK-NEXT:          .byte   4                               # Address Size (in bytes)177; CHECK-NEXT:          .byte   1                               # Abbrev [1] 0xb:0x51 DW_TAG_compile_unit178; CHECK-NEXT:          .vbyte  4, L..info_string0              # DW_AT_producer179; CHECK-NEXT:          .vbyte  2, 12                           # DW_AT_language180; CHECK-NEXT:          .vbyte  4, L..info_string1              # DW_AT_name181; CHECK-NEXT:          .vbyte  4, L..line_table_start0         # DW_AT_stmt_list182; CHECK-NEXT:          .vbyte  4, L..info_string2              # DW_AT_comp_dir183; CHECK-NEXT:          .vbyte  4, 0                            # DW_AT_low_pc184; CHECK-NEXT:          .vbyte  4, L..debug_ranges0             # DW_AT_ranges185; CHECK-NEXT:          .byte   2                               # Abbrev [2] 0x26:0x17 DW_TAG_subprogram186; CHECK-NEXT:          .vbyte  4, L..func_begin0               # DW_AT_low_pc187; CHECK-NEXT:          .vbyte  4, L..func_end0                 # DW_AT_high_pc188; CHECK-NEXT:          .byte   1                               # DW_AT_frame_base189; CHECK-NEXT:          .byte   81190; CHECK-NEXT:          .vbyte  4, L..info_string3              # DW_AT_name191; CHECK-NEXT:          .byte   1                               # DW_AT_decl_file192; CHECK-NEXT:          .byte   1                               # DW_AT_decl_line193; CHECK-NEXT:          .byte   1                               # DW_AT_prototyped194; CHECK-NEXT:          .vbyte  4, 84                           # DW_AT_type195; CHECK-NEXT:          .byte   1                               # DW_AT_external196; CHECK-NEXT:          .byte   2                               # Abbrev [2] 0x3d:0x17 DW_TAG_subprogram197; CHECK-NEXT:          .vbyte  4, L..func_begin1               # DW_AT_low_pc198; CHECK-NEXT:          .vbyte  4, L..func_end1                 # DW_AT_high_pc199; CHECK-NEXT:          .byte   1                               # DW_AT_frame_base200; CHECK-NEXT:          .byte   81201; CHECK-NEXT:          .vbyte  4, L..info_string5              # DW_AT_name202; CHECK-NEXT:          .byte   1                               # DW_AT_decl_file203; CHECK-NEXT:          .byte   6                               # DW_AT_decl_line204; CHECK-NEXT:          .byte   1                               # DW_AT_prototyped205; CHECK-NEXT:          .vbyte  4, 84                           # DW_AT_type206; CHECK-NEXT:          .byte   1                               # DW_AT_external207; CHECK-NEXT:          .byte   3                               # Abbrev [3] 0x54:0x7 DW_TAG_base_type208; CHECK-NEXT:          .vbyte  4, L..info_string4              # DW_AT_name209; CHECK-NEXT:          .byte   5                               # DW_AT_encoding210; CHECK-NEXT:          .byte   4                               # DW_AT_byte_size211; CHECK-NEXT:          .byte   0                               # End Of Children Mark212; CHECK-NEXT:  L..debug_info_end0:213; CHECK:               .dwsect 0x80000214; CHECK-NEXT:  .dwrnges:215; CHECK-NEXT:  L..debug_ranges0:216; CHECK-NEXT:          .vbyte  4, L..func_begin0217; CHECK-NEXT:          .vbyte  4, L..func_end0218; CHECK-NEXT:          .vbyte  4, L..func_begin1219; CHECK-NEXT:          .vbyte  4, L..func_end1220; CHECK-NEXT:          .vbyte  4, 0221; CHECK-NEXT:          .vbyte  4, 0222; CHECK:               .dwsect 0x70000223; CHECK-NEXT:  .dwstr:224; CHECK-NEXT:  L..info_string0:225; CHECK-NEXT:          .string "clang version 13.0.0"          # string offset=0226; CHECK-NEXT:  L..info_string1:227; CHECK-NEXT:          .string "1.c"                           # string offset=21228; CHECK-NEXT:  L..info_string2:229; CHECK-NEXT:          .string "debug"                         # string offset=25230; CHECK-NEXT:  L..info_string3:231; CHECK-NEXT:          .string "foo"                           # string offset=31232; CHECK-NEXT:  L..info_string4:233; CHECK-NEXT:          .string "int"                           # string offset=35234; CHECK-NEXT:  L..info_string5:235; CHECK-NEXT:          .string "bar"                           # string offset=39236; CHECK-NEXT:          .toc237; CHECK:               .dwsect 0x20000238; CHECK-NEXT:  .dwline:239; CHECK-NEXT:  L..debug_line_0:240; CHECK-NEXT:  .set L..line_table_start0, L..debug_line_0-4241; CHECK-NEXT:          .vbyte  2, 3242; CHECK-NEXT:          .vbyte  4, L..prologue_end0-L..prologue_start0243; CHECK-NEXT:  L..prologue_start0:244; CHECK-NEXT:          .byte   4245; CHECK-NEXT:          .byte   1246; CHECK-NEXT:          .byte   -5247; CHECK-NEXT:          .byte   14248; CHECK-NEXT:          .byte   13249; CHECK-NEXT:          .byte   0250; CHECK-NEXT:          .byte   1251; CHECK-NEXT:          .byte   1252; CHECK-NEXT:          .byte   1253; CHECK-NEXT:          .byte   1254; CHECK-NEXT:          .byte   0255; CHECK-NEXT:          .byte   0256; CHECK-NEXT:          .byte   0257; CHECK-NEXT:          .byte   1258; CHECK-NEXT:          .byte   0259; CHECK-NEXT:          .byte   0260; CHECK-NEXT:          .byte   1261; CHECK-NEXT:          .byte   "debug"262; CHECK-NEXT:          .byte   0263; CHECK-NEXT:          .byte   0264; CHECK-NEXT:          .byte   "1.c"265; CHECK-NEXT:          .byte   0266; CHECK-NEXT:          .byte   1267; CHECK-NEXT:          .byte   0268; CHECK-NEXT:          .byte   0269; CHECK-NEXT:          .byte   0270; CHECK-NEXT:  L..prologue_end0:271; CHECK-NEXT:          .byte   5272; CHECK-NEXT:          .byte   3273; CHECK-NEXT:          .byte   10274; CHECK-NEXT:          .byte   0                               # Set address to L..tmp0275; CHECK-NEXT:          .byte   5276; CHECK-NEXT:          .byte   2277; CHECK-NEXT:          .vbyte  4, L..tmp0278; CHECK-NEXT:          .byte   20                              # Start sequence279; CHECK-NEXT:          .byte   0                               # Set address to L..func_end0280; CHECK-NEXT:          .byte   5281; CHECK-NEXT:          .byte   2 282; CHECK-NEXT:          .vbyte  4, L..func_end0283; CHECK-NEXT:          .byte   0                               # End sequence284; CHECK-NEXT:          .byte   1285; CHECK-NEXT:          .byte   1286; CHECK-NEXT:          .byte   5287; CHECK-NEXT:          .byte   3288; CHECK-NEXT:          .byte   10289; CHECK-NEXT:          .byte   0                               # Set address to L..tmp2290; CHECK-NEXT:          .byte   5291; CHECK-NEXT:          .byte   2292; CHECK-NEXT:          .vbyte  4, L..tmp2293; CHECK-NEXT:          .byte   25                              # Start sequence294; CHECK-NEXT:          .byte   0                               # Set address to L..func_end1295; CHECK-NEXT:          .byte   5296; CHECK-NEXT:          .byte   2297; CHECK-NEXT:          .vbyte  4, L..func_end1298; CHECK-NEXT:          .byte   0                               # End sequence299; CHECK-NEXT:          .byte   1300; CHECK-NEXT:          .byte   1301; CHECK-NEXT:  L..debug_line_end0:302