cranelift: Use cranelift-jit in runtests (#4453)

* cranelift: Use JIT in runtests

Using `cranelift-jit` in run tests allows us to preform relocations and
libcalls. This is important since some instruction lowerings fallback
to libcall's when an extension is missing, or when it's too complicated
to implement manually.

This is also a first step to being able to test `call`'s between functions
in the runtest suite. It should also make it easier to eventually test
TLS relocations, symbol resolution and ABI's.

Another benefit of this is that we also get to test the JIT more, since
it now runs the runtests, and gets some fuzzing via `fuzzgen` (which
uses the `SingleFunctionCompiler`).

This change causes regressions in terms of runtime for the filetests.
I haven't done any serious benchmarking but what I've been seeing is
that it now takes about ~3 seconds to run the testsuite while it
previously took around 2 seconds.

* Add FMA tests for X86
This commit is contained in:
Afonso Bordado
2022-08-09 22:54:25 +01:00
committed by GitHub
parent 97b2680f20
commit 4d2a2cfae6
13 changed files with 119 additions and 107 deletions

View File

@@ -1,6 +1,7 @@
test interpret
test run
target x86_64
target x86_64 has_sse41=false
target aarch64
target s390x

View File

@@ -1,6 +1,7 @@
test interpret
test run
target x86_64
target x86_64 has_sse41=false
target aarch64
target s390x

View File

@@ -1,8 +1,10 @@
test interpret
target x86_64 has_avx=false has_fma=false
; The interpreter can run `fma.clif` on most platforms, however on `x86_64-pc-windows-gnu` we
; use libm which has issues with some inputs. We should delete this file and enable the interpreter
; on the main `fma.clif` file once those are fixed.
; on the main `fma.clif` file once those are fixed. The same issue applies to x86 with fma disabled
; since it will call the native runtime's fma function.
; See: https://github.com/bytecodealliance/wasmtime/pull/4517
; See: https://github.com/rust-lang/libm/issues/263

View File

@@ -1,6 +1,7 @@
test interpret
test run
target x86_64
target x86_64 has_sse41=false
target aarch64
target s390x

View File

@@ -1,6 +1,7 @@
test interpret
test run
target x86_64
target x86_64 has_sse41=false
target aarch64
target s390x