summaryrefslogtreecommitdiff
path: root/src/passes/RemoveUnusedBrs.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* optimize loop endings in RemoveUnusedBrsAlon Zakai2016-09-091-1/+108
| | | | | * rotate an if near the end of a loop as it can let a break out flow naturally and be removable * turn a br_if into an if it allows such an optimization in cases where it helps remove other structures
* select values must be validAlon Zakai2016-09-071-1/+1
|
* 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.
* fix br_if with value optimization in remove-unused-brsAlon Zakai2016-06-111-0/+7
|
* move function parallelism to pass and pass runner, which allows more ↵Alon Zakai2016-06-031-1/+3
| | | | efficient parallel execution (#564)
* refactor walk logic into walk* and doWalk* methods, for a more regular API ↵Alon Zakai2016-05-301-4/+4
| | | | that is clearer where it should be overridden (#551)
* validate in asm2wasm, and fix some validation errors for thatAlon Zakai2016-05-231-0/+18
|
* add an ArenaVector for internal array allocations in expression nodesAlon Zakai2016-04-261-1/+1
|
* ast_utils improvements (#399)Alon Zakai2016-04-261-6/+3
| | | | | | | | | * make EffectAnalyzer a little more fun to use * create a convert() method that can turn a node into a smaller node, reusing its memory, and use that in nop() * use convert in wasm-linker
* selectify if-elses with no control flow in themAlon Zakai2016-04-251-0/+30
|
* optimize returns that flow outAlon Zakai2016-04-251-3/+21
|
* optimize breaks with values in RemoveUnusedBrs, check if their value can ↵Alon Zakai2016-04-251-14/+32
| | | | flow to the target anyhow
* run multiple cycles of RemoveUnusedBrsAlon Zakai2016-04-241-1/+15
|
* handle general control flow in RemoveUnusedBrsAlon Zakai2016-04-241-59/+89
|
* 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-5/+5
|
* 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
* Break and Return have unreachable typeAlon Zakai2016-02-031-1/+1
|
* fold if-br into br_ifAlon Zakai2016-01-231-3/+12
|
* Some cleanup.Michael Bebenita2016-01-141-1/+1
|
* Use LLVM style static polymorphism for WasmVisitors.Michael Bebenita2016-01-131-3/+3
|
* A more generic compiler pass system.Michael Bebenita2016-01-131-1/+1
|
* RemoveUnneededBrs: remove all code in a block after a breakAlon Zakai2016-01-081-0/+7
|
* improve RemoveUnusedBrs: unify an if-else's brs into one br outsideAlon Zakai2016-01-081-24/+39
|
* optimize if_else in RemoveUnusedBrsAlon Zakai2016-01-081-8/+33
|
* optimize RemoveUnusedBrs some more - handle values #84Alon Zakai2016-01-071-2/+6
|
* RemoveUnusedBrs #32Alon Zakai2016-01-051-0/+41