[WebAssembly] Update MC for bulk memory
Summary:
Rename MemoryIndex to InitFlags and implement logic for determining
data segment layout in ObjectYAML and MC. Also adds a "passive" flag
for the .section assembler directive although this cannot be assembled
yet because the assembler does not support data sections.
Reviewers: sbc100, aardappel, aheejin, dschuff
Subscribers: jgravelle-google, hiraditya, sunfish, rupprecht, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D57938
git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@354397 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/wasm/call-indirect.ll b/test/wasm/call-indirect.ll
index 7f8fe47..83ee60c 100644
--- a/test/wasm/call-indirect.ll
+++ b/test/wasm/call-indirect.ll
@@ -154,7 +154,7 @@
; CHECK-NEXT: - Type: DATA
; CHECK-NEXT: Segments:
; CHECK-NEXT: - SectionOffset: 7
-; CHECK-NEXT: MemoryIndex: 0
+; CHECK-NEXT: InitFlags: 0
; CHECK-NEXT: Offset:
; CHECK-NEXT: Opcode: I32_CONST
; CHECK-NEXT: Value: 1024
diff --git a/test/wasm/comdats.ll b/test/wasm/comdats.ll
index 9baea22..2251ccf 100644
--- a/test/wasm/comdats.ll
+++ b/test/wasm/comdats.ll
@@ -92,7 +92,7 @@
; CHECK-NEXT: - Type: DATA
; CHECK-NEXT: Segments:
; CHECK-NEXT: - SectionOffset: 7
-; CHECK-NEXT: MemoryIndex: 0
+; CHECK-NEXT: InitFlags: 0
; CHECK-NEXT: Offset:
; CHECK-NEXT: Opcode: I32_CONST
; CHECK-NEXT: Value: 1024
diff --git a/test/wasm/data-layout.ll b/test/wasm/data-layout.ll
index 2edbec6..4feaf8c 100644
--- a/test/wasm/data-layout.ll
+++ b/test/wasm/data-layout.ll
@@ -37,20 +37,20 @@
; CHECK: - Type: DATA
; CHECK-NEXT: Segments:
; CHECK-NEXT: - SectionOffset: 7
-; CHECK-NEXT: MemoryIndex: 0
+; CHECK-NEXT: InitFlags: 0
; CHECK-NEXT: Offset:
; CHECK-NEXT: Opcode: I32_CONST
; CHECK-NEXT: Value: 1024
; CHECK-NEXT: Content: '0100000000000000000000000000000003000000000000002804000024040000'
; CHECK-NEXT: - SectionOffset: 45
-; CHECK-NEXT: MemoryIndex: 0
+; CHECK-NEXT: InitFlags: 0
; CHECK-NEXT: Offset:
; CHECK-NEXT: Opcode: I32_CONST
; CHECK-NEXT: Value: 1056
; CHECK-NEXT: Content: '0000000000000000'
; CHECK-NEXT: - SectionOffset: 59
-; CHECK-NEXT: MemoryIndex: 0
-; CHECK-NEXT: Offset:
+; CHECK-NEXT: InitFlags: 0
+; CHECK-NEXT: Offset:
; CHECK-NEXT: Opcode: I32_CONST
; CHECK-NEXT: Value: 1064
; CHECK-NEXT: Content: 68656C6C6F0A00
@@ -93,37 +93,37 @@
; RELOC-NEXT: Addend: 4
; RELOC-NEXT: Segments:
; RELOC-NEXT: - SectionOffset: 6
-; RELOC-NEXT: MemoryIndex: 0
+; RELOC-NEXT: InitFlags: 0
; RELOC-NEXT: Offset:
; RELOC-NEXT: Opcode: I32_CONST
; RELOC-NEXT: Value: 0
; RELOC-NEXT: Content: '01000000'
; RELOC-NEXT: - SectionOffset: 15
-; RELOC-NEXT: MemoryIndex: 0
+; RELOC-NEXT: InitFlags: 0
; RELOC-NEXT: Offset:
; RELOC-NEXT: Opcode: I32_CONST
; RELOC-NEXT: Value: 16
; RELOC-NEXT: Content: '03000000'
; RELOC-NEXT: - SectionOffset: 24
-; RELOC-NEXT: MemoryIndex: 0
+; RELOC-NEXT: InitFlags: 0
; RELOC-NEXT: Offset:
; RELOC-NEXT: Opcode: I32_CONST
; RELOC-NEXT: Value: 24
; RELOC-NEXT: Content: '28000000'
; RELOC-NEXT: - SectionOffset: 33
-; RELOC-NEXT: MemoryIndex: 0
-; RELOC-NEXT: Offset:
+; RELOC-NEXT: InitFlags: 0
+; RELOC-NEXT: Offset:
; RELOC-NEXT: Opcode: I32_CONST
; RELOC-NEXT: Value: 28
; RELOC-NEXT: Content: '0000000000000000'
; RELOC-NEXT: - SectionOffset: 46
-; RELOC-NEXT: MemoryIndex: 0
-; RELOC-NEXT: Offset:
+; RELOC-NEXT: InitFlags: 0
+; RELOC-NEXT: Offset:
; RELOC-NEXT: Opcode: I32_CONST
; RELOC-NEXT: Value: 36
; RELOC-NEXT: Content: '20000000'
; RELOC-NEXT: - SectionOffset: 55
-; RELOC-NEXT: MemoryIndex: 0
+; RELOC-NEXT: InitFlags: 0
; RELOC-NEXT: Offset:
; RELOC-NEXT: Opcode: I32_CONST
; RELOC-NEXT: Value: 40
diff --git a/test/wasm/gc-sections.ll b/test/wasm/gc-sections.ll
index 57b6973..a810da6 100644
--- a/test/wasm/gc-sections.ll
+++ b/test/wasm/gc-sections.ll
@@ -66,8 +66,8 @@
; CHECK: - Type: DATA
; CHECK-NEXT: Segments:
; CHECK-NEXT: - SectionOffset: 7
-; CHECK-NEXT: MemoryIndex: 0
-; CHECK-NEXT: Offset:
+; CHECK-NEXT: InitFlags: 0
+; CHECK-NEXT: Offset:
; CHECK-NEXT: Opcode: I32_CONST
; CHECK-NEXT: Value: 1024
; CHECK-NEXT: Content: '02000000'
@@ -129,8 +129,8 @@
; NO-GC: - Type: DATA
; NO-GC-NEXT: Segments:
; NO-GC-NEXT: - SectionOffset: 7
-; NO-GC-NEXT: MemoryIndex: 0
-; NO-GC-NEXT: Offset:
+; NO-GC-NEXT: InitFlags: 0
+; NO-GC-NEXT: Offset:
; NO-GC-NEXT: Opcode: I32_CONST
; NO-GC-NEXT: Value: 1024
; NO-GC-NEXT: Content: '010000000000000002000000'
diff --git a/test/wasm/init-fini.ll b/test/wasm/init-fini.ll
index b17020b..f0d6092 100644
--- a/test/wasm/init-fini.ll
+++ b/test/wasm/init-fini.ll
@@ -1,5 +1,5 @@
-; RUN: llc -filetype=obj -o %t.o %s
-; RUN: llc -filetype=obj %S/Inputs/global-ctor-dtor.ll -o %t.global-ctor-dtor.o
+; RUN: llc -filetype=obj -thread-model=single -o %t.o %s
+; RUN: llc -filetype=obj -thread-model=single %S/Inputs/global-ctor-dtor.ll -o %t.global-ctor-dtor.o
target triple = "wasm32-unknown-unknown"
diff --git a/test/wasm/local-symbols.ll b/test/wasm/local-symbols.ll
index dd92b4e..b0348b8 100644
--- a/test/wasm/local-symbols.ll
+++ b/test/wasm/local-symbols.ll
@@ -101,7 +101,7 @@
; CHECK-NEXT: - Type: DATA
; CHECK-NEXT: Segments:
; CHECK-NEXT: - SectionOffset: 7
-; CHECK-NEXT: MemoryIndex: 0
+; CHECK-NEXT: InitFlags: 0
; CHECK-NEXT: Offset:
; CHECK-NEXT: Opcode: I32_CONST
; CHECK-NEXT: Value: 1024
diff --git a/test/wasm/locals-duplicate.test b/test/wasm/locals-duplicate.test
index 34a5cad..47d3127 100644
--- a/test/wasm/locals-duplicate.test
+++ b/test/wasm/locals-duplicate.test
@@ -187,7 +187,7 @@
; CHECK-NEXT: - Type: DATA
; CHECK-NEXT: Segments:
; CHECK-NEXT: - SectionOffset: 7
-; CHECK-NEXT: MemoryIndex: 0
+; CHECK-NEXT: InitFlags: 0
; CHECK-NEXT: Offset:
; CHECK-NEXT: Opcode: I32_CONST
; CHECK-NEXT: Value: 1024
@@ -363,19 +363,19 @@
; RELOC-NEXT: - Type: DATA
; RELOC-NEXT: Segments:
; RELOC-NEXT: - SectionOffset: 6
-; RELOC-NEXT: MemoryIndex: 0
+; RELOC-NEXT: InitFlags: 0
; RELOC-NEXT: Offset:
; RELOC-NEXT: Opcode: I32_CONST
; RELOC-NEXT: Value: 0
; RELOC-NEXT: Content: '0000000000000000'
; RELOC-NEXT: - SectionOffset: 19
-; RELOC-NEXT: MemoryIndex: 0
+; RELOC-NEXT: InitFlags: 0
; RELOC-NEXT: Offset:
; RELOC-NEXT: Opcode: I32_CONST
; RELOC-NEXT: Value: 8
; RELOC-NEXT: Content: '0000000000000000'
; RELOC-NEXT: - SectionOffset: 32
-; RELOC-NEXT: MemoryIndex: 0
+; RELOC-NEXT: InitFlags: 0
; RELOC-NEXT: Offset:
; RELOC-NEXT: Opcode: I32_CONST
; RELOC-NEXT: Value: 16
diff --git a/test/wasm/lto/used.ll b/test/wasm/lto/used.ll
index 8bf8403..953b48f 100644
--- a/test/wasm/lto/used.ll
+++ b/test/wasm/lto/used.ll
@@ -28,7 +28,7 @@
; CHECK: - Type: DATA
; CHECK-NEXT: Segments:
; CHECK-NEXT: - SectionOffset: 7
-; CHECK-NEXT: MemoryIndex: 0
+; CHECK-NEXT: InitFlags: 0
; CHECK-NEXT: Offset:
; CHECK-NEXT: Opcode: I32_CONST
; CHECK-NEXT: Value: 1024
diff --git a/test/wasm/many-functions.ll b/test/wasm/many-functions.ll
index 2e1bbaf..9ecb38d 100644
--- a/test/wasm/many-functions.ll
+++ b/test/wasm/many-functions.ll
@@ -802,13 +802,13 @@
; CHECK-NEXT: - Type: DATA
; CHECK-NEXT: Segments:
; CHECK-NEXT: - SectionOffset: 6
-; CHECK-NEXT: MemoryIndex: 0
+; CHECK-NEXT: InitFlags: 0
; CHECK-NEXT: Offset:
; CHECK-NEXT: Opcode: I32_CONST
; CHECK-NEXT: Value: 0
; CHECK-NEXT: Content: '01000000'
; CHECK-NEXT: - SectionOffset: 15
-; CHECK-NEXT: MemoryIndex: 0
+; CHECK-NEXT: InitFlags: 0
; CHECK-NEXT: Offset:
; CHECK-NEXT: Opcode: I32_CONST
; CHECK-NEXT: Value: 4
diff --git a/test/wasm/relocatable.ll b/test/wasm/relocatable.ll
index ab2d37b..67f8ac0 100644
--- a/test/wasm/relocatable.ll
+++ b/test/wasm/relocatable.ll
@@ -120,37 +120,37 @@
; CHECK-NEXT: Offset: 0x0000002D
; CHECK-NEXT: Segments:
; CHECK-NEXT: - SectionOffset: 6
-; CHECK-NEXT: MemoryIndex: 0
+; CHECK-NEXT: InitFlags: 0
; CHECK-NEXT: Offset:
; CHECK-NEXT: Opcode: I32_CONST
; CHECK-NEXT: Value: 0
; CHECK-NEXT: Content: 68656C6C6F0A00
; CHECK-NEXT: - SectionOffset: 18
-; CHECK-NEXT: MemoryIndex: 0
+; CHECK-NEXT: InitFlags: 0
; CHECK-NEXT: Offset:
; CHECK-NEXT: Opcode: I32_CONST
; CHECK-NEXT: Value: 8
; CHECK-NEXT: Content: '01000000'
; CHECK-NEXT: - SectionOffset: 27
-; CHECK-NEXT: MemoryIndex: 0
+; CHECK-NEXT: InitFlags: 0
; CHECK-NEXT: Offset:
; CHECK-NEXT: Opcode: I32_CONST
; CHECK-NEXT: Value: 12
; CHECK-NEXT: Content: '02000000'
; CHECK-NEXT: - SectionOffset: 36
-; CHECK-NEXT: MemoryIndex: 0
+; CHECK-NEXT: InitFlags: 0
; CHECK-NEXT: Offset:
; CHECK-NEXT: Opcode: I32_CONST
; CHECK-NEXT: Value: 16
; CHECK-NEXT: Content: '03000000'
; CHECK-NEXT: - SectionOffset: 45
-; CHECK-NEXT: MemoryIndex: 0
+; CHECK-NEXT: InitFlags: 0
; CHECK-NEXT: Offset:
; CHECK-NEXT: Opcode: I32_CONST
; CHECK-NEXT: Value: 24
; CHECK-NEXT: Content: '00000000'
; CHECK-NEXT: - SectionOffset: 54
-; CHECK-NEXT: MemoryIndex: 0
+; CHECK-NEXT: InitFlags: 0
; CHECK-NEXT: Offset:
; CHECK-NEXT: Opcode: I32_CONST
; CHECK-NEXT: Value: 28
diff --git a/test/wasm/shared.ll b/test/wasm/shared.ll
index f3abd11..e3488aa 100644
--- a/test/wasm/shared.ll
+++ b/test/wasm/shared.ll
@@ -75,7 +75,7 @@
; CHECK: - Type: DATA
; CHECK-NEXT: Segments:
; CHECK-NEXT: - SectionOffset: 6
-; CHECK-NEXT: MemoryIndex: 0
+; CHECK-NEXT: InitFlags: 0
; CHECK-NEXT: Offset:
; CHECK-NEXT: Opcode: GLOBAL_GET
; CHECK-NEXT: Index: 1
diff --git a/test/wasm/weak-symbols.ll b/test/wasm/weak-symbols.ll
index 41ade7c..2fc72a2 100644
--- a/test/wasm/weak-symbols.ll
+++ b/test/wasm/weak-symbols.ll
@@ -118,7 +118,7 @@
; CHECK-NEXT: - Type: DATA
; CHECK-NEXT: Segments:
; CHECK-NEXT: - SectionOffset: 7
-; CHECK-NEXT: MemoryIndex: 0
+; CHECK-NEXT: InitFlags: 0
; CHECK-NEXT: Offset:
; CHECK-NEXT: Opcode: I32_CONST
; CHECK-NEXT: Value: 1024