summaryrefslogtreecommitdiff
path: root/src/passes
Commit message (Collapse)AuthorAgeFilesLines
* allocate only expressions in arenas - functions, imports, exports, function ↵Alon Zakai2016-04-272-7/+10
| | | | types, can more simply be held by unique_ptrs on the owning module. this avoids need to coordinate arena allocation for their elements, and only the far more plentiful expression nodes are a perf factor anyhow
* add an ArenaVector for internal array allocations in expression nodesAlon Zakai2016-04-263-3/+4
|
* 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
* optimize block and if returns, by merging set_locals that flow out of themAlon Zakai2016-04-241-72/+300
|
* run multiple cycles of RemoveUnusedBrsAlon Zakai2016-04-241-1/+15
|
* get rid of nops in ifsAlon Zakai2016-04-241-0/+20
|
* handle general control flow in RemoveUnusedBrsAlon Zakai2016-04-241-59/+89
|
* vacuum dead code after br_tableAlon Zakai2016-04-241-1/+2
|
* vacuum dead code after unconditional brsAlon Zakai2016-04-241-3/+14
|
* fix nop printing in br_tableAlon Zakai2016-04-211-3/+1
|
* optimize --vacuum a littleAlon Zakai2016-04-201-0/+8
|
* do not crash when printing an expression whose function is not knownAlon Zakai2016-04-201-1/+4
|
* update MemorySize => CurrentMemoryAlon Zakai2016-04-181-1/+1
|
* handle dead stores in SimplifyLocalsAlon Zakai2016-04-181-2/+3
|
* remove old comments in SimplifyLocalsAlon Zakai2016-04-181-2/+1
|
* create a UnifiedExpressionVisitor for passes that want a single visitor ↵Alon Zakai2016-04-1811-14/+14
| | | | function, to avoid confusion with having both visit* and visitExpression in a single pass (#357)
* use a vector for get_local counts in SimplifyLocals (#356)Alon Zakai2016-04-181-1/+2
|
* index locals, so that get_local and set_local have just an index, and local ↵Alon Zakai2016-04-184-35/+112
| | | | names are kept on the Function object (#354)
* Function parallelism (#343)Alon Zakai2016-04-158-2/+18
| | | | * 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
* rename function locals, to params and vars, which together are all the ↵Alon Zakai2016-04-143-8/+8
| | | | locals. preparation for #336 (#349)
* drop completely unused locals in ReorderLocalsAlon Zakai2016-04-112-1/+10
|
* continue simplifying locals while opportunities present themselvesAlon Zakai2016-04-111-23/+37
|
* dyn_cast => dynCastAlon Zakai2016-04-116-17/+17
|
* remove set_locals with no remaining gets in SimplifyLocalsAlon Zakai2016-04-111-4/+51
|
* De-recurse traversals (#333)Alon Zakai2016-04-1112-45/+55
| | | | | | | | | | | | * 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
* add option to print full ast, no elisionsAlon Zakai2016-04-091-6/+28
|
* clean up in PrintAlon Zakai2016-04-091-12/+14
|
* fold eqz+comparisonsAlon Zakai2016-04-091-0/+22
|
* add missing checks on nested blocks in SimplifyExpressionsAlon Zakai2016-04-071-2/+7
|
* refactor checks in SimplifyLocalsAlon Zakai2016-04-071-8/+15
|
* handle loops in effect analyzerAlon Zakai2016-04-071-8/+19
|
* fix invalidation logic in SimplifyLocals, visit each node as we hit it, do ↵Alon Zakai2016-04-071-1/+3
| | | | not walk it to look for invalidating elements that are children, we already saw them
* derecurse blocks helper, and use it in SimplifyLocalsAlon Zakai2016-04-071-8/+6
|
* add vacuum passAlon Zakai2016-04-071-0/+48
|
* rewrite SimplifyLocals to use FastExecutionWalkerAlon Zakai2016-04-071-12/+71
|
* optimize if-eqzAlon Zakai2016-04-061-0/+43
|
* refactor printingAlon Zakai2016-04-041-1/+2
|
* add apis for accessing module elementsAlon Zakai2016-04-041-6/+8
|
* Make type of EqZ unary operators always i32Derek Schuff2016-03-211-1/+1
| | | | | This makes them symmetric to binary relational operators. Also support eqz in the s2wasm parser.
* update spec tests and support eqzAlon Zakai2016-03-191-0/+1
|
* add explicit memory export supportAlon Zakai2016-03-151-0/+6
|
* de-recurse operations on nested blocksAlon Zakai2016-03-101-6/+31
|
* Implement rotatesDerek Schuff2016-03-091-0/+2
|
* br_table, no more casesAlon Zakai2016-03-074-126/+14
|
* update if parsing to new spec rulesAlon Zakai2016-03-071-3/+14
|
* add a finalize() method for blocksAlon Zakai2016-03-073-2/+5
|
* update select changes in specAlon Zakai2016-03-021-1/+1
|