141 lines
6.9 KiB
LLVM
141 lines
6.9 KiB
LLVM
@a = hidden global [6 x i8] c"hello\00", align 1
|
|
@b = hidden global [8 x i8] c"goodbye\00", align 1
|
|
@c = hidden global [9 x i8] c"whatever\00", align 1
|
|
@d = hidden global i32 42, align 4
|
|
|
|
@e = private constant [9 x i8] c"constant\00", align 1
|
|
@f = private constant i8 43, align 4
|
|
|
|
; RUN: llc --mtriple=wasm32-unknown-unknown -mattr=+bulk-memory,+atomics -filetype=obj %s -o %t.passive.o
|
|
; RUN: llc --mtriple=wasm64-unknown-unknown -mattr=+bulk-memory,+atomics -filetype=obj %s -o %t.passive64.o
|
|
; RUN: llc --mtriple=wasm32-unknown-unknown -filetype=obj %s -o %t.o
|
|
|
|
; RUN: wasm-ld -no-gc-sections --no-entry -o %t.merged.wasm %t.o
|
|
; RUN: obj2yaml %t.merged.wasm | FileCheck %s --check-prefix=MERGE
|
|
|
|
; MERGE-LABEL: - Type: DATA
|
|
; MERGE-NEXT: Segments:
|
|
; MERGE-NEXT: - SectionOffset: 7
|
|
; MERGE-NEXT: InitFlags: 0
|
|
; MERGE-NEXT: Offset:
|
|
; MERGE: Content: 636F6E7374616E74000000002B
|
|
; MERGE-NEXT: - SectionOffset: 26
|
|
; MERGE-NEXT: InitFlags: 0
|
|
; MERGE-NEXT: Offset:
|
|
; MERGE: Content: 68656C6C6F00676F6F6462796500776861746576657200002A000000
|
|
; MERGE-NEXT: - Type: CUSTOM
|
|
; MERGE-NEXT: Name: name
|
|
; MERGE-NEXT: FunctionNames:
|
|
; MERGE-NEXT: - Index: 0
|
|
; MERGE-NEXT: Name: __wasm_call_ctors
|
|
; MERGE-NEXT: GlobalNames:
|
|
; MERGE-NEXT: - Index: 0
|
|
; MERGE-NEXT: Name: __stack_pointer
|
|
; MERGE-NEXT: DataSegmentNames:
|
|
; MERGE-NEXT: - Index: 0
|
|
; MERGE-NEXT: Name: .rodata
|
|
|
|
; RUN: wasm-ld -no-gc-sections --no-entry --no-merge-data-segments -o %t.separate.wasm %t.o
|
|
; RUN: obj2yaml %t.separate.wasm | FileCheck %s --check-prefix=SEPARATE
|
|
|
|
; SEPARATE-NOT: DATACOUNT
|
|
; SEPARATE-LABEL: - Type: DATA
|
|
; SEPARATE-NEXT: Segments:
|
|
; SEPARATE-NEXT: - SectionOffset: 7
|
|
; SEPARATE-NEXT: InitFlags: 0
|
|
; SEPARATE-NEXT: Offset:
|
|
; SEPARATE: Content: 636F6E7374616E7400
|
|
; SEPARATE-NEXT: - SectionOffset: 22
|
|
; SEPARATE-NEXT: InitFlags: 0
|
|
; SEPARATE-NEXT: Offset:
|
|
; SEPARATE: Content: 2B
|
|
; SEPARATE-NEXT: - SectionOffset: 29
|
|
; SEPARATE-NEXT: InitFlags: 0
|
|
; SEPARATE-NEXT: Offset:
|
|
; SEPARATE: Content: 68656C6C6F00
|
|
; SEPARATE-NEXT: - SectionOffset: 41
|
|
; SEPARATE-NEXT: InitFlags: 0
|
|
; SEPARATE-NEXT: Offset:
|
|
; SEPARATE: Content: 676F6F6462796500
|
|
; SEPARATE-NEXT: - SectionOffset: 55
|
|
; SEPARATE-NEXT: InitFlags: 0
|
|
; SEPARATE-NEXT: Offset:
|
|
; SEPARATE: Content: '776861746576657200'
|
|
; SEPARATE-NEXT: - SectionOffset: 70
|
|
; SEPARATE-NEXT: InitFlags: 0
|
|
; SEPARATE-NEXT: Offset:
|
|
; SEPARATE: Content: 2A000000
|
|
; SEPARATE-NEXT: - Type: CUSTOM
|
|
; SEPARATE-NEXT: Name: name
|
|
; SEPARATE-NEXT: FunctionNames:
|
|
; SEPARATE-NEXT: - Index: 0
|
|
; SEPARATE-NEXT: Name: __wasm_call_ctors
|
|
; SEPARATE-NEXT: GlobalNames:
|
|
; SEPARATE-NEXT: - Index: 0
|
|
; SEPARATE-NEXT: Name: __stack_pointer
|
|
; SEPARATE-NEXT: DataSegmentNames:
|
|
; SEPARATE-NEXT: - Index: 0
|
|
; SEPARATE-NEXT: Name: .rodata
|
|
|
|
; RUN: wasm-ld -no-gc-sections --no-entry --shared-memory --max-memory=131072 -o %t.merged.passive.wasm %t.passive.o
|
|
; RUN: obj2yaml %t.merged.passive.wasm | FileCheck %s --check-prefix=PASSIVE-MERGE
|
|
; RUN: wasm-ld -mwasm64 -no-gc-sections --no-entry --shared-memory --max-memory=131072 -o %t.merged.passive64.wasm %t.passive64.o
|
|
; RUN: obj2yaml %t.merged.passive64.wasm | FileCheck %s --check-prefix=PASSIVE-MERGE
|
|
|
|
; PASSIVE-MERGE-LABEL: - Type: DATACOUNT
|
|
; PASSIVE-MERGE-NEXT: Count: 2
|
|
; PASSIVE-MERGE-LABEL: - Type: DATA
|
|
; PASSIVE-MERGE-NEXT: Segments:
|
|
; PASSIVE-MERGE-NEXT: - SectionOffset: 3
|
|
; PASSIVE-MERGE-NEXT: InitFlags: 1
|
|
; PASSIVE-MERGE-NEXT: Content: 636F6E7374616E74000000002B
|
|
; PASSIVE-MERGE-NEXT: - SectionOffset: 18
|
|
; PASSIVE-MERGE-NEXT: InitFlags: 1
|
|
; PASSIVE-MERGE-NEXT: Content: 68656C6C6F00676F6F6462796500776861746576657200002A000000
|
|
; PASSIVE-MERGE-NEXT: - Type: CUSTOM
|
|
; PASSIVE-MERGE-NEXT: Name: name
|
|
; PASSIVE-MERGE-NEXT: FunctionNames:
|
|
; PASSIVE-MERGE-NEXT: - Index: 0
|
|
; PASSIVE-MERGE-NEXT: Name: __wasm_call_ctors
|
|
; PASSIVE-MERGE-NEXT: - Index: 1
|
|
; PASSIVE-MERGE-NEXT: Name: __wasm_init_tls
|
|
; PASSIVE-MERGE-NEXT: - Index: 2
|
|
; PASSIVE-MERGE-NEXT: Name: __wasm_init_memory
|
|
|
|
; RUN: wasm-ld -no-gc-sections --no-entry --shared-memory --max-memory=131072 --no-merge-data-segments -o %t.separate.passive.wasm %t.passive.o
|
|
; RUN: obj2yaml %t.separate.passive.wasm | FileCheck %s --check-prefix=PASSIVE-SEPARATE
|
|
; 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.o
|
|
; RUN: obj2yaml %t.separate.passive64.wasm | FileCheck %s --check-prefix=PASSIVE-SEPARATE
|
|
|
|
; PASSIVE-SEPARATE-LABEL: - Type: DATACOUNT
|
|
; PASSIVE-SEPARATE-NEXT: Count: 6
|
|
; PASSIVE-SEPARATE-LABEL: - Type: DATA
|
|
; PASSIVE-SEPARATE-NEXT: Segments:
|
|
; PASSIVE-SEPARATE-NEXT: - SectionOffset: 3
|
|
; PASSIVE-SEPARATE-NEXT: InitFlags: 1
|
|
; PASSIVE-SEPARATE-NEXT: Content: 636F6E7374616E7400
|
|
; PASSIVE-SEPARATE-NEXT: - SectionOffset: 14
|
|
; PASSIVE-SEPARATE-NEXT: InitFlags: 1
|
|
; PASSIVE-SEPARATE-NEXT: Content: 2B
|
|
; PASSIVE-SEPARATE-NEXT: - SectionOffset: 17
|
|
; PASSIVE-SEPARATE-NEXT: InitFlags: 1
|
|
; PASSIVE-SEPARATE-NEXT: Content: 68656C6C6F00
|
|
; PASSIVE-SEPARATE-NEXT: - SectionOffset: 25
|
|
; PASSIVE-SEPARATE-NEXT: InitFlags: 1
|
|
; PASSIVE-SEPARATE-NEXT: Content: 676F6F6462796500
|
|
; PASSIVE-SEPARATE-NEXT: - SectionOffset: 35
|
|
; PASSIVE-SEPARATE-NEXT: InitFlags: 1
|
|
; PASSIVE-SEPARATE-NEXT: Content: '776861746576657200'
|
|
; PASSIVE-SEPARATE-NEXT: - SectionOffset: 46
|
|
; PASSIVE-SEPARATE-NEXT: InitFlags: 1
|
|
; PASSIVE-SEPARATE-NEXT: Content: 2A000000
|
|
; PASSIVE-SEPARATE-NEXT: - Type: CUSTOM
|
|
; PASSIVE-SEPARATE-NEXT: Name: name
|
|
; PASSIVE-SEPARATE-NEXT: FunctionNames:
|
|
; PASSIVE-SEPARATE-NEXT: - Index: 0
|
|
; PASSIVE-SEPARATE-NEXT: Name: __wasm_call_ctors
|
|
; PASSIVE-SEPARATE-NEXT: - Index: 1
|
|
; PASSIVE-SEPARATE-NEXT: Name: __wasm_init_tls
|
|
; PASSIVE-SEPARATE-NEXT: - Index: 2
|
|
; PASSIVE-SEPARATE-NEXT: Name: __wasm_init_memory
|