Commit Graph

11 Commits

Author SHA1 Message Date
Andrew Dirksen 84331a9325 don't make the user reset Interpreter between invocations 2018-11-21 17:12:47 -08:00
Andrew Dirksen 07267813db move invoke into Interpreter 2018-11-21 16:58:33 -08:00
Andrew Dirksen 94a62c2c20 interpreter constructor with default values 2018-11-21 09:03:24 -08:00
Andrew Dirksen 4b5c2d4a47 revert change to benches/.gitignore 2018-11-21 08:31:16 -08:00
Andrew Dirksen 1913702a03 benchmark interpreter reuse
name               without-reuse.trace ns/iter  with-reuse.trace ns/iter  diff ns/iter   diff %  speedup
 bench_regex_redux  3,214,008                    3,162,089                      -51,919   -1.62%   x 1.02
 bench_rev_comp     7,356,860                    7,168,441                     -188,419   -2.56%   x 1.03
 bench_tiny_keccak  3,943,358                    3,910,487                      -32,871   -0.83%   x 1.01
 fac_opt            10,959                       2,096                           -8,863  -80.87%   x 5.23
 fac_recursive      13,345                       4,277                           -9,068  -67.95%   x 3.12
 recursive_ok       1,190,562                    1,141,940                      -48,622   -4.08%   x 1.04
 recursive_trap     125,047                      111,962                        -13,085  -10.46%   x 1.12
2018-11-19 16:00:21 -08:00
Andrew Dirksen 57c48ecada optimize drop_keep 2018-11-19 13:27:13 -08:00
Sergey Pepyakin 2f7505d120
Travis maintenance (#132)
*  Use gcc-8 for builds

* Don't run cargo-deadlinks

* Update wabt to 0.6.
2018-10-26 15:03:01 +02:00
Sergey Pepyakin f6657bace4
Flat Stack (#98)
* Define Instruction Set.

* WIP

* WIP 2

* Tests

* Working

* Bunch of other tests.

* WIP

* WIP

* Use Vec instead of VecDeque.

* Calibrate the limits.

* Clean

* Clean

* Another round of cleaning.

* Ignore traces.

* Optimize value stack

* Optimize a bit more.

* Cache memory index.

* Inline always instruction dispatch function.

* Comments.

* Clean

* Clean

* Use vector to keep unresolved references.

* Estimate resulting size.

* do refactoring

* Validate the locals count in the begging

* Introduce Keep and DropKeep structs in isa

* Rename/Split Validator into Reader

* Document stack layout

* Remove println!

* Fix typo.

* Use .last / .last_mut in stack

* Update docs for BrTable.

* Review fixes.

* Merge.

* Add an assert that stack is empty after the exec
2018-07-04 10:08:45 +03:00
Sergey Pepyakin 94b797de44
Add some more benches (#97)
* Add rev_complement test

# Conflicts:
#	benches/src/lib.rs
#	benches/wasm-kernel/src/lib.rs

* Add redux_regex test.

# Conflicts:
#	benches/wasm-kernel/Cargo.toml

* Fmt and return an original header

* Use ManuallyDrop

* Really initialize lazy static.
2018-06-19 16:29:33 +03:00
Sergey Pepyakin f305b3cd1f
Fix wasm benches on nightly (#93) 2018-06-12 14:00:57 +03:00
Sergey Pepyakin 6cf0ebc79e
Add a simple bench (#90)
* Add first bench

* Refactor travis.yml

* Use assert_matches!

* sha3_256 → keccak256
2018-05-24 16:31:15 +03:00