[lld] r320172 - [WebAssembly] Improve wasm test cases

Sam Clegg via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 8 10:37:44 PST 2017


Author: sbc
Date: Fri Dec  8 10:37:44 2017
New Revision: 320172

URL: http://llvm.org/viewvc/llvm-project?rev=320172&view=rev
Log:
[WebAssembly] Improve wasm test cases

Add test for weakly defined symbols with the same name

Improve test for call-indirect to include the same call in two
different objects. This lays the ground work to improve the
output via de-duplicating the indirect call table:
   https://reviews.llvm.org/D40989

Also make all tests consistently pass -mtriple rather than
declaring in the sources.

Differential Revision: https://reviews.llvm.org/D41024

Added:
    lld/trunk/test/wasm/Inputs/weak-symbol1.ll
    lld/trunk/test/wasm/Inputs/weak-symbol2.ll
    lld/trunk/test/wasm/weak-symbols.ll
      - copied, changed from r320167, lld/trunk/test/wasm/call-indirect.ll
Modified:
    lld/trunk/test/wasm/Inputs/call-indirect.ll
    lld/trunk/test/wasm/Inputs/hello.ll
    lld/trunk/test/wasm/Inputs/hidden.ll
    lld/trunk/test/wasm/Inputs/many-funcs.ll
    lld/trunk/test/wasm/Inputs/ret32.ll
    lld/trunk/test/wasm/Inputs/ret64.ll
    lld/trunk/test/wasm/Inputs/weak-alias.ll
    lld/trunk/test/wasm/call-indirect.ll
    lld/trunk/test/wasm/conflict.test
    lld/trunk/test/wasm/data-layout.ll
    lld/trunk/test/wasm/entry.ll
    lld/trunk/test/wasm/function-imports-first.ll
    lld/trunk/test/wasm/function-imports.ll
    lld/trunk/test/wasm/function-index.test
    lld/trunk/test/wasm/import-memory.test
    lld/trunk/test/wasm/local-symbols.ll
    lld/trunk/test/wasm/many-functions.ll
    lld/trunk/test/wasm/relocatable.ll
    lld/trunk/test/wasm/signature-mismatch.ll
    lld/trunk/test/wasm/stack-pointer.ll
    lld/trunk/test/wasm/strip-debug.test
    lld/trunk/test/wasm/symbol-type-mismatch.ll
    lld/trunk/test/wasm/undefined-entry.test
    lld/trunk/test/wasm/undefined.ll
    lld/trunk/test/wasm/version.ll
    lld/trunk/test/wasm/visibility-hidden.ll

Modified: lld/trunk/test/wasm/Inputs/call-indirect.ll
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/wasm/Inputs/call-indirect.ll?rev=320172&r1=320171&r2=320172&view=diff
==============================================================================
--- lld/trunk/test/wasm/Inputs/call-indirect.ll (original)
+++ lld/trunk/test/wasm/Inputs/call-indirect.ll Fri Dec  8 10:37:44 2017
@@ -1,18 +1,17 @@
-target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
-target triple = "wasm32-unknown-unknown-wasm"
+ at indirect_bar = internal local_unnamed_addr global i32 ()* @bar, align 4
+ at indirect_foo = internal local_unnamed_addr global i32 ()* @foo, align 4
 
- at indirect_bar = hidden local_unnamed_addr global i32 ()* @bar, align 4
+declare i32 @foo() local_unnamed_addr
 
-; Function Attrs: norecurse nounwind readnone
-define i32 @bar() #0 {
+define i32 @bar() {
 entry:
   ret i32 1
 }
 
-; Function Attrs: nounwind
 define void @call_bar_indirect() local_unnamed_addr #1 {
 entry:
   %0 = load i32 ()*, i32 ()** @indirect_bar, align 4
+  %1 = load i32 ()*, i32 ()** @indirect_foo, align 4
   %call = tail call i32 %0() #2
   ret void
 }

Modified: lld/trunk/test/wasm/Inputs/hello.ll
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/wasm/Inputs/hello.ll?rev=320172&r1=320171&r2=320172&view=diff
==============================================================================
--- lld/trunk/test/wasm/Inputs/hello.ll (original)
+++ lld/trunk/test/wasm/Inputs/hello.ll Fri Dec  8 10:37:44 2017
@@ -2,9 +2,6 @@
 ;   void puts(const char*);
 ;   void hello() { puts("hello\n"); }
 
-target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
-target triple = "wasm32-unknown-unknown-wasm"
-
 @hello_str = unnamed_addr constant [7 x i8] c"hello\0A\00", align 1
 
 ; Function Attrs: nounwind

Modified: lld/trunk/test/wasm/Inputs/hidden.ll
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/wasm/Inputs/hidden.ll?rev=320172&r1=320171&r2=320172&view=diff
==============================================================================
--- lld/trunk/test/wasm/Inputs/hidden.ll (original)
+++ lld/trunk/test/wasm/Inputs/hidden.ll Fri Dec  8 10:37:44 2017
@@ -1,6 +1,3 @@
-target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
-target triple = "wasm32-unknown-unknown-wasm"
-
 ; Function Attrs: norecurse nounwind readnone
 define hidden i32 @archiveHidden() #0 {
 entry:

