Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | remove unneeded masks using getMaxBits | Alon Zakai (kripken) | 2017-02-16 | 1 | -3/+16 | |
| | ||||||
* | tiny refactoring in OptimizeInstructions, for clarity | Alon Zakai (kripken) | 2017-02-16 | 1 | -7/+8 | |
| | ||||||
* | fix fuzz testcase, xor maxBits is the max, not the min | Alon Zakai (kripken) | 2017-02-16 | 1 | -2/+2 | |
| | ||||||
* | handle fallthrough values in load_s/u and sign/zero-extend optimization | Alon Zakai (kripken) | 2017-02-16 | 1 | -6/+30 | |
| | ||||||
* | handle load in getMaxBits | Alon Zakai (kripken) | 2017-02-16 | 1 | -0/+2 | |
| | ||||||
* | handle tee_local in getMaxBits | Alon Zakai (kripken) | 2017-02-16 | 1 | -0/+3 | |
| | ||||||
* | optimize out a sign-ext into a store of the same size | Alon Zakai (kripken) | 2017-02-16 | 1 | -0/+6 | |
| | ||||||
* | optimize out add/sub of 0 | Alon Zakai (kripken) | 2017-02-16 | 1 | -1/+9 | |
| | ||||||
* | optimize sign-extends to a boolean | Alon Zakai (kripken) | 2017-02-16 | 1 | -0/+4 | |
| | ||||||
* | optimize sign-extends to eqz | Alon Zakai (kripken) | 2017-02-16 | 1 | -0/+7 | |
| | ||||||
* | optimize sign-extends to ne | Alon Zakai (kripken) | 2017-02-16 | 1 | -2/+2 | |
| | ||||||
* | Optimize "squared" operations (#905) | Alon Zakai | 2017-02-16 | 1 | -23/+86 | |
| | | | | * optimize 'almost' sign extends: when we can remove one entirely, then extra shifts can be left behind. with that in place, we can then optimize 'squared' operations like shl on shl, as doing so does not break our sign extend opts | |||||
* | optimize linear sums (#904) | Alon Zakai | 2017-02-16 | 1 | -0/+110 | |
| | ||||||
* | Optimize sign-extends (#902) | Alon Zakai | 2017-02-16 | 1 | -18/+139 | |
| | | | | | | * optimize sign-extend output * optimize sign-extend input | |||||
* | Hide dead code (#909) | Loo Rong Jie | 2017-02-15 | 1 | -0/+8 | |
| | ||||||
* | Improve handling of implicit traps (#898) | Alon Zakai | 2017-02-06 | 1 | -4/+4 | |
| | | | | | | | | * add --ignore-implicit-traps option, and by default do not ignore them, to properly preserve semantics * implicit traps can be reordered, but are side effects and should not be removed * add testing for --ignore-implicit-traps | |||||
* | Make ast_utils into a library (#892) | Derek Schuff | 2017-01-31 | 1 | -45/+47 | |
| | | | | Split ExpressionAnalyzer and ExpressionManipulator into cpp files, and turn their giant template functions into simple functions which take a callback. More organization, fewer mammoth headers, makes the build a few seconds faster, and the binaries a couple MB smaller. | |||||
* | Fix regression from #850 (#851) | Alon Zakai | 2016-11-30 | 1 | -27/+1 | |
| | | | | | | * fix regression from #850 - it is not always safe to fold added offsets into load/store offsets, as the add wraps but offset does not * small refactoring to simplify asm2wasm pass invocation | |||||
* | Optimize added factors into load/store offsets (#850) | Alon Zakai | 2016-11-29 | 1 | -0/+40 | |
| | | | | | * optimize added factors into load/store offsets, removing the add * optimize offset of load/store of a constant into the constant | |||||
* | optimize booleans through i32.or | Alon Zakai | 2016-11-04 | 1 | -2/+6 | |
| | ||||||
* | recurse in optimizeBoolean (#809) | Alon Zakai | 2016-10-27 | 1 | -0/+10 | |
| | ||||||
* | optimize ne of 0 in a boolean context (#808) | Alon Zakai | 2016-10-27 | 1 | -7/+17 | |
| | ||||||
* | Conditionalize boolean operations based on cost (#805) | Alon Zakai | 2016-10-26 | 1 | -0/+46 | |
| | | | When we have expensive | expensive, and both are boolean, then we can execute one of them conditionally if it doesn't have side effects. | |||||
* | Optimize out bool & 1 (#804) | Alon Zakai | 2016-10-25 | 1 | -0/+10 | |
| | | | | | | * asm.js corrections to unit.asm.js test * optimize out bool&1 | |||||
* | Optimize to i64.store[less] (#792) | Alon Zakai | 2016-10-20 | 1 | -4/+10 | |
| | ||||||
* | optimize out i32.and of -1 | Alon Zakai | 2016-10-15 | 1 | -4/+9 | |
| | ||||||
* | optimize loads and stores that mask their values, as the load/store ↵ | Alon Zakai | 2016-10-15 | 1 | -0/+28 | |
| | | | | operation masks itself | |||||
* | Type check block/loop/if sigs (#717) | Alon Zakai | 2016-09-28 | 1 | -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 parsers | Alon Zakai | 2016-09-21 | 1 | -9/+14 | |
| | ||||||
* | clean up database-ensuring code using the new prepareToRun method | Alon Zakai | 2016-09-12 | 1 | -9/+6 | |
| | ||||||
* | refactor an optimizeBoolean method | Alon Zakai | 2016-09-10 | 1 | -20/+24 | |
| | ||||||
* | optimize eqz^2 in select and br_if | Alon Zakai | 2016-09-10 | 1 | -8/+23 | |
| | ||||||
* | flip select-eqz when possible | Alon Zakai | 2016-09-07 | 1 | -2/+13 | |
| | ||||||
* | optimize out a set of a get of a global | Alon Zakai | 2016-09-07 | 1 | -0/+8 | |
| | ||||||
* | optimize loads+shifts into signed loads | Alon Zakai | 2016-09-07 | 1 | -0/+27 | |
| | ||||||
* | ensure we create the OptimizeInstructions database on demand, avoiding ↵ | Alon Zakai | 2016-09-07 | 1 | -3/+17 | |
| | | | | global ctors | |||||
* | rewrite OptimizeInstructions to use a dsl of patterns | Alon Zakai | 2016-06-26 | 1 | -50/+136 | |
| | ||||||
* | Add initialization functions for passes to avoid missing pass registration ↵ | Jukka Jylänki | 2016-06-21 | 1 | -1/+3 | |
| | | | | due to linker dead code elimination. Fixes #577. | |||||
* | move function parallelism to pass and pass runner, which allows more ↵ | Alon Zakai | 2016-06-03 | 1 | -1/+3 | |
| | | | | efficient parallel execution (#564) | |||||
* | use separate internal opcodes for binary variants | Alon Zakai | 2016-05-18 | 1 | -10/+32 | |
| | ||||||
* | use separate internal opcodes for unary variants | Alon Zakai | 2016-05-18 | 1 | -2/+2 | |
| | ||||||
* | create a UnifiedExpressionVisitor for passes that want a single visitor ↵ | Alon Zakai | 2016-04-18 | 1 | -1/+1 | |
| | | | | function, to avoid confusion with having both visit* and visitExpression in a single pass (#357) | |||||
* | Function parallelism (#343) | Alon Zakai | 2016-04-15 | 1 | -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 => dynCast | Alon Zakai | 2016-04-11 | 1 | -2/+2 | |
| | ||||||
* | De-recurse traversals (#333) | Alon Zakai | 2016-04-11 | 1 | -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+comparisons | Alon Zakai | 2016-04-09 | 1 | -0/+22 | |
| | ||||||
* | optimize if-eqz | Alon Zakai | 2016-04-06 | 1 | -0/+43 | |