brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.7 KiB · d008116 Raw
313 lines · plain
1; RUN: llc -mcpu=mvp -generate-arange-section -filetype=obj %s -o - | llvm-readobj -S -r --symbols - | FileCheck %s2 3; CHECK:      Format: WASM4; CHECK-NEXT: Arch: wasm645; CHECK-NEXT: AddressSize: 64bit6; CHECK-NEXT: Sections [7; CHECK-NEXT:   Section {8; CHECK-NEXT:     Type: TYPE (0x1)9; CHECK-NEXT:     Size: 410; CHECK-NEXT:     Offset: 1411; CHECK-NEXT:   }12; CHECK-NEXT:   Section {13; CHECK-NEXT:     Type: IMPORT (0x2)14; CHECK-NEXT:     Size: 8115; CHECK-NEXT:     Offset: 2416; CHECK-NEXT:   }17; CHECK-NEXT:   Section {18; CHECK-NEXT:     Type: FUNCTION (0x3)19; CHECK-NEXT:     Size: 220; CHECK-NEXT:     Offset: 11121; CHECK-NEXT:   }22; CHECK-NEXT:   Section {23; CHECK-NEXT:     Type: ELEM (0x9)24; CHECK-NEXT:     Size: 725; CHECK-NEXT:     Offset: 11926; CHECK-NEXT:   }27; CHECK-NEXT:   Section {28; CHECK-NEXT:     Type: DATACOUNT (0xC)29; CHECK-NEXT:     Size: 130; CHECK-NEXT:     Offset: 13231; CHECK-NEXT:   }32; CHECK-NEXT:   Section {33; CHECK-NEXT:     Type: CODE (0xA)34; CHECK-NEXT:     Size: 435; CHECK-NEXT:     Offset: 13936; CHECK-NEXT:   }37; CHECK-NEXT:   Section {38; CHECK-NEXT:     Type: DATA (0xB)39; CHECK-NEXT:     Size: 2740; CHECK-NEXT:     Offset: 14941; CHECK-NEXT:     Segments [42; CHECK-NEXT:       Segment {43; CHECK-NEXT:         Name: .data.foo44; CHECK-NEXT:         Size: 845; CHECK-NEXT:         Offset: 046; CHECK-NEXT:       }47; CHECK-NEXT:       Segment {48; CHECK-NEXT:         Name: .data.ptr249; CHECK-NEXT:         Size: 850; CHECK-NEXT:         Offset: 851; CHECK-NEXT:       }52; CHECK-NEXT:     ]53; CHECK-NEXT:   }54; CHECK-NEXT:   Section {55; CHECK-NEXT:     Type: CUSTOM (0x0)56; CHECK-NEXT:     Size: 8657; CHECK-NEXT:     Offset: 18258; CHECK-NEXT:     Name: .debug_abbrev59; CHECK-NEXT:   }60; CHECK-NEXT:   Section {61; CHECK-NEXT:     Type: CUSTOM (0x0)62; CHECK-NEXT:     Size: 13063; CHECK-NEXT:     Offset: 28864; CHECK-NEXT:     Name: .debug_info65; CHECK-NEXT:   }66; CHECK-NEXT:   Section {67; CHECK-NEXT:     Type: CUSTOM (0x0)68; CHECK-NEXT:     Size: 8069; CHECK-NEXT:     Offset: 43670; CHECK-NEXT:     Name: .debug_aranges71; CHECK-NEXT:   }72; CHECK-NEXT:   Section {73; CHECK-NEXT:     Type: CUSTOM (0x0)74; CHECK-NEXT:     Size: 12175; CHECK-NEXT:     Offset: 53776; CHECK-NEXT:     Name: .debug_str77; CHECK-NEXT:   }78; CHECK-NEXT:   Section {79; CHECK-NEXT:     Type: CUSTOM (0x0)80; CHECK-NEXT:     Size: 4281; CHECK-NEXT:     Offset: 67582; CHECK-NEXT:     Name: .debug_pubnames83; CHECK-NEXT:   }84; CHECK-NEXT:   Section {85; CHECK-NEXT:     Type: CUSTOM (0x0)86; CHECK-NEXT:     Size: 2687; CHECK-NEXT:     Offset: 73988; CHECK-NEXT:     Name: .debug_pubtypes89; CHECK-NEXT:   }90; CHECK-NEXT:   Section {91; CHECK-NEXT:     Type: CUSTOM (0x0)92; CHECK-NEXT:     Size: 6093; CHECK-NEXT:     Offset: 78794; CHECK-NEXT:     Name: .debug_line95; CHECK-NEXT:   }96; CHECK-NEXT:   Section {97; CHECK-NEXT:     Type: CUSTOM (0x0)98; CHECK-NEXT:     Size: 9199; CHECK-NEXT:     Offset: 865100; CHECK-NEXT:     Name: linking101; CHECK-NEXT:   }102; CHECK-NEXT:   Section {103; CHECK-NEXT:     Type: CUSTOM (0x0)104; CHECK-NEXT:     Size: 9105; CHECK-NEXT:     Offset: 970106; CHECK-NEXT:     Name: reloc.DATA107; CHECK-NEXT:   }108; CHECK-NEXT:   Section {109; CHECK-NEXT:     Type: CUSTOM (0x0)110; CHECK-NEXT:     Size: 61111; CHECK-NEXT:     Offset: 996112; CHECK-NEXT:     Name: reloc..debug_info113; CHECK-NEXT:   }114; CHECK-NEXT:   Section {115; CHECK-NEXT:     Type: CUSTOM (0x0)116; CHECK-NEXT:     Size: 18117; CHECK-NEXT:     Offset: 1081118; CHECK-NEXT:     Name: reloc..debug_aranges119; CHECK-NEXT:   }120; CHECK-NEXT:   Section {121; CHECK-NEXT:     Type: CUSTOM (0x0)122; CHECK-NEXT:     Size: 6123; CHECK-NEXT:     Offset: 1126124; CHECK-NEXT:     Name: reloc..debug_pubnames125; CHECK-NEXT:   }126; CHECK-NEXT:   Section {127; CHECK-NEXT:     Type: CUSTOM (0x0)128; CHECK-NEXT:     Size: 6129; CHECK-NEXT:     Offset: 1160130; CHECK-NEXT:     Name: reloc..debug_pubtypes131; CHECK-NEXT:   }132; CHECK-NEXT:   Section {133; CHECK-NEXT:     Type: CUSTOM (0x0)134; CHECK-NEXT:     Size: 6135; CHECK-NEXT:     Offset: 1194136; CHECK-NEXT:     Name: reloc..debug_line137; CHECK-NEXT:   }138; CHECK-NEXT:   Section {139; CHECK-NEXT:     Type: CUSTOM (0x0)140; CHECK-NEXT:     Size: 77141; CHECK-NEXT:     Offset: 1224142; CHECK-NEXT:     Name: producers143; CHECK-NEXT:   }144; CHECK-NEXT:   Section {145; CHECK-NEXT:     Type: CUSTOM (0x0)146; CHECK-NEXT:     Size: 11147; CHECK-NEXT:     Offset: 1317148; CHECK-NEXT:     Name: target_features149; CHECK-NEXT:   }150; CHECK-NEXT: ]151; CHECK-NEXT: Relocations [152; CHECK-NEXT:   Section (7) DATA {153; CHECK-NEXT:     0x6 R_WASM_MEMORY_ADDR_I64 myextern 0154; CHECK-NEXT:     0x13 R_WASM_TABLE_INDEX_I64 f2155; CHECK-NEXT:   }156; CHECK-NEXT:   Section (9) .debug_info {157; CHECK-NEXT:     0x6 R_WASM_SECTION_OFFSET_I32 .debug_abbrev 0158; CHECK-NEXT:     0xC R_WASM_SECTION_OFFSET_I32 .debug_str 0159; CHECK-NEXT:     0x12 R_WASM_SECTION_OFFSET_I32 .debug_str 55160; CHECK-NEXT:     0x16 R_WASM_SECTION_OFFSET_I32 .debug_line 0161; CHECK-NEXT:     0x1A R_WASM_SECTION_OFFSET_I32 .debug_str 62162; CHECK-NEXT:     0x1E R_WASM_FUNCTION_OFFSET_I64 f2 0163; CHECK-NEXT:     0x2B R_WASM_SECTION_OFFSET_I32 .debug_str 105164; CHECK-NEXT:     0x37 R_WASM_MEMORY_ADDR_I64 foo 0165; CHECK-NEXT:     0x45 R_WASM_SECTION_OFFSET_I32 .debug_str 109166; CHECK-NEXT:     0x4C R_WASM_SECTION_OFFSET_I32 .debug_str 113167; CHECK-NEXT:     0x58 R_WASM_MEMORY_ADDR_I64 ptr2 0168; CHECK-NEXT:     0x67 R_WASM_FUNCTION_OFFSET_I64 f2 0169; CHECK-NEXT:     0x76 R_WASM_GLOBAL_INDEX_I32 __stack_pointer170; CHECK-NEXT:     0x7B R_WASM_SECTION_OFFSET_I32 .debug_str 118171; CHECK-NEXT:   }172; CHECK-NEXT:   Section (10) .debug_aranges {173; CHECK-NEXT:     0x6 R_WASM_SECTION_OFFSET_I32 .debug_info 0174; CHECK-NEXT:     0x10 R_WASM_MEMORY_ADDR_I64 foo 0175; CHECK-NEXT:     0x20 R_WASM_MEMORY_ADDR_I64 ptr2 0176; CHECK-NEXT:     0x30 R_WASM_FUNCTION_OFFSET_I64 f2 0177; CHECK-NEXT:   }178; CHECK-NEXT:   Section (12) .debug_pubnames {179; CHECK-NEXT:     0x6 R_WASM_SECTION_OFFSET_I32 .debug_info 0180; CHECK-NEXT:   }181; CHECK-NEXT:   Section (13) .debug_pubtypes {182; CHECK-NEXT:     0x6 R_WASM_SECTION_OFFSET_I32 .debug_info 0183; CHECK-NEXT:   }184; CHECK-NEXT:   Section (14) .debug_line {185; CHECK-NEXT:     0x2E R_WASM_FUNCTION_OFFSET_I64 f2 1186; CHECK-NEXT:   }187; CHECK-NEXT: ]188; CHECK-NEXT: Symbols [189; CHECK-NEXT:   Symbol {190; CHECK-NEXT:     Name: f2191; CHECK-NEXT:     Type: FUNCTION (0x0)192; CHECK-NEXT:     Flags [ (0x4)193; CHECK-NEXT:       VISIBILITY_HIDDEN (0x4)194; CHECK-NEXT:     ]195; CHECK-NEXT:     ElementIndex: 0x0196; CHECK-NEXT:   }197; CHECK-NEXT:   Symbol {198; CHECK-NEXT:     Name: foo199; CHECK-NEXT:     Type: DATA (0x1)200; CHECK-NEXT:     Flags [ (0x4)201; CHECK-NEXT:       VISIBILITY_HIDDEN (0x4)202; CHECK-NEXT:     ]203; CHECK-NEXT:     Offset: 0x0204; CHECK-NEXT:     Segment: 0x0205; CHECK-NEXT:     Size: 0x8206; CHECK-NEXT:   }207; CHECK-NEXT:   Symbol {208; CHECK-NEXT:     Name: myextern209; CHECK-NEXT:     Type: DATA (0x1)210; CHECK-NEXT:     Flags [ (0x10)211; CHECK-NEXT:       UNDEFINED (0x10)212; CHECK-NEXT:     ]213; CHECK-NEXT:   }214; CHECK-NEXT:   Symbol {215; CHECK-NEXT:     Name: ptr2216; CHECK-NEXT:     Type: DATA (0x1)217; CHECK-NEXT:     Flags [ (0x4)218; CHECK-NEXT:       VISIBILITY_HIDDEN (0x4)219; CHECK-NEXT:     ]220; CHECK-NEXT:     Offset: 0x0221; CHECK-NEXT:     Segment: 0x1222; CHECK-NEXT:     Size: 0x8223; CHECK-NEXT:   }224; CHECK-NEXT:   Symbol {225; CHECK-NEXT:     Name: .debug_abbrev226; CHECK-NEXT:     Type: SECTION (0x3)227; CHECK-NEXT:     Flags [ (0x2)228; CHECK-NEXT:       BINDING_LOCAL (0x2)229; CHECK-NEXT:     ]230; CHECK-NEXT:     ElementIndex: 0x7231; CHECK-NEXT:   }232; CHECK-NEXT:   Symbol {233; CHECK-NEXT:     Name: .debug_info234; CHECK-NEXT:     Type: SECTION (0x3)235; CHECK-NEXT:     Flags [ (0x2)236; CHECK-NEXT:       BINDING_LOCAL (0x2)237; CHECK-NEXT:     ]238; CHECK-NEXT:     ElementIndex: 0x8239; CHECK-NEXT:   }240; CHECK-NEXT:   Symbol {241; CHECK-NEXT:     Name: __stack_pointer242; CHECK-NEXT:     Type: GLOBAL (0x2)243; CHECK-NEXT:     Flags [ (0x10)244; CHECK-NEXT:       UNDEFINED (0x10)245; CHECK-NEXT:     ]246; CHECK-NEXT:     ImportModule: env247; CHECK-NEXT:     ElementIndex: 0x0248; CHECK-NEXT:   }249; CHECK-NEXT:   Symbol {250; CHECK-NEXT:     Name: .debug_str251; CHECK-NEXT:     Type: SECTION (0x3)252; CHECK-NEXT:     Flags [ (0x2)253; CHECK-NEXT:       BINDING_LOCAL (0x2)254; CHECK-NEXT:     ]255; CHECK-NEXT:     ElementIndex: 0xA256; CHECK-NEXT:   }257; CHECK-NEXT:   Symbol {258; CHECK-NEXT:     Name: .debug_line259; CHECK-NEXT:     Type: SECTION (0x3)260; CHECK-NEXT:     Flags [ (0x2)261; CHECK-NEXT:       BINDING_LOCAL (0x2)262; CHECK-NEXT:     ]263; CHECK-NEXT:     ElementIndex: 0xD264; CHECK-NEXT:   }265; CHECK-NEXT: ]266 267; generated from the following C code using: clang --target=wasm64 -g -O0 -S -emit-llvm test.c268; extern int myextern;269; void f2(void) { return; }270;271; int* foo = &myextern;272; void (*ptr2)(void) = f2;273 274target triple = "wasm64-unknown-unknown"275 276source_filename = "test.c"277 278@myextern = external global i32, align 4279@foo = hidden global ptr @myextern, align 4, !dbg !0280@ptr2 = hidden global ptr @f2, align 4, !dbg !6281 282; Function Attrs: noinline nounwind optnone283define hidden void @f2() #0 !dbg !17 {284entry:285  ret void, !dbg !18286}287 288attributes #0 = { noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="mvp" "unsafe-fp-math"="false" "use-soft-float"="false" }289 290!llvm.dbg.cu = !{!2}291!llvm.module.flags = !{!13, !14, !15}292!llvm.ident = !{!16}293 294!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())295!1 = distinct !DIGlobalVariable(name: "foo", scope: !2, file: !3, line: 4, type: !11, isLocal: false, isDefinition: true)296!2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 332303) (llvm/trunk 332406)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)297!3 = !DIFile(filename: "test.c", directory: "/usr/local/google/home/sbc/dev/wasm/simple")298!4 = !{}299!5 = !{!0, !6}300!6 = !DIGlobalVariableExpression(var: !7, expr: !DIExpression())301!7 = distinct !DIGlobalVariable(name: "ptr2", scope: !2, file: !3, line: 5, type: !8, isLocal: false, isDefinition: true)302!8 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !9, size: 64)303!9 = !DISubroutineType(types: !10)304!10 = !{null}305!11 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !12, size: 64)306!12 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)307!13 = !{i32 2, !"Dwarf Version", i32 4}308!14 = !{i32 2, !"Debug Info Version", i32 3}309!15 = !{i32 1, !"wchar_size", i32 4}310!16 = !{!"clang version 7.0.0 (trunk 332303) (llvm/trunk 332406)"}311!17 = distinct !DISubprogram(name: "f2", scope: !3, file: !3, line: 2, type: !9, isLocal: false, isDefinition: true, scopeLine: 2, flags: DIFlagPrototyped, isOptimized: false, unit: !2, retainedNodes: !4)312!18 = !DILocation(line: 2, column: 17, scope: !17)313