Modified: lld/trunk/test/wasm/Inputs/many-funcs.ll
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/wasm/Inputs/many-funcs.ll?rev=320172&r1=320171&r2=320172&view=diff
==============================================================================
--- lld/trunk/test/wasm/Inputs/many-funcs.ll (original)
+++ lld/trunk/test/wasm/Inputs/many-funcs.ll Fri Dec  8 10:37:44 2017
@@ -1,6 +1,3 @@
-target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
-target triple = "wasm32-unknown-unknown-wasm"
-
 @g0 = global i32 1, align 4
 @foo = global i32 1, align 4
 

Modified: lld/trunk/test/wasm/Inputs/ret32.ll
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/wasm/Inputs/ret32.ll?rev=320172&r1=320171&r2=320172&view=diff
==============================================================================
--- lld/trunk/test/wasm/Inputs/ret32.ll (original)
+++ lld/trunk/test/wasm/Inputs/ret32.ll Fri Dec  8 10:37:44 2017
@@ -1,6 +1,3 @@
-target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
-target triple = "wasm32-unknown-unknown-wasm"
-
 ; Function Attrs: norecurse nounwind readnone
 define i32 @ret32(float %arg) #0 {
 entry:

Modified: lld/trunk/test/wasm/Inputs/ret64.ll
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/wasm/Inputs/ret64.ll?rev=320172&r1=320171&r2=320172&view=diff
==============================================================================
--- lld/trunk/test/wasm/Inputs/ret64.ll (original)
+++ lld/trunk/test/wasm/Inputs/ret64.ll Fri Dec  8 10:37:44 2017
@@ -1,6 +1,3 @@
-target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
-target triple = "wasm32-unknown-unknown-wasm"
-
 define i64 @ret64(double %arg) local_unnamed_addr #0 {
 entry:
     ret i64 1

Modified: lld/trunk/test/wasm/Inputs/weak-alias.ll
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/wasm/Inputs/weak-alias.ll?rev=320172&r1=320171&r2=320172&view=diff
==============================================================================
--- lld/trunk/test/wasm/Inputs/weak-alias.ll (original)
+++ lld/trunk/test/wasm/Inputs/weak-alias.ll Fri Dec  8 10:37:44 2017
@@ -1,3 +1,4 @@
+; Function Attrs: norecurse nounwind readnone
 define i32 @foo() #0 {
 entry:
   ret i32 0

Added: lld/trunk/test/wasm/Inputs/weak-symbol1.ll
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/wasm/Inputs/weak-symbol1.ll?rev=320172&view=auto
==============================================================================
--- lld/trunk/test/wasm/Inputs/weak-symbol1.ll (added)
+++ lld/trunk/test/wasm/Inputs/weak-symbol1.ll Fri Dec  8 10:37:44 2017
@@ -0,0 +1,9 @@
+define weak i32 @weakFn() #0 {
+entry:
+  ret i32 1
+}
+
+define i32 @exportWeak1() {
+entry:
+    ret i32 ptrtoint (i32 ()* @weakFn to i32)
+}

Added: lld/trunk/test/wasm/Inputs/weak-symbol2.ll
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/wasm/Inputs/weak-symbol2.ll?rev=320172&view=auto
==============================================================================
--- lld/trunk/test/wasm/Inputs/weak-symbol2.ll (added)
+++ lld/trunk/test/wasm/Inputs/weak-symbol2.ll Fri Dec  8 10:37:44 2017
@@ -0,0 +1,9 @@
+define weak i32 @weakFn() #0 {
+entry:
+  ret i32 2
+}
+
+define i32 @exportWeak2() {
+entry:
+    ret i32 ptrtoint (i32 ()* @weakFn to i32)
+}

Modified: lld/trunk/test/wasm/call-indirect.ll
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/wasm/call-indirect.ll?rev=320172&r1=320171&r2=320172&view=diff
==============================================================================
--- lld/trunk/test/wasm/call-indirect.ll (original)
+++ lld/trunk/test/wasm/call-indirect.ll Fri Dec  8 10:37:44 2017
@@ -1,5 +1,5 @@
-; RUN: llc -filetype=obj %p/Inputs/call-indirect.ll -o %t2.o
-; RUN: llc -filetype=obj %s -o %t.o
+; RUN: llc -filetype=obj -mtriple=wasm32-unknown-uknown-wasm %p/Inputs/call-indirect.ll -o %t2.o
+; RUN: llc -filetype=obj -mtriple=wasm32-unknown-uknown-wasm %s -o %t.o
 ; RUN: lld -flavor wasm -o %t.wasm %t2.o %t.o
 ; RUN: obj2yaml %t.wasm | FileCheck %s
 
