[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