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

3
Cargo.lock generated
View File

@@ -573,6 +573,8 @@ dependencies = [
"cranelift-codegen",
"cranelift-frontend",
"cranelift-interpreter",
"cranelift-jit",
"cranelift-module",
"cranelift-native",
"cranelift-preopt",
"cranelift-reader",
@@ -580,7 +582,6 @@ dependencies = [
"filecheck",
"gimli",
"log",
"memmap2",
"num_cpus",
"similar",
"target-lexicon",