Alexander Theißen
1f8e6dd5b2
Don't generate duplicate thunks
...
Previously, functions that appear in multiple places
(exported, start function, table) would generate a thunk
for each place they appear in. Those additional thunks are
identical and only only one of them would be referenced.
Main offender are tables with redundant entries.
This commit eliminates those duplicate thunks without adding
any additional overhead.
2020-10-13 11:43:59 +02:00
Alexander Theißen
409ced002a
Allow specifying the module of the imported 'gas' function ( #140 )
...
* No need for mem::replace when doing a simple assignment
* Allow specifying the module of the imported 'gas' function
This allows users to place the imported function inside a custom
module instead of the generic 'env' module.
2020-08-04 13:53:53 +03:00
NikVolf
3f2935df9c
update wabt
2020-08-03 14:00:07 +03:00
Jim Posen
b3f8f62105
Update gas expectations.
2019-07-04 17:57:40 +02:00
Jim Posen
863744b1fc
Add gas test confirming that br instructions do not end blocks.
2019-07-01 17:02:21 +02:00
NikVolf
0d40703c6e
fix identation
2019-04-09 19:02:07 +03:00
Sergey Pepyakin
1b7a5d26ea
A couple of small tests.
2019-04-03 14:24:01 +02:00
NikVolf
06277915da
some graph structure definition
2019-01-21 17:04:31 +03:00
Sergey Pepyakin
8db40174ae
Add gas tests.
2018-12-24 20:43:23 +01:00
Sergey Pepyakin
3db0d60e70
Teach stack limiter to handle start fn
2018-12-24 19:20:33 +01:00
Alexey
3e7946ab1c
fix call_indirect test ( #98 )
...
Merged
2018-08-01 13:48:38 +03:00
NikVolf
b0f43bb575
rename crate
2018-03-13 16:02:34 +03:00
Sergey Pepyakin
9527b969a4
Impl stack height limiter ( #64 )
...
* Initial implementation
* Add wasm-stack-height binary
* Fixes and tracing.
* Doc fixes.
* Fix type resolving for thunks.
* Fix thunk numbering.
* Don't generate thunks for fns with stack_cost = 0
* Diff tests.
* Add table tests.
* Add global test.
* Make tests deterministic.
* Refactoring.
* Clean and refactor.
* Rename Context → Stack in stach_height.
* Don't generate call wrappers if stack_cost = 0
* Errors instead of panics.
* Add with_stack_limit function.
* Fix thunk generation.
* Pass the stack height limit as separate value.
* Use .unwrap_or_default() in diff.rs.
* Remove redundant &.
* Remove simple_test.
* Remove variants of the Error.
* `resolve_func_type` returns an Error.
* Don't unwrap for .last()
* Remove stack_limit from rules::Set
* Rename max_height::compute.
2018-02-27 16:52:37 +03:00