Commit 9a72d3e3 authored by Sam Clegg's avatar Sam Clegg
Browse files

[WebAssembly] Add support for named data sections in wasm binaries

Followup to https://reviews.llvm.org/D91769 which added support
for names globals.

Differential Revision: https://reviews.llvm.org/D92909
parent 55ea639d
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -156,4 +156,7 @@ define void @call_ptr(i64 (i64)* %arg) {
; CHECK-NEXT:     GlobalNames:
; CHECK-NEXT:       - Index:           0
; CHECK-NEXT:         Name:            __stack_pointer
; CHECK-NEXT:     DataSegmentNames:
; CHECK-NEXT:       - Index:           0
; CHECK-NEXT:         Name:            .data
; CHECK-NEXT: ...
+6 −2
Original line number Diff line number Diff line
@@ -31,7 +31,9 @@
; MERGE-NEXT:    GlobalNames:
; MERGE-NEXT:      - Index:           0
; MERGE-NEXT:        Name:            __stack_pointer
; MERGE-NOT:       - Index:
; 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
@@ -71,7 +73,9 @@
; SEPARATE-NEXT:    GlobalNames:
; SEPARATE-NEXT:      - Index:           0
; SEPARATE-NEXT:        Name:            __stack_pointer
; SEPARATE-NOT:       - Index:
; 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
+6 −0
Original line number Diff line number Diff line
@@ -87,6 +87,9 @@ entry:
; CHECK-NEXT:         Name:            __stack_pointer
; CHECK-NEXT:       - Index:           1
; CHECK-NEXT:         Name:            used_global
; CHECK-NEXT:     DataSegmentNames:
; CHECK-NEXT:       - Index:           0
; CHECK-NEXT:         Name:            .data
; CHECK-NEXT: ...

; RUN: wasm-ld -print-gc-sections --no-gc-sections -o %t1.no-gc.wasm \
@@ -162,6 +165,9 @@ entry:
; NO-GC-NEXT:         Name:            unused_global
; NO-GC-NEXT:       - Index:           2
; NO-GC-NEXT:         Name:            used_global
; NO-GC-NEXT:     DataSegmentNames:
; NO-GC-NEXT:       - Index:           0
; NO-GC-NEXT:         Name:            .data
; NO-GC-NEXT: ...

; RUN: not wasm-ld --gc-sections --relocatable -o %t1.no-gc.wasm %t.o 2>&1 | FileCheck %s -check-prefix=CHECK-ERROR
+3 −0
Original line number Diff line number Diff line
@@ -97,4 +97,7 @@ entry:
; CHECK-NEXT:     GlobalNames:
; CHECK-NEXT:       - Index:           0
; CHECK-NEXT:         Name:            __stack_pointer
; CHECK-NEXT:     DataSegmentNames:
; CHECK-NEXT:       - Index:           0
; CHECK-NEXT:         Name:            .data
; CHECK-NEXT: ...
+10 −0
Original line number Diff line number Diff line
@@ -212,6 +212,9 @@
; CHECK-NEXT:     GlobalNames:
; CHECK-NEXT:       - Index:           0
; CHECK-NEXT:         Name:            __stack_pointer
; CHECK-NEXT:     DataSegmentNames:
; CHECK-NEXT:       - Index:           0
; CHECK-NEXT:         Name:            .data
; CHECK-NEXT: ...


@@ -546,4 +549,11 @@
; RELOC-NEXT:         Name:            get_func2B
; RELOC-NEXT:       - Index:           17
; RELOC-NEXT:         Name:            get_func3B
; RELOC-NEXT:     DataSegmentNames:
; RELOC-NEXT:       - Index:           0
; RELOC-NEXT:         Name:            .data.colliding_global1
; RELOC-NEXT:       - Index:           1
; RELOC-NEXT:         Name:            .data.colliding_global2
; RELOC-NEXT:       - Index:           2
; RELOC-NEXT:         Name:            .data.colliding_global3
; RELOC-NEXT: ...
Loading