@@ -8,9 +8,6 @@
 ; int (*indirect_func)(void) = &foo;
 ; void _start(void) { indirect_func(); }
 
-target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
-target triple = "wasm32-unknown-unknown-wasm"
-
 @indirect_func = local_unnamed_addr global i32 ()* @foo, align 4
 
 ; Function Attrs: norecurse nounwind readnone
@@ -46,8 +43,8 @@ entry:
 ; CHECK-NEXT:       - ElemType:        ANYFUNC
 ; CHECK-NEXT:         Limits:          
 ; CHECK-NEXT:           Flags:           0x00000001
-; CHECK-NEXT:           Initial:         0x00000003
-; CHECK-NEXT:           Maximum:         0x00000003
+; CHECK-NEXT:           Initial:         0x00000004
+; CHECK-NEXT:           Maximum:         0x00000004
 ; CHECK-NEXT:   - Type:            MEMORY
 ; CHECK-NEXT:     Memories:        
 ; CHECK-NEXT:       - Initial:         0x00000002
@@ -66,21 +63,21 @@ entry:
 ; CHECK-NEXT:       - Name:            _start
 ; CHECK-NEXT:         Kind:            FUNCTION
 ; CHECK-NEXT:         Index:           3
+; CHECK-NEXT:       - Name:            foo
+; CHECK-NEXT:         Kind:            FUNCTION
+; CHECK-NEXT:         Index:           2
 ; CHECK-NEXT:       - Name:            bar
 ; CHECK-NEXT:         Kind:            FUNCTION
 ; CHECK-NEXT:         Index:           0
 ; CHECK-NEXT:       - Name:            call_bar_indirect
 ; CHECK-NEXT:         Kind:            FUNCTION
 ; CHECK-NEXT:         Index:           1
-; CHECK-NEXT:       - Name:            foo
-; CHECK-NEXT:         Kind:            FUNCTION
-; CHECK-NEXT:         Index:           2
 ; CHECK:        - Type:            ELEM
 ; CHECK-NEXT:     Segments:        
 ; CHECK-NEXT:       - Offset:          
 ; CHECK-NEXT:           Opcode:          I32_CONST
 ; CHECK-NEXT:           Value:           1
-; CHECK-NEXT:         Functions:       [ 0, 2 ]
+; CHECK-NEXT:         Functions:       [ 0, 2, 2 ]
 ; CHECK-NEXT:   - Type:            CODE
 ; CHECK-NEXT:     Functions:       
 ; CHECK:            - Locals:          
@@ -93,10 +90,10 @@ entry:
 ; CHECK-NEXT:         Offset:          
 ; CHECK-NEXT:           Opcode:          I32_CONST
 ; CHECK-NEXT:           Value:           1024
-; CHECK-NEXT:         Content:         '0100000002000000'
+; CHECK-NEXT:         Content:         '010000000200000003000000'
 ; CHECK-NEXT:   - Type:            CUSTOM
 ; CHECK-NEXT:     Name:            linking
-; CHECK-NEXT:     DataSize:        8
+; CHECK-NEXT:     DataSize:        12
 ; CHECK-NEXT:   - Type:            CUSTOM
 ; CHECK-NEXT:     Name:            name
 ; CHECK-NEXT:     FunctionNames:   

Modified: lld/trunk/test/wasm/conflict.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/wasm/conflict.test?rev=320172&r1=320171&r2=320172&view=diff
==============================================================================
--- lld/trunk/test/wasm/conflict.test (original)
+++ lld/trunk/test/wasm/conflict.test Fri Dec  8 10:37:44 2017
@@ -1,4 +1,4 @@
-# RUN: llc -filetype=obj %p/Inputs/ret32.ll -o %t.ret32.o
+# RUN: llc -filetype=obj -mtriple=wasm32-unknown-uknown-wasm %p/Inputs/ret32.ll -o %t.ret32.o
 # RUN: not lld -flavor wasm -o %t.wasm %t.ret32.o %t.ret32.o 2>&1 | FileCheck %s
 
 # CHECK:      duplicate symbol: ret32

Modified: lld/trunk/test/wasm/data-layout.ll
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/wasm/data-layout.ll?rev=320172&r1=320171&r2=320172&view=diff
==============================================================================
--- lld/trunk/test/wasm/data-layout.ll (original)
+++ lld/trunk/test/wasm/data-layout.ll Fri Dec  8 10:37:44 2017
@@ -1,11 +1,8 @@
-; RUN: llc -filetype=obj %p/Inputs/hello.ll -o %t.hello.o
-; RUN: llc -filetype=obj %s -o %t.o
+; RUN: llc -filetype=obj -mtriple=wasm32-unknown-uknown-wasm %p/Inputs/hello.ll -o %t.hello.o
+; RUN: llc -filetype=obj -mtriple=wasm32-unknown-uknown-wasm %s -o %t.o
 ; RUN: lld -flavor wasm --emit-relocs --allow-undefined --no-entry -o %t.wasm %t.o %t.hello.o
 ; RUN: obj2yaml %t.wasm | FileCheck %s
 
