141 lines · plain
1@a = hidden global [6 x i8] c"hello\00", align 12@b = hidden global [8 x i8] c"goodbye\00", align 13@c = hidden global [9 x i8] c"whatever\00", align 14@d = hidden global i32 42, align 45 6@e = private constant [9 x i8] c"constant\00", align 17@f = private constant i8 43, align 48 9; RUN: llc --mtriple=wasm32-unknown-unknown -mattr=+bulk-memory,+atomics -filetype=obj %s -o %t.passive.o10; RUN: llc --mtriple=wasm64-unknown-unknown -mattr=+bulk-memory,+atomics -filetype=obj %s -o %t.passive64.o11; RUN: llc --mtriple=wasm32-unknown-unknown -filetype=obj %s -o %t.o12 13; RUN: wasm-ld -no-gc-sections --no-entry -o %t.merged.wasm %t.o14; RUN: obj2yaml %t.merged.wasm | FileCheck %s --check-prefix=MERGE15 16; MERGE-LABEL: - Type: DATA17; MERGE-NEXT: Segments:18; MERGE-NEXT: - SectionOffset: 819; MERGE-NEXT: InitFlags: 020; MERGE-NEXT: Offset:21; MERGE: Content: 636F6E7374616E74000000002B22; MERGE-NEXT: - SectionOffset: 2823; MERGE-NEXT: InitFlags: 024; MERGE-NEXT: Offset:25; MERGE: Content: 68656C6C6F00676F6F6462796500776861746576657200002A00000026; MERGE-NEXT: - Type: CUSTOM27; MERGE-NEXT: Name: name28; MERGE-NEXT: FunctionNames:29; MERGE-NEXT: - Index: 030; MERGE-NEXT: Name: __wasm_call_ctors31; MERGE-NEXT: GlobalNames:32; MERGE-NEXT: - Index: 033; MERGE-NEXT: Name: __stack_pointer34; MERGE-NEXT: DataSegmentNames:35; MERGE-NEXT: - Index: 036; MERGE-NEXT: Name: .rodata37 38; RUN: wasm-ld -no-gc-sections --no-entry --no-merge-data-segments -o %t.separate.wasm %t.o39; RUN: obj2yaml %t.separate.wasm | FileCheck %s --check-prefix=SEPARATE40 41; SEPARATE-NOT: DATACOUNT42; SEPARATE-LABEL: - Type: DATA43; SEPARATE-NEXT: Segments:44; SEPARATE-NEXT: - SectionOffset: 845; SEPARATE-NEXT: InitFlags: 046; SEPARATE-NEXT: Offset:47; SEPARATE: Content: 636F6E7374616E740048; SEPARATE-NEXT: - SectionOffset: 2449; SEPARATE-NEXT: InitFlags: 050; SEPARATE-NEXT: Offset:51; SEPARATE: Content: 2B52; SEPARATE-NEXT: - SectionOffset: 3253; SEPARATE-NEXT: InitFlags: 054; SEPARATE-NEXT: Offset:55; SEPARATE: Content: 68656C6C6F0056; SEPARATE-NEXT: - SectionOffset: 4557; SEPARATE-NEXT: InitFlags: 058; SEPARATE-NEXT: Offset:59; SEPARATE: Content: 676F6F646279650060; SEPARATE-NEXT: - SectionOffset: 6061; SEPARATE-NEXT: InitFlags: 062; SEPARATE-NEXT: Offset:63; SEPARATE: Content: '776861746576657200'64; SEPARATE-NEXT: - SectionOffset: 7665; SEPARATE-NEXT: InitFlags: 066; SEPARATE-NEXT: Offset:67; SEPARATE: Content: 2A00000068; SEPARATE-NEXT: - Type: CUSTOM69; SEPARATE-NEXT: Name: name70; SEPARATE-NEXT: FunctionNames:71; SEPARATE-NEXT: - Index: 072; SEPARATE-NEXT: Name: __wasm_call_ctors73; SEPARATE-NEXT: GlobalNames:74; SEPARATE-NEXT: - Index: 075; SEPARATE-NEXT: Name: __stack_pointer76; SEPARATE-NEXT: DataSegmentNames:77; SEPARATE-NEXT: - Index: 078; SEPARATE-NEXT: Name: .rodata79 80; RUN: wasm-ld -no-gc-sections --no-entry --shared-memory --max-memory=131072 -o %t.merged.passive.wasm %t.passive.o81; RUN: obj2yaml %t.merged.passive.wasm | FileCheck %s --check-prefix=PASSIVE-MERGE82; RUN: wasm-ld -mwasm64 -no-gc-sections --no-entry --shared-memory --max-memory=131072 -o %t.merged.passive64.wasm %t.passive64.o83; RUN: obj2yaml %t.merged.passive64.wasm | FileCheck %s --check-prefix=PASSIVE-MERGE84 85; PASSIVE-MERGE-LABEL: - Type: DATACOUNT86; PASSIVE-MERGE-NEXT: Count: 287; PASSIVE-MERGE-LABEL: - Type: DATA88; PASSIVE-MERGE-NEXT: Segments:89; PASSIVE-MERGE-NEXT: - SectionOffset: 390; PASSIVE-MERGE-NEXT: InitFlags: 191; PASSIVE-MERGE-NEXT: Content: 636F6E7374616E74000000002B92; PASSIVE-MERGE-NEXT: - SectionOffset: 1893; PASSIVE-MERGE-NEXT: InitFlags: 194; PASSIVE-MERGE-NEXT: Content: 68656C6C6F00676F6F6462796500776861746576657200002A00000095; PASSIVE-MERGE-NEXT: - Type: CUSTOM96; PASSIVE-MERGE-NEXT: Name: name97; PASSIVE-MERGE-NEXT: FunctionNames:98; PASSIVE-MERGE-NEXT: - Index: 099; PASSIVE-MERGE-NEXT: Name: __wasm_call_ctors100; PASSIVE-MERGE-NEXT: - Index: 1101; PASSIVE-MERGE-NEXT: Name: __wasm_init_tls102; PASSIVE-MERGE-NEXT: - Index: 2103; PASSIVE-MERGE-NEXT: Name: __wasm_init_memory104 105; RUN: wasm-ld -no-gc-sections --no-entry --shared-memory --max-memory=131072 --no-merge-data-segments -o %t.separate.passive.wasm %t.passive.o106; RUN: obj2yaml %t.separate.passive.wasm | FileCheck %s --check-prefix=PASSIVE-SEPARATE107; RUN: wasm-ld -mwasm64 -no-gc-sections --no-entry --shared-memory --max-memory=131072 --no-merge-data-segments -o %t.separate.passive64.wasm %t.passive64.o108; RUN: obj2yaml %t.separate.passive64.wasm | FileCheck %s --check-prefix=PASSIVE-SEPARATE109 110; PASSIVE-SEPARATE-LABEL: - Type: DATACOUNT111; PASSIVE-SEPARATE-NEXT: Count: 6112; PASSIVE-SEPARATE-LABEL: - Type: DATA113; PASSIVE-SEPARATE-NEXT: Segments:114; PASSIVE-SEPARATE-NEXT: - SectionOffset: 3115; PASSIVE-SEPARATE-NEXT: InitFlags: 1116; PASSIVE-SEPARATE-NEXT: Content: 636F6E7374616E7400117; PASSIVE-SEPARATE-NEXT: - SectionOffset: 14118; PASSIVE-SEPARATE-NEXT: InitFlags: 1119; PASSIVE-SEPARATE-NEXT: Content: 2B120; PASSIVE-SEPARATE-NEXT: - SectionOffset: 17121; PASSIVE-SEPARATE-NEXT: InitFlags: 1122; PASSIVE-SEPARATE-NEXT: Content: 68656C6C6F00123; PASSIVE-SEPARATE-NEXT: - SectionOffset: 25124; PASSIVE-SEPARATE-NEXT: InitFlags: 1125; PASSIVE-SEPARATE-NEXT: Content: 676F6F6462796500126; PASSIVE-SEPARATE-NEXT: - SectionOffset: 35127; PASSIVE-SEPARATE-NEXT: InitFlags: 1128; PASSIVE-SEPARATE-NEXT: Content: '776861746576657200'129; PASSIVE-SEPARATE-NEXT: - SectionOffset: 46130; PASSIVE-SEPARATE-NEXT: InitFlags: 1131; PASSIVE-SEPARATE-NEXT: Content: 2A000000132; PASSIVE-SEPARATE-NEXT: - Type: CUSTOM133; PASSIVE-SEPARATE-NEXT: Name: name134; PASSIVE-SEPARATE-NEXT: FunctionNames:135; PASSIVE-SEPARATE-NEXT: - Index: 0136; PASSIVE-SEPARATE-NEXT: Name: __wasm_call_ctors137; PASSIVE-SEPARATE-NEXT: - Index: 1138; PASSIVE-SEPARATE-NEXT: Name: __wasm_init_tls139; PASSIVE-SEPARATE-NEXT: - Index: 2140; PASSIVE-SEPARATE-NEXT: Name: __wasm_init_memory141