summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * add variants of simplify-locals with and without teeing and structural optsAlon Zakai2016-11-0511-11/+246
| |
| * optimize booleans through i32.orAlon Zakai2016-11-045-26/+52
| |
| * remove-unused-brs after coalesce-localsAlon Zakai2016-11-047-419/+362
|/
* Fixes fround of an unsigned integer (#821)Alon Zakai2016-11-0413-897/+649
| | | | | | | | * fix fround of unsigned * add testing for f32 ops, and remove a duplicate test (now that f32 is on by default in wasm, we don't need to check with and without PRECISE_F32) * update wasm.js and binaryen.js
* Merge pull request #819 from WebAssembly/optimize-memoryAlon Zakai2016-11-0112-5/+150
|\ | | | | Pack memory segments
| * add a pass to optimize memory segments, and pack memory in asm2wasmAlon Zakai2016-11-017-1/+131
| |
| * add a --memory-base options to asm2wasm, to fix the memory base instead of ↵Alon Zakai2016-10-316-4/+19
| | | | | | | | depending on an import
* | fix large f32 consts, fixes #817 (#820)Alon Zakai2016-11-015-8/+24
| |
* | Work around dot quirks related to updating node styles. Remove indirect call ↵Michael Bebenita2016-11-012-134/+98
|/ | | | edges as they greatly increase the size of the graph. (#818)
* Optimize away copies through an if (#816)Alon Zakai2016-10-3110-1932/+2155
|
* add an inlining pass (#814)Alon Zakai2016-10-297-0/+403
|
* Merge pull request #813 from WebAssembly/fix-mergeblocks-drop-br-ifAlon Zakai2016-10-293-70/+251
|\ | | | | Fix mergeblocks drop br if
| * optimize child blocks in merge-blocks when we drop values in them, they may ↵Alon Zakai2016-10-293-72/+117
| | | | | | | | have new subchild blocks
| * fix break value removal in merge-blocks: a br_if's type changes without a ↵Alon Zakai2016-10-292-9/+16
| | | | | | | | value, so finalize the node, and remove the drop
| * handle the case of a br_if whose value is used in merge-blocksAlon Zakai2016-10-293-14/+143
|/
* refactor get_local counting out of simplify-locals (#812)Alon Zakai2016-10-282-19/+57
|
* Merge pull request #811 from WebAssembly/iffifyAlon Zakai2016-10-2711-353/+608
|\ | | | | Some minor if/br_if opts
| * merge adjacent br_ifsAlon Zakai2016-10-273-24/+163
| |
| * recreate simply ifsAlon Zakai2016-10-279-351/+467
|/
* recurse in optimizeBoolean (#809)Alon Zakai2016-10-275-12/+50
|
* Set the type of the implicit blocks we use for a loop body in s2wasm (#810)jgravelle-google2016-10-273-0/+22
| | | | | | | Loops are modeled in Binaryen IR as having a Block as a body. The block is added to module walkers and validated like a normal block. In s2wasm when we add the blocks, we need to make sure that the type of the loop body matches the type of the loop itself, or we run into issues.
* optimize ne of 0 in a boolean context (#808)Alon Zakai2016-10-279-75/+64
|
* Code pushing (#807)Alon Zakai2016-10-2613-2194/+3028
| | | Push code forward, potentially letting it not execute
* update wasm.js and binaryen.js (#806)Alon Zakai2016-10-264-457/+464
|
* Conditionalize boolean operations based on cost (#805)Alon Zakai2016-10-265-1/+820
| | | When we have expensive | expensive, and both are boolean, then we can execute one of them conditionally if it doesn't have side effects.
* Binary 0xd changes (#803)Derek Schuff2016-10-264-210/+242
| | | | | | | | | | | | | | | | | | | | | * Renumber opcodes for 0xd * Unified type encoding * Add reserved flags fields to host instructions and call_indirect * Rename flags->reserved * Fix line numbers in wast parser Also don't throw if the memory is defined in the same Element as the export of memory (the validity is checked later anyway). * Skip spec binary.wast The spec testsuite is still on 0xc, so 0xd doesn't match. In order to update to 0xd we need to implement some additional functionality for the import test, namely (register)
* Optimize out bool & 1 (#804)Alon Zakai2016-10-2517-204/+369
| | | | | | * asm.js corrections to unit.asm.js test * optimize out bool&1
* Create CMake install targets for libs and JS files (#798)Derek Schuff2016-10-251-0/+6
| | | | | | This creates install rules for the binaryen shlib and the C header, as well as for the various JS files (wasm.js and binaryen.js, as well as those used by emscripten). It recreates in the install target the current layout used by an in-tree build.
* Update s2wasm for reordered call_indirect (#802)jgravelle-google2016-10-2482-5480/+6865
| | | | | | | | | | | | | | | * Update s2wasm for reordered call_indirect https://reviews.llvm.org/D25708 fixed call_indirect for 0xc by reordering the operands. s2wasm needs to be aware of that too. * Update llvm_autogenerated tests * Update torture-s tests * run auto_update_tests * update handwritten dot_s test that had call_indirect with args
* fix binary format regression from 9afa80951a3e9e59d5348780370a8b67d829ded1 - ↵Alon Zakai2016-10-222-22/+13
| | | | we must handle float literals carefully to not change their sign bit on some platforms/compilers, and that commit made relevant functions non-inline which hit a bug (#801)
* Merge pull request #799 from WebAssembly/pass-cleanupAlon Zakai2016-10-225-11/+18
|\ | | | | Some tiny pass cleanups
| * pass PassOptions to OptimizingIncrementalModuleBuilder, so that it can pass ↵Alon Zakai2016-10-212-8/+8
| | | | | | | | them to all the PassRunners it creates, letting them have the proper options at all times
| * LinearExecutionWalker cleanups: call noteNonLinear for only necessary ↵Alon Zakai2016-10-211-1/+8
| | | | | | | | blocks, as some do not have branches, and add a missing call for unreachable which just like return halts control flow
| * support pass test files with -O plus a level, like -O1, -Os, etc.Alon Zakai2016-10-212-2/+2
|/
* Move wasm binary reader and writer from the header file into libwasm (#797)Derek Schuff2016-10-203-1815/+2023
|
* Adds a pass to print call graphs in .dot (graphviz) format. (#794)Michael Bebenita2016-10-206-0/+3028
|
* Move wasm.cpp and wasm-s-parser into a library (#796)Derek Schuff2016-10-205-1773/+1856
| | | | | Also moves the bulk of the code in wasm-s-parser into a cpp file. Allows namespace and #include cleanups, and improves j4 compile time by 20%. Should also make any future parser changes easier and more localized.
* Add priority to copies on backedges (#791)Alon Zakai2016-10-2011-7653/+7806
| | | | | | | | * add a coalesce-locals test for costly backedges * add script to strip local names out, for convenient diffing * prioritize backedge copies
* Optimize to i64.store[less] (#792)Alon Zakai2016-10-203-4/+26
|
* update wasm-js.cpp code for asm2wasm constructor change (#793)Alon Zakai2016-10-201-1/+1
|
* Fix some C6246: "Local declaration of 'i' hides declaration of the same name ↵juj2016-10-202-5/+5
| | | | in outer scope." warnings. (#795)
* Add support for i64.store[N] (#789)jgravelle-google2016-10-195-401/+430
| | | | | | | | | | | | * Add support for i64.store[N] Previously storing i64 in the interpreter assumed an 8byte store. Stores like i64.store8 would then use the special-case i64 storing code, when they could just use the i32.store8 code. * Add printf test for interpreter * Update wasm.js
* Add -O0,-O1,etc. options (#790)Alon Zakai2016-10-197-39/+119
| | | | And use them in wasm-opt and asm2wasm consistently and uniformly.
* Minor improvements to the wasm-interpreter debug messages (#784)jgravelle-google2016-10-183-8/+68
| | | | | | | | | | | * Minor improvements to the wasm-interpreter debug messages 1. Indent nested blocks for more readable structure (with numeric labels to make it even clearer) 2. Print the names of the variables used for NOTE_EVALs 3. Print the values of arguments when entering a function call * Move Indenter class to wasm-interpreter.cpp
* Pass options (#788)Alon Zakai2016-10-189-29/+116
| | | | * add PassOptions structure, and use it for new -Os param to wasm-opt
* add table and memory contents to metrics (#787)Alon Zakai2016-10-183-0/+35
|
* Add support for running tests with valgrind. (#785)juj2016-10-171-34/+53
|
* Add new CMake option -DRUN_STATIC_ANALYZER=1 to enable running Visual Studio ↵juj2016-10-171-0/+4
| | | | static analyzer during build. (#786)
* Use steady_clock to measure code execution time (#776)Loo Rong Jie2016-10-172-6/+5
|
* Fix some relative paths to absolute to not depend on a fixed CWD. (#781)juj2016-10-171-6/+6
|