Commit Graph

73 Commits

Author SHA1 Message Date
Takeshi Yoneda
c16735db52 wazevo(amd64): alignment for Fmax/min (#2084)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2024-02-21 09:10:50 +09:00
Takeshi Yoneda
08998eda2d wazevo(regalloc): spill the unused values with high priority (#2082)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2024-02-20 16:22:09 +09:00
Takeshi Yoneda
9c0c7c4a02 wazevo(frontend): missing listener.After call in br_if target (#2078)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2024-02-20 11:36:40 +09:00
Takeshi Yoneda
ccf60cb7a9 Enables amd64 backend for optimizing compiler in experimental pkg (#2071)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2024-02-19 10:00:13 +09:00
Takeshi Yoneda
47c7b5ad64 wazevo(regalloc): ensures the flag field cleared when no forest child (#2070)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2024-02-19 09:32:41 +09:00
Takeshi Yoneda
25698af230 wazevo(amd64): fixes VIabs i64x2 (#2062)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2024-02-16 08:20:58 +09:00
Takeshi Yoneda
74acc6fe3b wazevo(amd64): fixes VIcmp (#2058)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2024-02-13 15:47:23 -08:00
Takeshi Yoneda
eff9b20f3d wazevo: redo extadd_pairwise for both arm/amd (#2057)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2024-02-13 15:07:38 -08:00
Edoardo Vacchi
392dcf732a fuzz: adds unaligned global f32 case (#2040)
Signed-off-by: Edoardo Vacchi <evacchi@users.noreply.github.com>
Co-authored-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2024-02-11 16:06:20 -08:00
Takeshi Yoneda
f59dfcbd92 wazevo(regalloc): do not spill real registers in use (#2037)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2024-02-10 09:36:11 -08:00
Takeshi Yoneda
b0b99d0712 wazevo(arm64): fixes return lowering for float->int order (#2034)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2024-02-09 14:20:59 -08:00
Takeshi Yoneda
25cf3c0766 fuzz: adds a float<>int conversion case (#2032)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2024-02-09 12:08:21 -08:00
Takeshi Yoneda
6f09968c0c wazevo(amd64): redo idivrem (#2017)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2024-02-05 14:29:36 -08:00
Takeshi Yoneda
4dbb2f29c7 wazevo(amd64): fixes Select, xmmCmpRmR def kind (#2009)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2024-02-02 16:36:40 -08:00
Takeshi Yoneda
b3a85e0ab7 wazevo(amd64): fixes lowerCtz/Clz (#2008)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2024-02-02 13:43:07 -08:00
Takeshi Yoneda
46ef0886c3 wazevo(amd64): fixes lowerExtend (#2007)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2024-02-02 13:06:36 -08:00
Takeshi Yoneda
75045edafa wazevo(amd64): fixes FcvtToUint (#2006)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2024-02-02 12:43:48 -08:00
Takeshi Yoneda
5a06ee07c3 wazevo(amd64): fixes after regalloc lowering of f->i conv (#2001) 2024-02-01 15:49:25 -08:00
Takeshi Yoneda
7c4c10c8a5 wazevo(amd64): overhaul integer<>float conversions (#2000)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2024-02-01 14:46:22 -08:00
Takeshi Yoneda
3c6e7fd74d wazevo(amd64): fix lowering huge base amode, float conversions (#1999)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2024-02-01 10:22:21 -08:00
Edoardo Vacchi
aa51c60cfb interpreter: vectors should not be committed to memory if OOB (#1949) 2024-01-24 07:18:23 -08:00
Takeshi Yoneda
27624049dc wazevo(frontend): faster non-imported global access (#1889)
Some checks failed
Release CLI / Pre-release build (push) Has been cancelled
Release CLI / Pre-release test (macos-12) (push) Has been cancelled
Release CLI / Pre-release test (ubuntu-22.04) (push) Has been cancelled
Release CLI / Pre-release test (windows-2022) (push) Has been cancelled
Release CLI / Release (push) Has been cancelled
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2023-12-22 08:04:48 -08:00
Takeshi Yoneda
87a48d8eee Introduces the new optimizing compiler (wazevo) in experimental pkg (#1869)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2023-12-14 08:27:35 -08:00
Takeshi Yoneda
1afa54fee4 wazevo(regalloc): fixes phi spill logic (#1846)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2023-11-24 09:43:57 +09:00
Takeshi Yoneda
374d6ff712 wazevo: implements linear reg alloc algorithm (#1829)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2023-11-16 14:46:03 +09:00
Takeshi Yoneda
73d6c3b382 wazevo(arm64): fixes Vector select (#1840)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2023-11-16 14:38:58 +09:00
Edoardo Vacchi
9841c5fc04 wazevo: fuzz, fix Fcopysign (#1826)
Signed-off-by: Edoardo Vacchi <evacchi@users.noreply.github.com>
2023-11-01 07:36:28 +09:00
Edoardo Vacchi
928fce854f wazevo: fuzz, fix ssa.OpcodeInsertlane (#1825)
Signed-off-by: Edoardo Vacchi <evacchi@users.noreply.github.com>
2023-10-31 23:18:46 +01:00
Edoardo Vacchi
ec1844c6fc wazevo: fuzz, fix f64x2.pmin (#1824)
Signed-off-by: Edoardo Vacchi <evacchi@users.noreply.github.com>
2023-10-31 14:27:44 +01:00
Edoardo Vacchi
695b49e94d wazevo: fuzz, fix i16x8.narrow_i32x4_u (#1820)
Signed-off-by: Edoardo Vacchi <evacchi@users.noreply.github.com>
2023-10-29 08:02:08 +08:00
Edoardo Vacchi
a5d1b12385 wazevo: fuzz, fix load_splat with offset values > 12 bits (#1817)
Signed-off-by: Edoardo Vacchi <evacchi@users.noreply.github.com>
2023-10-25 17:33:57 +02:00
Edoardo Vacchi
e3e5b9942d wazevo: fuzz, select does not return the correct value for vectors (#1814)
Signed-off-by: Edoardo Vacchi <evacchi@users.noreply.github.com>
2023-10-25 17:32:25 +02:00
Edoardo Vacchi
1748dbcfe8 wazevo: fuzz, fix load_splat (#1810)
Signed-off-by: Edoardo Vacchi <evacchi@users.noreply.github.com>
Co-authored-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2023-10-23 09:17:37 +02:00
Takeshi Yoneda
95a240370c wazevo(regalloc): fixes the PHI value liverange (#1812)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2023-10-23 13:20:22 +09:00
Edoardo Vacchi
9264104c0b wazevo: fuzz, fix simd shl, shr, shuffle, vbitselect (#1797) 2023-10-19 07:10:45 +09:00
Edoardo Vacchi
583e8772ec wazevo: fuzz OpcodeVIcmp, OpcodeVFcmp, allTrue (#1793) 2023-10-18 07:09:36 +09:00
Edoardo Vacchi
a653c8a8f7 wazevo: add fuzz test cases (#1792)
Signed-off-by: Edoardo Vacchi <evacchi@users.noreply.github.com>
2023-10-17 15:54:37 +09:00
Takeshi Yoneda
088424c7e5 wazevo(frontend): fixes br_table lowering not to share arg slice (#1777)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2023-10-13 09:11:05 +09:00
Edoardo Vacchi
e3d83bbc7a wazevo: passes simd load/store spec tests (#1766)
Signed-off-by: Edoardo Vacchi <evacchi@users.noreply.github.com>
2023-10-11 08:18:07 +09:00
Takeshi Yoneda
f2921d06f6 wazevo: adds support for Select on v128 values (#1762)
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
2023-10-06 10:09:09 +09:00
Takeshi Yoneda
86444c67a3 ci: run -race on PRs as well (#1408)
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
2023-04-27 09:54:59 +09:00
Takeshi Yoneda
8ab1615b53 Forbids empty name module imports (#1244)
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
Co-authored-by: Crypt Keeper <64215+codefromthecrypt@users.noreply.github.com>
2023-03-16 12:22:37 +09:00
Takeshi Yoneda
7466f0e7bd Holds most fields as slice of values, not ptrs in wasm.Module (#1221)
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
2023-03-13 12:50:36 +09:00
Edoardo Vacchi
117474c477 refactor binary encoding to its own package (#1187)
move binary encoder to its own package

Signed-off-by: Edoardo Vacchi <evacchi@users.noreply.github.com>
2023-03-03 07:21:22 +08:00
Crypt Keeper
b758344212 API BREAK: renames InstantiateModuleFromBinary to Instantiate (#1129)
This renames `InstantiateModuleFromBinary` to `Instantiate` to both make
first time use simpler to write and also de-complicate adding a
`WithConfig` variant as requested in #1105

End users in simple case need to change their signature like so.
```diff
-       mod, err := r.InstantiateModuleFromBinary(ctx, addWasm)
+       mod, err := r.Instantiate(ctx, addWasm)
```

In practice, many will not need to change their signature because they
had to use the `InstantiateModule` function in order to assign
configuration such as the module name, filesystem or use a real clock.
Instead, they had to use the more complicated chain of `CompileModule`
and `InstantiateModule` even when only assigning config. Users in this
situation can opt into the more simplified syntax below:

```go
mod, err := r.InstantiateWithConfig(ctx, addWasm,
	wazero.NewModuleConfig().WithName("adder"))
```



```diff
-       mod, err := r.InstantiateModuleFromBinary(ctx, addWasm)
+       mod, err := r.Instantiate(ctx, addWasm)
```

Signed-off-by: Adrian Cole <adrian@tetrate.io>
2023-02-15 14:52:17 -10:00
Takeshi Yoneda
c9155b8f2b amd64: fixes memory.fill bug (#1055)
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
Signed-off-by: Edoardo Vacchi <evacchi@users.noreply.github.com>
2023-01-24 08:07:11 +09:00
Takeshi Yoneda
2df84c679c ci: adds -skip flag to the race tests (#1023)
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
2023-01-11 12:23:09 +09:00
Crypt Keeper
126bd9050d Removes context parameter from instruction-scoped operations (#923)
We originally had a `context.Context` for anything that might be
traced, but it turned out to be only useful for lifecycle and host functions.

For instruction-scoped aspects like memory updates, a context parameter is too
fine-grained and also invisible in practice. For example, most users will use
the compiler engine, and its memory, global or table access will never use go's
context.

Signed-off-by: Adrian Cole <adrian@tetrate.io>
2022-12-14 16:08:07 +09:00
Takeshi Yoneda
b8adb361e8 Fixes FuncRef global initialization with imported globals (#888)
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
2022-12-06 14:32:12 +09:00
Takeshi Yoneda
651f71b8ab Merge wazero-fuzz into internal/integration_test (#872)
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
2022-12-01 10:22:58 +09:00