-target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
-target triple = "wasm32-unknown-unknown-wasm"
-
 @foo = hidden global i32 1, align 4
 @aligned_bar = hidden global i32 3, align 16
 

Modified: lld/trunk/test/wasm/entry.ll
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/wasm/entry.ll?rev=320172&r1=320171&r2=320172&view=diff
==============================================================================
--- lld/trunk/test/wasm/entry.ll (original)
+++ lld/trunk/test/wasm/entry.ll Fri Dec  8 10:37:44 2017
@@ -1,12 +1,9 @@
-; RUN: llc -filetype=obj %s -o %t.o
+; RUN: llc -filetype=obj -mtriple=wasm32-unknown-uknown-wasm %s -o %t.o
 ; RUN: lld -flavor wasm -e entry -o %t.wasm %t.o
 ; RUN: obj2yaml %t.wasm | FileCheck %s
 ; RUN: lld -flavor wasm --entry=entry -o %t.wasm %t.o
 ; RUN: obj2yaml %t.wasm | FileCheck %s
 
-target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
-target triple = "wasm32-unknown-unknown-wasm"
-
 define void @entry() local_unnamed_addr #0 {
 entry:
   ret void

Modified: lld/trunk/test/wasm/function-imports-first.ll
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/wasm/function-imports-first.ll?rev=320172&r1=320171&r2=320172&view=diff
==============================================================================
--- lld/trunk/test/wasm/function-imports-first.ll (original)
+++ lld/trunk/test/wasm/function-imports-first.ll Fri Dec  8 10:37:44 2017
@@ -1,11 +1,8 @@
-; RUN: llc -filetype=obj %p/Inputs/ret32.ll -o %t.ret32.o
-; RUN: llc -filetype=obj %s -o %t.o
+; RUN: llc -filetype=obj -mtriple=wasm32-unknown-uknown-wasm %p/Inputs/ret32.ll -o %t.ret32.o
+; RUN: llc -filetype=obj -mtriple=wasm32-unknown-uknown-wasm %s -o %t.o
 ; RUN: lld -flavor wasm -o %t.wasm %t.o %t.ret32.o
 ; RUN: obj2yaml %t.wasm | FileCheck %s
 
-target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
-target triple = "wasm32-unknown-unknown-wasm"
-
 ; Function Attrs: nounwind
 define hidden void @_start() local_unnamed_addr #0 {
 entry:

Modified: lld/trunk/test/wasm/function-imports.ll
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/wasm/function-imports.ll?rev=320172&r1=320171&r2=320172&view=diff
==============================================================================
--- lld/trunk/test/wasm/function-imports.ll (original)
+++ lld/trunk/test/wasm/function-imports.ll Fri Dec  8 10:37:44 2017
@@ -1,11 +1,8 @@
-; RUN: llc -filetype=obj %p/Inputs/ret32.ll -o %t.ret32.o
-; RUN: llc -filetype=obj %s -o %t.o
+; RUN: llc -filetype=obj -mtriple=wasm32-unknown-uknown-wasm %p/Inputs/ret32.ll -o %t.ret32.o
+; RUN: llc -filetype=obj -mtriple=wasm32-unknown-uknown-wasm %s -o %t.o
 ; RUN: lld -flavor wasm -o %t.wasm %t.ret32.o %t.o
 ; RUN: obj2yaml %t.wasm | FileCheck %s
 
-target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
-target triple = "wasm32-unknown-unknown-wasm"
-
 ; Function Attrs: nounwind
 define hidden void @_start() local_unnamed_addr #0 {
 entry:

Modified: lld/trunk/test/wasm/function-index.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/wasm/function-index.test?rev=320172&r1=320171&r2=320172&view=diff
==============================================================================
--- lld/trunk/test/wasm/function-index.test (original)
+++ lld/trunk/test/wasm/function-index.test Fri Dec  8 10:37:44 2017
@@ -1,5 +1,5 @@
-# RUN: llc -filetype=obj %p/Inputs/ret32.ll -o %t.ret32.o
-# RUN: llc -filetype=obj %p/Inputs/ret64.ll -o %t.ret64.o
+# RUN: llc -filetype=obj -mtriple=wasm32-unknown-uknown-wasm %p/Inputs/ret32.ll -o %t.ret32.o
+# RUN: llc -filetype=obj -mtriple=wasm32-unknown-uknown-wasm %p/Inputs/ret64.ll -o %t.ret64.o
 # RUN: lld -flavor wasm -r -o %t.wasm %t.ret32.o %t.ret64.o
 # RUN: obj2yaml %t.wasm | FileCheck %s
 

