Commit Graph

6452 Commits

Author SHA1 Message Date
Jakub Konka
e759e3c2a4 Update dependencies and lock wasmtime-* on a specific rev 2019-07-26 14:16:24 +02:00
Marcin Mielniczuk
696eee22b2 Mark all functions in host_impl.rs as pub(crate)
It will allow the compiler to spot more unused functions.
2019-07-26 09:02:01 +02:00
Artur Jamro
165dc4944d Simple module compilation cache (#203)
* Simple module compilation cache

* Fix base64 encoding bug

* Use warn! everywhere in cache system

* Remove unused import

* Temporary workaround for long path on Windows

* Remove unused import for non-windows builds

* Add command line argument to enable cache system + apply minor review feedback
2019-07-25 16:16:10 -07:00
Sean Stangl
be36cc6538 Generate basic blocks for wasm if..then..else. 2019-07-25 11:04:02 -06:00
Andy Wortman
b7a9d65458 cranelift-wasm hooks to instrument wasm operators (#861)
* cranelift-wasm hooks to instrument wasm operators
2019-07-25 09:36:17 -07:00
Nicolas B. Pierron
feecd23967 Assert if newly added instructions break the Basic Block invariant. 2019-07-25 14:33:25 +02:00
Nicolas B. Pierron
42ebd2a5f4 Fix licm/jump-table-entry.clif test case to work with basic blocks. 2019-07-25 14:28:07 +02:00
Nicolas B. Pierron
6792c062bf Add basic-blocks feature flag at the top-level Cargo.toml. 2019-07-25 14:27:44 +02:00
Dan Gohman
17e4528648 Downgrade wabt from 0.8 to 0.7. (#219)
Even though this somehow passed on Travis on [the
PR](https://github.com/CraneStation/wasmtime/pull/209), it fails on
Travis on master, and I can reproduce the failure.

The failure is on spec_testsuite/names.wast:

```
$ RUST_BACKTRACE=1 target/debug/wast spec_testsuite/names.wast
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: FromUtf8Error { bytes: [255], error: Utf8Error { valid_up_to: 0, error_len: Some(1) } }', src/libcore/result.rs:999:5
stack backtrace:
[...]
   9: core::result::Result<T,E>::unwrap
             at /rustc/a53f9df32fbb0b5f4382caaad8f1a46f36ea887c/src/libcore/result.rs:800
  10: wabt::script::jstring_to_rstring
             at [...]/.cargo/registry/src/github.com-1ecc6299db9ec823/wabt-0.8.0/src/script/mod.rs:261
  11: wabt::script::parse_action
             at [...]/.cargo/registry/src/github.com-1ecc6299db9ec823/wabt-0.8.0/src/script/mod.rs:274
  12: wabt::script::ScriptParser<F32,F64>::next
             at [...]/.cargo/registry/src/github.com-1ecc6299db9ec823/wabt-0.8.0/src/script/mod.rs:504
  13: wasmtime_wast::wast::WastContext::run_buffer
             at wasmtime-wast/src/wast.rs:202
  14: wasmtime_wast::wast::WastContext::run_file
             at wasmtime-wast/src/wast.rs:472
  15: wast::main
             at src/wast.rs:107
[...]
```
2019-07-24 14:49:04 -07:00
dependabot-preview[bot]
5164994ce1 Update wasmparser requirement from 0.32.1 to 0.34.0 (#215)
Updates the requirements on [wasmparser](https://github.com/yurydelendik/wasmparser.rs) to permit the latest version.
- [Release notes](https://github.com/yurydelendik/wasmparser.rs/releases)
- [Commits](https://github.com/yurydelendik/wasmparser.rs/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-23 15:03:42 -07:00
Jakub Konka
86ae6e3df4 Refactor hostcalls_impl in sys module 2019-07-23 15:02:23 -07:00
Jakub Konka
7f0219e6d0 Move hostcalls impl into separate module 2019-07-23 15:02:23 -07:00
Artur Jamro
794841b366 Properly initialize file_per_thread_logger for rayon thread pool (#211)
* Properly initialize file_per_thread_logger for rayon thread pool
2019-07-23 14:53:48 -07:00
Stefan Junker
1aff03a5b4 dependencies: pin wasi-common to specific rev
This removes the reliance on having a correct version of wasi-common in
the cache by chance ;-)
2019-07-23 13:24:32 -07:00
dependabot-preview[bot]
dc39fee390 Update bindgen requirement from 0.49.0 to 0.50.0
Updates the requirements on [bindgen](https://github.com/rust-lang/rust-bindgen) to permit the latest version.
- [Release notes](https://github.com/rust-lang/rust-bindgen/releases)
- [Changelog](https://github.com/rust-lang/rust-bindgen/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/rust-bindgen/compare/v0.49.0...v0.50.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-23 11:04:45 -07:00
dependabot-preview[bot]
f5746290cb Update wabt requirement from 0.7 to 0.8
Updates the requirements on [wabt](https://github.com/pepyakin/wabt-rs) to permit the latest version.
- [Release notes](https://github.com/pepyakin/wabt-rs/releases)
- [Commits](https://github.com/pepyakin/wabt-rs/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-23 11:04:26 -07:00
dependabot-preview[bot]
9fe77cffc6 Update memoffset requirement from 0.2.1 to 0.5.1
Updates the requirements on [memoffset](https://github.com/Gilnaa/memoffset) to permit the latest version.
- [Release notes](https://github.com/Gilnaa/memoffset/releases)
- [Commits](https://github.com/Gilnaa/memoffset/commits/v0.5.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-23 11:04:06 -07:00
Sean Stangl
70c91f913d Produce more helpful basic block errors in cranelift-frontend.
Previously, the error just notified that there was a failure.
The new-style error says specifically in which ebb, on which instruction.
2019-07-23 07:58:57 -06:00
Sean Stangl
926e4c8bf8 Generate basic blocks for Wasm br_if. 2019-07-23 07:58:57 -06:00
Sean Stangl
ffa9d315e6 Add some comments to the frontend code. 2019-07-23 07:58:57 -06:00
Sean Stangl
5d1deecbb4 Give cranelift-wasm a "basic-blocks" feature. 2019-07-23 07:58:57 -06:00
Stefan Junker
8b89dc4922 Add dependabot configuration 2019-07-22 16:07:15 -07:00
Jakub Konka
c4704ba573 Fix error mapping for fd_seek on Windows 2019-07-22 16:05:30 -07:00
Jakub Konka
8ee4bed226 Add testcase for fd_seek and fd_tell 2019-07-22 16:05:30 -07:00
Jakub Konka
919262b5b9 Make fd_tell host independent 2019-07-22 16:05:30 -07:00
Jakub Konka
5bbf59e1c5 Make fd_seek host independent 2019-07-22 16:05:30 -07:00
Jakub Konka
0d571a4e6d Move extracting fds from context into hostcalls 2019-07-22 15:56:46 -07:00
Jakub Konka
14391bab56 Clean up more hostcalls 2019-07-22 15:56:46 -07:00
Jakub Konka
13823e2b39 Clean up fd_renumber 2019-07-22 15:56:46 -07:00
Jakub Konka
310ecb5b5b Create helper Result<T> type 2019-07-22 15:56:46 -07:00
Dan Gohman
4641fdd302 Bump version to 0.36.0 2019-07-19 16:28:40 -07:00
Artur Jamro
7a72ffefdd Add serde derive to PrimaryMap 2019-07-19 15:56:29 -07:00
Marcin Mielniczuk
a264787897 Enable __chkstk only on MSVC compilers, use ___chkstk on MinGW 2019-07-19 13:13:13 -07:00
Jakub Konka
08aa61f066 WASI paths as &str and String (#37)
* Check if RawString operates on valid encodings

* Use &str and String for WASI paths
2019-07-19 11:09:27 -07:00
Dan Gohman
19e4f42d50 Fix compilation of wasmtime-environ from within wasmtime-jit. (#201)
* Fix compilation of wasmtime-environ from within wasmtime-jit.

Enable wasmtime-environ/std when wasmtime-jit's std feature is enabled.

Fixes #200.

* Fix wasmtime-debug build too.
2019-07-19 11:01:27 -07:00
Sean Stangl
8efaeec502 Verify that FunctionBuilder blocks are basic blocks in debug mode (#857)
To use, enable the "basic-blocks" feature on cranelift-frontend.
2019-07-19 09:52:05 -06:00
Artur Jamro
c80508c8a9 Make the calls to wasm's memory.grow and memory.size indirect (#194)
* Make the calls to wasm's memory.grow and memory.size indirect
2019-07-18 14:40:03 -07:00
Sean Stangl
9b97ddf29a Enable basic block checks through a feature. (#856)
This allows prefixing BB-specific code with "#[cfg(feature = "basic-blocks")]",
which avoids having to reference an environment variable across the codebase.

The easiest way to enable the feature locally is to add the arguments
'features = ["basic-blocks"]' to the workspace Cargo.toml, where it defines
the cranelift-codegen dependency.
2019-07-18 09:59:28 -06:00
Yury Delendik
d27d190b74 reverse dependency
https://github.com/CraneStation/wasmtime/pull/186#discussion_r302780035
2019-07-16 17:15:02 -07:00
Yury Delendik
748abd97d6 https://github.com/CraneStation/wasmtime/pull/186#discussion_r302781231 2019-07-16 17:15:02 -07:00
Yury Delendik
5362bd1a23 Improve performance of BTreeMap::search().last() 2019-07-16 17:15:02 -07:00
Yury Delendik
cafe821f24 Properly collect/identify used DWARF entries. 2019-07-16 17:15:02 -07:00
Yury Delendik
efe9dd7b86 Update gimli version; refactor debug data structures 2019-07-16 17:15:02 -07:00
Andrew Brown
084e279def Add x86 implementation of splat instruction 2019-07-16 17:07:44 -07:00
Andrew Brown
3b36a1d1d8 Add x86 implementation of insertlane instruction 2019-07-16 17:07:44 -07:00
Andrew Brown
683e7c75a3 Add x86-specific shuffle instructions
This includes both PSHUFD and PSHUFB; these are necessary to legalize future SIMD instructions.
2019-07-16 17:07:44 -07:00
Andrew Brown
61772e9775 Add raw_bitcast instruction
Casts bits as a different type of the same width with no change to the data (unlike bitcast)
2019-07-16 17:07:44 -07:00
Andrew Brown
5f0e5567c1 Add scalar_to_vector instruction
Moves scalar values in a GPR register to an FPR register
2019-07-16 17:07:44 -07:00
Andrew Brown
356e6dafe2 Allow CDSL instructions to bind to vector types 2019-07-16 17:07:44 -07:00
Andrew Brown
c39a9b4e3f Assign vector arguments to FPR registers 2019-07-16 17:07:44 -07:00