summaryrefslogtreecommitdiff
path: root/src/passes/OptimizeInstructions.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Optimize out bool & 1 (#804)Alon Zakai2016-10-251-0/+10
| | | | | | * asm.js corrections to unit.asm.js test * optimize out bool&1
* Optimize to i64.store[less] (#792)Alon Zakai2016-10-201-4/+10
|
* optimize out i32.and of -1Alon Zakai2016-10-151-4/+9
|
* optimize loads and stores that mask their values, as the load/store ↵Alon Zakai2016-10-151-0/+28
| | | | operation masks itself
* Type check block/loop/if sigs (#717)Alon Zakai2016-09-281-0/+60
| | | | | | * type check using block/loop/if types provided in text and binary formats. * print if and loop sigs which were missing. * remove dsl from OptimizeInstructions as after those changes it needs rethinking.
* refactor wasm.h to remove numericIndex hacks, and move indexing to the parsersAlon Zakai2016-09-211-9/+14
|
* clean up database-ensuring code using the new prepareToRun methodAlon Zakai2016-09-121-9/+6
|
* refactor an optimizeBoolean methodAlon Zakai2016-09-101-20/+24
|
* optimize eqz^2 in select and br_ifAlon Zakai2016-09-101-8/+23
|
* flip select-eqz when possibleAlon Zakai2016-09-071-2/+13
|
* optimize out a set of a get of a globalAlon Zakai2016-09-071-0/+8
|
* optimize loads+shifts into signed loadsAlon Zakai2016-09-071-0/+27
|
* ensure we create the OptimizeInstructions database on demand, avoiding ↵Alon Zakai2016-09-071-3/+17
| | | | global ctors
* rewrite OptimizeInstructions to use a dsl of patternsAlon Zakai2016-06-261-50/+136
|
* Add initialization functions for passes to avoid missing pass registration ↵Jukka Jylänki2016-06-211-1/+3
| | | | due to linker dead code elimination. Fixes #577.
* move function parallelism to pass and pass runner, which allows more ↵Alon Zakai2016-06-031-1/+3
| | | | efficient parallel execution (#564)
* use separate internal opcodes for binary variantsAlon Zakai2016-05-181-10/+32
|
* use separate internal opcodes for unary variantsAlon Zakai2016-05-181-2/+2
|
* create a UnifiedExpressionVisitor for passes that want a single visitor ↵Alon Zakai2016-04-181-1/+1
| | | | function, to avoid confusion with having both visit* and visitExpression in a single pass (#357)
* Function parallelism (#343)Alon Zakai2016-04-151-0/+2
| | | | * allow traversals to mark themselves as function-parallel, in which case we run them using a thread pool. also mark some thread-safety risks (interned strings, arena allocators) with assertions they modify only on the main thread
* dyn_cast => dynCastAlon Zakai2016-04-111-2/+2
|
* De-recurse traversals (#333)Alon Zakai2016-04-111-1/+1
| | | | | | | | | | | | * refactor core walking to not recurse * add a simplify-locals test * reuse parent's non-branchey scan logic in SimpleExecutionWalker, reduce code duplication * update wasm.js * rename things following comments
* fold eqz+comparisonsAlon Zakai2016-04-091-0/+22
|
* optimize if-eqzAlon Zakai2016-04-061-0/+43