Commit Graph

8895 Commits

Author SHA1 Message Date
Dan Gohman
c8e47177fc Add an assert to append_ebb_params_for_function_params. 2019-01-02 12:05:32 -08:00
Dan Gohman
831d033471 Add a shrink_to_fit function to PrimaryMap. 2019-01-02 12:01:36 -08:00
Dan Gohman
cd4f96c066 Use Vec::with_capacity when we know the eventual size of the Vec. 2019-01-02 11:59:57 -08:00
Dan Gohman
29edc3fe50 Make ListPool's alloc fill new memory with reserved values.
This makes it harder to misuse, as 0 could be confused for a valid value.
2019-01-02 11:59:22 -08:00
Dan Gohman
8a11bd6af7 Remove BoxedSlice's next_key() function, which is unneeded.
`BoxedSlice` does not support appending elements, so it isn't useful to
look up the next key.
2019-01-02 11:58:44 -08:00
Dan Gohman
b096d0606b Move ifcmp, icmp_imm, and ffcmp into the CPU flags doc section. 2019-01-02 11:46:15 -08:00
bjorn3
ab72eeadf9 Bump faerie to 0.7.0 2019-01-02 11:12:48 +01:00
Muhammad Mominul Huque
effe6c04e4 Update to Rust 2018 edition (#632)
* initial cargo fix run

* Upgrade cranelift-entity crate

* Upgrade bforest crate

* Upgrade the codegen crate

* Upgrade the faerie crate

* Upgrade the filetests crate

* Upgrade the codegen-meta crate

* Upgrade the frontend crate

* Upgrade the cranelift-module crate

* Upgrade the cranelift-native crate

* Upgrade the cranelift-preopt crate

* Upgrade the cranelift-reader crate

* Upgrade the cranelift-serde crate

* Upgrade the cranelift-simplejit crate

* Upgrade the cranelift or cranelift-umbrella crate

* Upgrade the cranelift-wasm crate

* Upgrade cranelift-tools crate

* Use new import style on remaining files

* run format-all.sh

* run test-all.sh, update Readme and travis ci configuration
fixed an AssertionError also

* Remove deprecated functions
2018-12-26 09:49:05 -08:00
bjorn3
e3db942b0c Put default implementations of FuncWriter methods in a seperate method
This is useful when you want to write extra information
2018-12-26 09:21:32 -08:00
Dan Gohman
f997cde2db Don't create Static memories larger than the Tunables' static bound size. 2018-12-24 22:08:36 -08:00
Dan Gohman
57a1618742 Catch EXCEPTION_INT_OVERFLOW exceptions too. 2018-12-24 22:08:36 -08:00
Dan Gohman
a5a23d8c4a Factor WasmNamespace out of lib/wast and into lib/execute as Namespace.
This makes it usable for things other than just wast tests.
2018-12-24 22:08:36 -08:00
Dan Gohman
71c0142cd4 Rename the address field of Table/Memory/Global exports to definition.
For functions, `address` makes sense because it's the address of the
function. Bt for Table/Memory/Global, it points to a `VM*Definition` field.
2018-12-24 18:20:15 -08:00
Dan Gohman
8f74c7f3d5 Add derive(Debug) to Export. 2018-12-24 18:14:00 -08:00
Bruce Mitchener
4f8753fa11 Fix typos. 2018-12-24 10:03:22 -08:00
Bruce Mitchener
4224a95f0d Update wasmparser to 0.23. 2018-12-24 09:49:06 -08:00
Dan Gohman
887451a2eb Fix formatting. 2018-12-24 09:32:50 -08:00
Dan Gohman
998a7d2b6d Mention Wasmtime as a complete implementation of the Environment traits. 2018-12-24 09:32:20 -08:00
bjorn3
95118e7244 Nicer panic when trying to insert instruction before calling switch_to_block 2018-12-24 09:31:51 -08:00
Dan Gohman
c4e10227de Tidy up trap-handling code. 2018-12-19 15:14:30 -08:00
Jef
5eee15ab02 Remove outdated comment 2018-12-19 20:27:16 +00:00
Jef
522818e7d8 Fix compiler bomb 2018-12-19 17:52:26 +00:00
Jef
9decdca525 Add Return 2018-12-19 16:39:20 +00:00
Jef
c52cf1493a Reformat a comment 2018-12-19 14:46:32 +01:00
Jef
f91b9072de Fix some issues with the use of stack depth 2018-12-19 14:42:00 +01:00
Jef
3b5c11a92a Test comparison operators 2018-12-19 12:58:08 +01:00
Jef
2173f4bcca Add other comparison operators, fix materialising locals, add more TODO comments (v. important) 2018-12-19 12:42:35 +01:00
Jef
cbf34a455b Add factorial tests from spec (after fixing them slightly) 2018-12-19 10:40:31 +01:00
Jef
72855e48c7 Improve behaviour when adding literal to non-literal, materialise local if its value will be changed
Currently the implementation of materializing locals causes compilation to be non-linear in degenerate cases
2018-12-18 19:15:29 +01:00
Jef
5418241dc6 Allow blocks to return values in any register 2018-12-18 17:16:38 +01:00
Jef
74ffb8560c Fix use of locals 2018-12-18 12:12:17 +01:00
Jef
0d1c4f3290 Allow calling functions with any signature 2018-12-17 21:55:03 -08:00
Nicholas Nethercote
46d9a3cd1a Use an FxHashMap in RegDiversions.
Because it's hot and the number of entries can reach the 1000s, so
linear insertion and search is bad.

This reduces runtime for `sqlite` and `UE4Game-HTML5-Shipping` by 3-4%,
and a couple of other benchmarks (`sqlite`, `godot`, `clang`) by smaller
amounts.

It also increases runtime for `mono` and `tanks` by about 1%; this seems
to be due to incidental changes in which functions are inlined more than
algorithmic changes.
2018-12-17 21:36:06 -08:00
Dan Gohman
4d4ecfd812 Bump version to 0.1.0 2018-12-17 13:45:12 -08:00
Jef
53841cdb07 Add loops 2018-12-17 12:50:29 +01:00
Jef
23b5a56a7d Fix locals not being restored properly (which may cause us to read garbage values from the stack) 2018-12-17 12:16:40 +01:00
Dan Gohman
48f86bde82 Make appveyor.yml more verbose, and other misc fixes. 2018-12-16 15:29:17 -08:00
Dan Gohman
81bbf8f057 Disable the x86-32 build in appveyor, as it isn't supported yet. 2018-12-16 14:28:40 -08:00
Jef
bd2ee53c89 Optimize pop_i32_into, check more fib values 2018-12-15 16:39:38 +01:00
Sergey Pepyakin
5511f92088 Add call alignment requirement. 2018-12-14 12:07:50 -05:00
Sergey Pepyakin
23476e82ff Fix typo. 2018-12-14 12:07:50 -05:00
Sergey Pepyakin
aab191b460 Comment FuncDef. 2018-12-14 12:07:50 -05:00
Sergey Pepyakin
94e2f0c2a5 Add the fib test. 2018-12-14 12:07:50 -05:00
Sergey Pepyakin
d6b300c87f Implement returns. 2018-12-14 12:07:50 -05:00
Sergey Pepyakin
38590cbcb9 Add i32 literals support. 2018-12-14 12:07:50 -05:00
Sergey Pepyakin
a3719e08e5 Pass arguments. 2018-12-14 12:07:50 -05:00
Sergey Pepyakin
eb60c2587a Basic form of a function call 2018-12-14 12:07:50 -05:00
Sergey Pepyakin
635ccc6916 Introduce TranslationContext 2018-12-14 12:07:50 -05:00
Sergey Pepyakin
f22b9903b6 Pass function sig in function_body::translate 2018-12-14 12:07:50 -05:00
Dan Gohman
66120cdede Prune unnecessary dependencies. 2018-12-14 08:09:01 -08:00