Modified: lld/trunk/test/wasm/import-memory.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/wasm/import-memory.test?rev=320172&r1=320171&r2=320172&view=diff
==============================================================================
--- lld/trunk/test/wasm/import-memory.test (original)
+++ lld/trunk/test/wasm/import-memory.test Fri Dec  8 10:37:44 2017
@@ -1,4 +1,4 @@
-# RUN: llc -filetype=obj %p/Inputs/ret32.ll -o %t.ret32.o
+# RUN: llc -filetype=obj -mtriple=wasm32-unknown-uknown-wasm %p/Inputs/ret32.ll -o %t.ret32.o
 # RUN: lld -flavor wasm -entry ret32 --import-memory -o %t.wasm %t.ret32.o
 # RUN: obj2yaml %t.wasm | FileCheck %s
 

Modified: lld/trunk/test/wasm/local-symbols.ll
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/wasm/local-symbols.ll?rev=320172&r1=320171&r2=320172&view=diff
==============================================================================
--- lld/trunk/test/wasm/local-symbols.ll (original)
+++ lld/trunk/test/wasm/local-symbols.ll Fri Dec  8 10:37:44 2017
@@ -1,10 +1,7 @@
-; RUN: llc -filetype=obj %s -o %t.o
+; RUN: llc -filetype=obj -mtriple=wasm32-unknown-uknown-wasm %s -o %t.o
 ; RUN: lld -flavor wasm -o %t.wasm %t.o
 ; RUN: obj2yaml %t.wasm | FileCheck %s
 
-target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
-target triple = "wasm32-unknown-unknown-wasm"
-
 @foo = default global i32 1, align 4
 @bar = internal default global i32 3, align 4
 

Modified: lld/trunk/test/wasm/many-functions.ll
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/wasm/many-functions.ll?rev=320172&r1=320171&r2=320172&view=diff
==============================================================================
--- lld/trunk/test/wasm/many-functions.ll (original)
+++ lld/trunk/test/wasm/many-functions.ll Fri Dec  8 10:37:44 2017
@@ -1,5 +1,5 @@
-; RUN: llc -filetype=obj %p/Inputs/many-funcs.ll -o %t.many.o
-; RUN: llc -filetype=obj %s -o %t.o
+; RUN: llc -filetype=obj -mtriple=wasm32-unknown-uknown-wasm %p/Inputs/many-funcs.ll -o %t.many.o
+; RUN: llc -filetype=obj -mtriple=wasm32-unknown-uknown-wasm %s -o %t.o
 ; RUN: lld -flavor wasm -r -o %t.wasm %t.many.o %t.o
 ; RUN: obj2yaml %t.wasm | FileCheck %s
 
@@ -8,9 +8,6 @@
 ; 128 function and so the final output requires a 2-byte LEB in
 ; the CODE section header to store the function count.
 
