[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