[lld] e3e3d6e - [lld][WebAssembly] Convert a objyaml-using test to assembly
Sam Clegg via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 11 14:50:43 PDT 2020
Author: Sam Clegg
Date: 2020-09-11T14:48:37-07:00
New Revision: e3e3d6eecfa5003bf431d8223bcc968e2ce291c8
URL: https://github.com/llvm/llvm-project/commit/e3e3d6eecfa5003bf431d8223bcc968e2ce291c8
DIFF: https://github.com/llvm/llvm-project/commit/e3e3d6eecfa5003bf431d8223bcc968e2ce291c8.diff
LOG: [lld][WebAssembly] Convert a objyaml-using test to assembly
Differential Revision: https://reviews.llvm.org/D87536
Added:
lld/test/wasm/Inputs/undefined-globals.s
lld/test/wasm/gc-imports.s
Modified:
Removed:
lld/test/wasm/Inputs/undefined-globals.yaml
lld/test/wasm/gc-imports.ll
################################################################################
diff --git a/lld/test/wasm/Inputs/undefined-globals.s b/lld/test/wasm/Inputs/undefined-globals.s
new file mode 100644
index 000000000000..607d7942d003
--- /dev/null
+++ b/lld/test/wasm/Inputs/undefined-globals.s
@@ -0,0 +1,11 @@
+.globl use_undef_global
+.globl unused_undef_global
+.globl used_undef_global
+
+use_undef_global:
+ .functype use_undef_global () -> (i64)
+ global.get used_undef_global
+ end_function
+
+.globaltype unused_undef_global, i64
+.globaltype used_undef_global, i64
diff --git a/lld/test/wasm/Inputs/undefined-globals.yaml b/lld/test/wasm/Inputs/undefined-globals.yaml
deleted file mode 100644
index 41bc64356400..000000000000
--- a/lld/test/wasm/Inputs/undefined-globals.yaml
+++ /dev/null
@@ -1,53 +0,0 @@
---- !WASM
-FileHeader:
- Version: 0x00000001
-Sections:
- - Type: TYPE
- Signatures:
- - Index: 0
- ParamTypes:
- ReturnTypes:
- - I64
- - Type: IMPORT
- Imports:
- - Module: env
- Field: unused_undef_global
- Kind: GLOBAL
- GlobalType: I64
- GlobalMutable: true
- - Module: env
- Field: used_undef_global
- Kind: GLOBAL
- GlobalType: I64
- GlobalMutable: true
- - Type: FUNCTION
- FunctionTypes: [ 0 ]
- - Type: CODE
- Functions:
- - Index: 0
- Locals:
- Body: 2381808080000B
- Relocations:
- - Type: R_WASM_GLOBAL_INDEX_LEB
- Index: 1
- Offset: 0x00000004
- - Type: CUSTOM
- Name: linking
- Version: 2
- SymbolTable:
- - Index: 0
- Kind: GLOBAL
- Name: unused_undef_global
- Flags: [ VISIBILITY_HIDDEN, UNDEFINED ]
- Global: 0
- - Index: 1
- Kind: GLOBAL
- Name: used_undef_global
- Flags: [ VISIBILITY_HIDDEN, UNDEFINED ]
- Global: 1
- - Index: 2
- Kind: FUNCTION
- Name: use_undef_global
- Flags: [ VISIBILITY_HIDDEN ]
- Function: 0
-...
diff --git a/lld/test/wasm/gc-imports.ll b/lld/test/wasm/gc-imports.ll
deleted file mode 100644
index 68d403765916..000000000000
--- a/lld/test/wasm/gc-imports.ll
+++ /dev/null
@@ -1,91 +0,0 @@
-; RUN: llc -filetype=obj %s -o %t.o
-; RUN: yaml2obj %S/Inputs/undefined-globals.yaml -o %t_globals.o
-; RUN: wasm-ld --allow-undefined -o %t1.wasm %t.o %t_globals.o
-
-target triple = "wasm32-unknown-unknown"
-
-declare i64 @unused_undef_function(i64 %arg)
-
-declare i32 @used_undef_function()
-
-declare i64 @use_undef_global()
-
-define hidden void @foo() {
-entry:
- call i64 @unused_undef_function(i64 0)
- ret void
-}
-
-define hidden void @_start() {
-entry:
- call i32 @used_undef_function()
- call i64 @use_undef_global()
- ret void
-}
-
-; RUN: obj2yaml %t1.wasm | FileCheck %s
-
-; CHECK: - Type: IMPORT
-; CHECK-NEXT: Imports:
-; CHECK-NEXT: - Module: env
-; CHECK-NEXT: Field: used_undef_function
-; CHECK-NEXT: Kind: FUNCTION
-; CHECK-NEXT: SigIndex: 0
-; CHECK-NEXT: - Module: env
-; CHECK-NEXT: Field: used_undef_global
-; CHECK-NEXT: Kind: GLOBAL
-; CHECK-NEXT: GlobalType: I64
-; CHECK-NEXT: GlobalMutable: true
-; CHECK-NEXT: - Type:
-; CHECK: - Type: CUSTOM
-; CHECK-NEXT: Name: name
-; CHECK-NEXT: FunctionNames:
-; CHECK-NEXT: - Index: 0
-; CHECK-NEXT: Name: used_undef_function
-; CHECK-NEXT: - Index: 1
-; CHECK-NEXT: Name: _start
-; CHECK-NEXT: - Index: 2
-; CHECK-NEXT: Name: use_undef_global
-; CHECK-NEXT: ...
-
-; RUN: wasm-ld --no-gc-sections --allow-undefined \
-; RUN: -o %t1.no-gc.wasm %t.o %t_globals.o
-; RUN: obj2yaml %t1.no-gc.wasm | FileCheck %s -check-prefix=NO-GC
-
-; NO-GC: - Type: IMPORT
-; NO-GC-NEXT: Imports:
-; NO-GC-NEXT: - Module: env
-; NO-GC-NEXT: Field: unused_undef_function
-; NO-GC-NEXT: Kind: FUNCTION
-; NO-GC-NEXT: SigIndex: 0
-; NO-GC-NEXT: - Module: env
-; NO-GC-NEXT: Field: used_undef_function
-; NO-GC-NEXT: Kind: FUNCTION
-; NO-GC-NEXT: SigIndex: 1
-; NO-GC-NEXT: - Module: env
-; NO-GC-NEXT: Field: unused_undef_global
-; NO-GC-NEXT: Kind: GLOBAL
-; NO-GC-NEXT: GlobalType: I64
-; NO-GC-NEXT: GlobalMutable: true
-; NO-GC-NEXT: - Module: env
-; NO-GC-NEXT: Field: used_undef_global
-; NO-GC-NEXT: Kind: GLOBAL
-; NO-GC-NEXT: GlobalType: I64
-; NO-GC-NEXT: GlobalMutable: true
-; NO-GC-NEXT: - Type:
-; NO-GC: - Type: CUSTOM
-; NO-GC-NEXT: Name: name
-; NO-GC-NEXT: FunctionNames:
-; NO-GC-NEXT: - Index: 0
-; NO-GC-NEXT: Name: unused_undef_function
-; NO-GC-NEXT: - Index: 1
-; NO-GC-NEXT: Name: used_undef_function
-; NO-GC-NEXT: - Index: 2
-; NO-GC-NEXT: Name: __wasm_call_ctors
-; NO-GC-NEXT: - Index: 3
-; NO-GC-NEXT: Name: foo
-; NO-GC-NEXT: - Index: 4
-; NO-GC-NEXT: Name: _start
-; NO-GC-NEXT: - Index: 5
-; NO-GC-NEXT: Name: use_undef_global
-; NO-GC-NEXT: ...
diff --git a/lld/test/wasm/gc-imports.s b/lld/test/wasm/gc-imports.s
new file mode 100644
index 000000000000..6564b5c1a7d8
--- /dev/null
+++ b/lld/test/wasm/gc-imports.s
@@ -0,0 +1,87 @@
+# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %s -o %t.o
+# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %S/Inputs/undefined-globals.s -o %t_globals.o
+# RUN: wasm-ld --allow-undefined -o %t1.wasm %t.o %t_globals.o
+
+.functype unused_undef_function (i64) -> (i64)
+.functype used_undef_function () -> (i32)
+.functype use_undef_global () -> (i64)
+
+foo:
+ .functype foo () -> ()
+ call unused_undef_function
+ end_function
+
+.globl _start
+
+_start:
+ .functype _start () -> ()
+ call used_undef_function
+ call use_undef_global
+ end_function
+
+# RUN: obj2yaml %t1.wasm | FileCheck %s
+
+# CHECK: - Type: IMPORT
+# CHECK-NEXT: Imports:
+# CHECK-NEXT: - Module: env
+# CHECK-NEXT: Field: used_undef_function
+# CHECK-NEXT: Kind: FUNCTION
+# CHECK-NEXT: SigIndex: 0
+# CHECK-NEXT: - Module: env
+# CHECK-NEXT: Field: used_undef_global
+# CHECK-NEXT: Kind: GLOBAL
+# CHECK-NEXT: GlobalType: I64
+# CHECK-NEXT: GlobalMutable: true
+# CHECK-NEXT: - Type:
+# CHECK: - Type: CUSTOM
+# CHECK-NEXT: Name: name
+# CHECK-NEXT: FunctionNames:
+# CHECK-NEXT: - Index: 0
+# CHECK-NEXT: Name: used_undef_function
+# CHECK-NEXT: - Index: 1
+# CHECK-NEXT: Name: _start
+# CHECK-NEXT: - Index: 2
+# CHECK-NEXT: Name: use_undef_global
+# CHECK-NEXT: ...
+
+# RUN: wasm-ld --no-gc-sections --allow-undefined \
+# RUN: -o %t1.no-gc.wasm %t.o %t_globals.o
+# RUN: obj2yaml %t1.no-gc.wasm | FileCheck %s -check-prefix=NO-GC
+
+# NO-GC: - Type: IMPORT
+# NO-GC-NEXT: Imports:
+# NO-GC-NEXT: - Module: env
+# NO-GC-NEXT: Field: unused_undef_function
+# NO-GC-NEXT: Kind: FUNCTION
+# NO-GC-NEXT: SigIndex: 0
+# NO-GC-NEXT: - Module: env
+# NO-GC-NEXT: Field: used_undef_function
+# NO-GC-NEXT: Kind: FUNCTION
+# NO-GC-NEXT: SigIndex: 1
+# NO-GC-NEXT: - Module: env
+# NO-GC-NEXT: Field: unused_undef_global
+# NO-GC-NEXT: Kind: GLOBAL
+# NO-GC-NEXT: GlobalType: I64
+# NO-GC-NEXT: GlobalMutable: true
+# NO-GC-NEXT: - Module: env
+# NO-GC-NEXT: Field: used_undef_global
+# NO-GC-NEXT: Kind: GLOBAL
+# NO-GC-NEXT: GlobalType: I64
+# NO-GC-NEXT: GlobalMutable: true
+# NO-GC-NEXT: - Type:
+# NO-GC: - Type: CUSTOM
+# NO-GC-NEXT: Name: name
+# NO-GC-NEXT: FunctionNames:
+# NO-GC-NEXT: - Index: 0
+# NO-GC-NEXT: Name: unused_undef_function
+# NO-GC-NEXT: - Index: 1
+# NO-GC-NEXT: Name: used_undef_function
+# NO-GC-NEXT: - Index: 2
+# NO-GC-NEXT: Name: __wasm_call_ctors
+# NO-GC-NEXT: - Index: 3
+# NO-GC-NEXT: Name: foo
+# NO-GC-NEXT: - Index: 4
+# NO-GC-NEXT: Name: _start
+# NO-GC-NEXT: - Index: 5
+# NO-GC-NEXT: Name: use_undef_global
+# NO-GC-NEXT: ...
More information about the llvm-commits
mailing list