-target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
-target triple = "wasm32-unknown-unknown-wasm"
-
 define i32 @func() {
 entry:
   %call = tail call i32 @func()

Modified: lld/trunk/test/wasm/relocatable.ll
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/wasm/relocatable.ll?rev=320172&r1=320171&r2=320172&view=diff
==============================================================================
--- lld/trunk/test/wasm/relocatable.ll (original)
+++ lld/trunk/test/wasm/relocatable.ll Fri Dec  8 10:37:44 2017
@@ -1,11 +1,8 @@
-; RUN: llc -filetype=obj %p/Inputs/hello.ll -o %t.hello.o
-; RUN: llc -filetype=obj %s -o %t.o
+; RUN: llc -filetype=obj -mtriple=wasm32-unknown-uknown-wasm %p/Inputs/hello.ll -o %t.hello.o
+; RUN: llc -filetype=obj -mtriple=wasm32-unknown-uknown-wasm %s -o %t.o
 ; RUN: lld -flavor wasm -r -o %t.wasm %t.hello.o %t.o
 ; RUN: obj2yaml %t.wasm | FileCheck %s
 
-target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
-target triple = "wasm32-unknown-unknown-wasm"
-
 ; Function Attrs: nounwind
 define hidden i32 @my_func() local_unnamed_addr {
 entry:

Modified: lld/trunk/test/wasm/signature-mismatch.ll
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/wasm/signature-mismatch.ll?rev=320172&r1=320171&r2=320172&view=diff
==============================================================================
--- lld/trunk/test/wasm/signature-mismatch.ll (original)
+++ lld/trunk/test/wasm/signature-mismatch.ll Fri Dec  8 10:37:44 2017
@@ -1,10 +1,7 @@
-; RUN: llc -filetype=obj %p/Inputs/ret32.ll -o %t.ret32.o
-; RUN: llc -filetype=obj %s -o %t.main.o
+; RUN: llc -filetype=obj -mtriple=wasm32-unknown-uknown-wasm %p/Inputs/ret32.ll -o %t.ret32.o
+; RUN: llc -filetype=obj -mtriple=wasm32-unknown-uknown-wasm %s -o %t.main.o
 ; RUN: not lld -flavor wasm --check-signatures -o %t.wasm %t.main.o %t.ret32.o 2>&1 | FileCheck %s
 
-target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
-target triple = "wasm32-unknown-unknown-wasm"
-
 ; Function Attrs: nounwind
 define hidden void @_start() local_unnamed_addr #0 {
 entry:

Modified: lld/trunk/test/wasm/stack-pointer.ll
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/wasm/stack-pointer.ll?rev=320172&r1=320171&r2=320172&view=diff
==============================================================================
--- lld/trunk/test/wasm/stack-pointer.ll (original)
+++ lld/trunk/test/wasm/stack-pointer.ll Fri Dec  8 10:37:44 2017
@@ -1,10 +1,7 @@
-; RUN: llc -filetype=obj %s -o %t.o
+; RUN: llc -filetype=obj -mtriple=wasm32-unknown-uknown-wasm %s -o %t.o
 ; RUN: lld -flavor wasm --emit-relocs -o %t.wasm %t.o
 ; RUN: obj2yaml %t.wasm | FileCheck %s
 
-target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
-target triple = "wasm32-unknown-unknown-wasm"
-
 ; Function Attrs: nounwind
 define hidden i32 @_start() local_unnamed_addr {
 entry:

Modified: lld/trunk/test/wasm/strip-debug.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/wasm/strip-debug.test?rev=320172&r1=320171&r2=320172&view=diff
==============================================================================
--- lld/trunk/test/wasm/strip-debug.test (original)
+++ lld/trunk/test/wasm/strip-debug.test Fri Dec  8 10:37:44 2017
@@ -1,4 +1,4 @@
-RUN: llc -filetype=obj %p/Inputs/ret32.ll -o %t.ret32.o
+RUN: llc -filetype=obj -mtriple=wasm32-unknown-uknown-wasm %p/Inputs/ret32.ll -o %t.ret32.o
 RUN: lld -flavor wasm --strip-debug --entry=ret32 -o %t.wasm %t.ret32.o
 RUN: obj2yaml %t.wasm | FileCheck %s
 

Modified: lld/trunk/test/wasm/symbol-type-mismatch.ll
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/wasm/symbol-type-mismatch.ll?rev=320172&r1=320171&r2=320172&view=diff
==============================================================================
--- lld/trunk/test/wasm/symbol-type-mismatch.ll (original)
+++ lld/trunk/test/wasm/symbol-type-mismatch.ll Fri Dec  8 10:37:44 2017
@@ -1,10 +1,7 @@
-; RUN: llc -filetype=obj %s -o %t.o
-; RUN: llc -filetype=obj %p/Inputs/ret32.ll -o %t.ret32.o
+; RUN: llc -filetype=obj -mtriple=wasm32-unknown-uknown-wasm %s -o %t.o
+; RUN: llc -filetype=obj -mtriple=wasm32-unknown-uknown-wasm %p/Inputs/ret32.ll -o %t.ret32.o
 ; RUN: not lld -flavor wasm -o %t.wasm %t.o %t.ret32.o 2>&1 | FileCheck %s
 
-target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
-target triple = "wasm32-unknown-unknown-wasm"
-
 @ret32 = extern_weak global i32, align 4
 
 ; CHECK: error: symbol type mismatch: ret32

Modified: lld/trunk/test/wasm/undefined-entry.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/wasm/undefined-entry.test?rev=320172&r1=320171&r2=320172&view=diff
==============================================================================
--- lld/trunk/test/wasm/undefined-entry.test (original)
+++ lld/trunk/test/wasm/undefined-entry.test Fri Dec  8 10:37:44 2017
@@ -1,4 +1,4 @@
-RUN: llc -filetype=obj %p/Inputs/ret32.ll -o %t.ret32.o
+RUN: llc -filetype=obj -mtriple=wasm32-unknown-uknown-wasm %p/Inputs/ret32.ll -o %t.ret32.o
 RUN: not lld -flavor wasm -o %t.wasm %t.ret32.o 2>&1 | FileCheck %s
 
 CHECK: error: undefined symbol: _start

Modified: lld/trunk/test/wasm/undefined.ll
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/wasm/undefined.ll?rev=320172&r1=320171&r2=320172&view=diff
==============================================================================
--- lld/trunk/test/wasm/undefined.ll (original)
+++ lld/trunk/test/wasm/undefined.ll Fri Dec  8 10:37:44 2017
@@ -1,4 +1,4 @@
-; RUN: llc -filetype=obj %s -o %t.o
+; RUN: llc -filetype=obj -mtriple=wasm32-unknown-uknown-wasm %s -o %t.o
 ; RUN: lld -flavor wasm --allow-undefined -o %t.wasm %t.o
 
 ; Fails due to undefined 'foo'
@@ -9,9 +9,6 @@
 ; RUN: echo 'foo' > %t.txt
 ; RUN: lld -flavor wasm --allow-undefined-file=%t.txt -o %t.wasm %t.o
 
-target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
-target triple = "wasm32-unknown-unknown-wasm"
-
 ; Takes the address of the external foo() resulting in undefined external
 @bar = hidden local_unnamed_addr global i8* bitcast (i32 ()* @foo to i8*), align 4
 

Modified: lld/trunk/test/wasm/version.ll
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/wasm/version.ll?rev=320172&r1=320171&r2=320172&view=diff
==============================================================================
--- lld/trunk/test/wasm/version.ll (original)
+++ lld/trunk/test/wasm/version.ll Fri Dec  8 10:37:44 2017
@@ -1,10 +1,7 @@
-; RUN: llc -filetype=obj %s -o %t.o
+; RUN: llc -filetype=obj -mtriple=wasm32-unknown-uknown-wasm %s -o %t.o
 ; RUN: lld -flavor wasm -o %t.wasm %t.o
 ; RUN: llvm-readobj -file-headers %t.wasm | FileCheck %s
 
-target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
-target triple = "wasm32-unknown-unknown-wasm"
-
 define hidden void @_start() local_unnamed_addr #0 {
 entry:
     ret void

Modified: lld/trunk/test/wasm/visibility-hidden.ll
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/wasm/visibility-hidden.ll?rev=320172&r1=320171&r2=320172&view=diff
==============================================================================
--- lld/trunk/test/wasm/visibility-hidden.ll (original)
+++ lld/trunk/test/wasm/visibility-hidden.ll Fri Dec  8 10:37:44 2017
@@ -1,4 +1,4 @@
-; RUN: llc -mtriple wasm32-unknown-unknown-wasm -filetype=obj -o %t.o %s
+; RUN: llc -mtriple=wasm32-unknown-unknown-wasm -filetype=obj -o %t.o %s
 ; RUN: llc -mtriple=wasm32-unknown-unknown-wasm -filetype=obj %S/Inputs/hidden.ll -o %t2.o
 ; RUN: llvm-ar rcs %t2.a %t2.o
 ; RUN: lld -flavor wasm %t.o %t2.a -o %t.wasm

Copied: lld/trunk/test/wasm/weak-symbols.ll (from r320167, lld/trunk/test/wasm/call-indirect.ll)
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/wasm/weak-symbols.ll?p2=lld/trunk/test/wasm/weak-symbols.ll&p1=lld/trunk/test/wasm/call-indirect.ll&r1=320167&r2=320172&rev=320172&view=diff
==============================================================================
--- lld/trunk/test/wasm/call-indirect.ll (original)
+++ lld/trunk/test/wasm/weak-symbols.ll Fri Dec  8 10:37:44 2017
@@ -1,46 +1,31 @@
-; RUN: llc -filetype=obj %p/Inputs/call-indirect.ll -o %t2.o
-; RUN: llc -filetype=obj %s -o %t.o
-; RUN: lld -flavor wasm -o %t.wasm %t2.o %t.o
+; RUN: llc -filetype=obj -mtriple=wasm32-unknown-uknown-wasm %p/Inputs/weak-symbol1.ll -o %t1.o
+; RUN: llc -filetype=obj -mtriple=wasm32-unknown-uknown-wasm %p/Inputs/weak-symbol2.ll -o %t2.o
+; RUN: llc -filetype=obj -mtriple=wasm32-unknown-uknown-wasm %s -o %t.o
+; RUN: lld -flavor wasm -o %t.wasm %t.o %t1.o %t2.o
 ; RUN: obj2yaml %t.wasm | FileCheck %s
 
-; bitcode generated from the following C code:
-; int foo(void) { return 1; }
-; int (*indirect_func)(void) = &foo;
-; void _start(void) { indirect_func(); }
+declare i32 @weakFn() local_unnamed_addr
 
-target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
-target triple = "wasm32-unknown-unknown-wasm"
-
- at indirect_func = local_unnamed_addr global i32 ()* @foo, align 4
-
-; Function Attrs: norecurse nounwind readnone
-define i32 @foo() #0 {
-entry:
-  ret i32 1
-}
-
-; Function Attrs: nounwind
-define void @_start() local_unnamed_addr #1 {
+define void @_start() local_unnamed_addr {
 entry:
-  %0 = load i32 ()*, i32 ()** @indirect_func, align 4
-  %call = tail call i32 %0() #2
+  %call = call i32 @weakFn()
   ret void
 }
 
-; CHECK:      !WASM
+; CHECK:      --- !WASM
 ; CHECK-NEXT: FileHeader:      
 ; CHECK-NEXT:   Version:         0x00000001
 ; CHECK-NEXT: Sections:        
 ; CHECK-NEXT:   - Type:            TYPE
 ; CHECK-NEXT:     Signatures:      
 ; CHECK-NEXT:       - Index:           0
-; CHECK-NEXT:         ReturnType:      I32
+; CHECK-NEXT:         ReturnType:      NORESULT
 ; CHECK-NEXT:         ParamTypes:      
 ; CHECK-NEXT:       - Index:           1
-; CHECK-NEXT:         ReturnType:      NORESULT
+; CHECK-NEXT:         ReturnType:      I32
 ; CHECK-NEXT:         ParamTypes:      
 ; CHECK-NEXT:   - Type:            FUNCTION
-; CHECK-NEXT:     FunctionTypes:   [ 0, 1, 0, 1 ]
+; CHECK-NEXT:     FunctionTypes:   [ 0, 1, 1, 1, 1 ]
 ; CHECK-NEXT:   - Type:            TABLE
 ; CHECK-NEXT:     Tables:          
 ; CHECK-NEXT:       - ElemType:        ANYFUNC
@@ -57,7 +42,7 @@ entry:
 ; CHECK-NEXT:         Mutable:         true
 ; CHECK-NEXT:         InitExpr:        
 ; CHECK-NEXT:           Opcode:          I32_CONST
-; CHECK-NEXT:           Value:           66576
+; CHECK-NEXT:           Value:           66560
 ; CHECK-NEXT:   - Type:            EXPORT
 ; CHECK-NEXT:     Exports:         
 ; CHECK-NEXT:       - Name:            memory
@@ -65,46 +50,44 @@ entry:
 ; CHECK-NEXT:         Index:           0
 ; CHECK-NEXT:       - Name:            _start
 ; CHECK-NEXT:         Kind:            FUNCTION
-; CHECK-NEXT:         Index:           3
-; CHECK-NEXT:       - Name:            bar
-; CHECK-NEXT:         Kind:            FUNCTION
 ; CHECK-NEXT:         Index:           0
-; CHECK-NEXT:       - Name:            call_bar_indirect
+; CHECK-NEXT:       - Name:            weakFn
 ; CHECK-NEXT:         Kind:            FUNCTION
 ; CHECK-NEXT:         Index:           1
-; CHECK-NEXT:       - Name:            foo
+; CHECK-NEXT:       - Name:            exportWeak1
 ; CHECK-NEXT:         Kind:            FUNCTION
 ; CHECK-NEXT:         Index:           2
-; CHECK:        - Type:            ELEM
+; CHECK-NEXT:       - Name:            exportWeak2
+; CHECK-NEXT:         Kind:            FUNCTION
+; CHECK-NEXT:         Index:           4
+; CHECK-NEXT:   - Type:            ELEM
 ; CHECK-NEXT:     Segments:        
 ; CHECK-NEXT:       - Offset:          
 ; CHECK-NEXT:           Opcode:          I32_CONST
 ; CHECK-NEXT:           Value:           1
-; CHECK-NEXT:         Functions:       [ 0, 2 ]
+; CHECK-NEXT:         Functions:       [ 1, 1 ]
 ; CHECK-NEXT:   - Type:            CODE
 ; CHECK-NEXT:     Functions:       
-; CHECK:            - Locals:          
-; CHECK:            - Locals:          
-; CHECK:            - Locals:          
-; CHECK:        - Type:            DATA
-; CHECK-NEXT:     Segments:        
-; CHECK-NEXT:       - SectionOffset:    7
-; CHECK-NEXT:         MemoryIndex:      0
-; CHECK-NEXT:         Offset:          
-; CHECK-NEXT:           Opcode:          I32_CONST
-; CHECK-NEXT:           Value:           1024
-; CHECK-NEXT:         Content:         '0100000002000000'
+; CHECK-NEXT:       - Locals:          
+; CHECK-NEXT:         Body:            1081808080001A0B
+; CHECK-NEXT:       - Locals:          
+; CHECK-NEXT:         Body:            41010B
+; CHECK-NEXT:       - Locals:          
+; CHECK-NEXT:         Body:            4181808080000B
+; CHECK-NEXT:       - Locals:          
+; CHECK-NEXT:         Body:            41020B
+; CHECK-NEXT:       - Locals:          
+; CHECK-NEXT:         Body:            4182808080000B
 ; CHECK-NEXT:   - Type:            CUSTOM
 ; CHECK-NEXT:     Name:            linking
-; CHECK-NEXT:     DataSize:        8
+; CHECK-NEXT:     DataSize:        0
 ; CHECK-NEXT:   - Type:            CUSTOM
 ; CHECK-NEXT:     Name:            name
 ; CHECK-NEXT:     FunctionNames:   
 ; CHECK-NEXT:       - Index:           0
-; CHECK-NEXT:         Name:            bar
-; CHECK-NEXT:       - Index:           1
-; CHECK-NEXT:         Name:            call_bar_indirect
-; CHECK-NEXT:       - Index:           2
-; CHECK-NEXT:         Name:            foo
-; CHECK-NEXT:       - Index:           3
 ; CHECK-NEXT:         Name:            _start
+; CHECK-NEXT:       - Index:           2
+; CHECK-NEXT:         Name:            exportWeak1
+; CHECK-NEXT:       - Index:           4
+; CHECK-NEXT:         Name:            exportWeak2
+; CHECK-NEXT: ...




More information about the llvm-commits mailing list