Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | | handle squared shifts of an unreachable | Alon Zakai (kripken) | 2017-07-31 | 1 | -2/+2 | |
| | | ||||||
* | | don't remove values from breaks if the values have side effects | Alon Zakai (kripken) | 2017-07-30 | 1 | -11/+23 | |
| | | ||||||
* | | fix optimizing two shifts into one; if the number of effective shifts ↵ | Alon Zakai (kripken) | 2017-07-30 | 3 | -14/+41 | |
| | | | | | | | | overflows, it is not vali to just add them | |||||
* | | do not swap elements in conditionalizeExpensiveOnBitwise if they invalidate ↵ | Alon Zakai (kripken) | 2017-07-29 | 1 | -6/+9 | |
| | | | | | | | | each other - it is not enough to check side effects, we must check the interaction as well | |||||
* | | fix binary emitting of untaken branches, and also handle reading of ↵ | Alon Zakai (kripken) | 2017-07-29 | 1 | -3/+10 | |
| | | | | | | | | unreachable stacky code which may introduce concrete elements in non-final block positoins | |||||
* | | refactor effective shift size computation | Alon Zakai | 2017-07-29 | 2 | -3/+14 | |
| | | ||||||
* | | fix shl shift computation in getMaxBits | Alon Zakai | 2017-07-29 | 1 | -1/+1 | |
| | | ||||||
* | | fix shift computation in getMaxBits - in wasm only the lower 5 bits matter ↵ | Alon Zakai | 2017-07-29 | 1 | -2/+2 | |
| | | | | | | | | for a 32-bit shift | |||||
* | | do not combine a load/store offset with a constant pointer if it would wrap ↵ | Alon Zakai (kripken) | 2017-07-29 | 1 | -2/+9 | |
|/ | | | | a negative value to a positive one, as trapping is tricky | |||||
* | fix import type detection of calls in comma operators; when the parent is a ↵ | Alon Zakai | 2017-07-27 | 1 | -7/+11 | |
| | | | | comma, it can't be a coersion (or that would have been the parent), so there is no coercion, so the result type is none (#1115) | |||||
* | Merge pull request #1114 from WebAssembly/fuzz | Alon Zakai | 2017-07-27 | 2 | -2/+4 | |
|\ | | | | | Fuzz fixes | |||||
| * | when finalizing a block in MergeBlocks, use its type, so that we don't need ↵ | Alon Zakai | 2017-07-24 | 1 | -1/+1 | |
| | | | | | | | | to consider type changes for its parent (changing it from a forced i32 to an unreachable might mean the parent needs to become unreachable too) | |||||
| * | ignore untaken branches in determining block type | Alon Zakai | 2017-07-22 | 1 | -1/+3 | |
| | | ||||||
* | | fix asm2wasm wasm-only i64 switches with a large (>32 bit) offset #1109 (#1111) | Alon Zakai | 2017-07-26 | 1 | -1/+31 | |
|/ | ||||||
* | Optimizer support for atomic instructions (#1094) | Derek Schuff | 2017-07-21 | 9 | -75/+155 | |
| | | | | | | * Teach EffectAnalyzer not to reorder atomics wrt other memory operations. * Teach EffectAnalyzer not to reorder host operations with memory operations * Teach various passes about the operands of AtomicRMW and AtomicCmpxchg * Factor out some functions in DeadCodeElimination and MergeBlocks | |||||
* | fix f32 frem in asm2wasm #1105 (#1106) | Alon Zakai | 2017-07-20 | 1 | -33/+20 | |
| | ||||||
* | improve WasmValidator::validateMemBytes, check for unreasonable sizes even ↵ | Alon Zakai | 2017-07-19 | 1 | -6/+6 | |
| | | | | type is unreachable (#1102) | |||||
* | Merge pull request #1100 from WebAssembly/fuzz-4 | Alon Zakai | 2017-07-18 | 4 | -25/+38 | |
|\ | | | | | Yet more fuzz fixes | |||||
| * | fix off-by-one in assertion in optimize-instructions | Alon Zakai | 2017-07-17 | 1 | -1/+1 | |
| | | ||||||
| * | fix vacuum bug on nop'ing an if whose body has brs that cause type changes ↵ | Alon Zakai | 2017-07-17 | 1 | -0/+1 | |
| | | | | | | | | when removed | |||||
| * | add missing finalizations in removeUnusedBrs, when we change an if side and ↵ | Alon Zakai | 2017-07-17 | 1 | -0/+6 | |
| | | | | | | | | its outer block, we need to finalize the if first and then the block containing it | |||||
| * | fix blockifyMerge logic - it needs to not skip code in the block we merge ↵ | Alon Zakai | 2017-07-17 | 2 | -24/+30 | |
| | | | | | | | | to. since that's a fairly specific functionality needed in removeUnusedBrs, move it to there | |||||
* | | Fix wasm::read_file() to read correctly sized input strings in text mode. ↵ | juj | 2017-07-18 | 1 | -0/+6 | |
| | | | | | | | | (#1088) | |||||
* | | Merge pull request #1095 from WebAssembly/fuzz-3 | Alon Zakai | 2017-07-18 | 9 | -23/+87 | |
|\| | | | | | More fuzz fixes | |||||
| * | fix merge-blocks logic in call, call_indirect, select, we need to avoid any ↵ | Alon Zakai (kripken) | 2017-07-14 | 2 | -7/+21 | |
| | | | | | | | | danger of moving something past a side effect ; also fix an asm2wasm bug with call_indirect fixups; the call target may be a block, which we need to look through | |||||
| * | handle an unreachable block with a reachable final element in merge-blocks | Alon Zakai (kripken) | 2017-07-14 | 1 | -0/+9 | |
| | | ||||||
| * | when removing an if-copy in coalesce-locals, if it's a tee, we do still need ↵ | Alon Zakai (kripken) | 2017-07-13 | 1 | -1/+3 | |
| | | | | | | | | the get in that arm. only when it is not a tee can we remove that arm and make the if-else into an if | |||||
| * | fix validation of memBytes, if the load type is unreachable, we can't and ↵ | Alon Zakai (kripken) | 2017-07-13 | 2 | -3/+6 | |
| | | | | | | | | shouldn't try to validate | |||||
| * | note changes when removing an if body in vacuum | Alon Zakai (kripken) | 2017-07-13 | 1 | -0/+4 | |
| | | ||||||
| * | optimize shifts of 0 | Alon Zakai | 2017-07-13 | 1 | -0/+6 | |
| | | ||||||
| * | zero shifts are not sign-extends | Alon Zakai | 2017-07-13 | 1 | -10/+14 | |
| | | ||||||
| * | handle an unreachable condition properly in vacuum if simplification | Alon Zakai (kripken) | 2017-07-13 | 1 | -0/+6 | |
| | | ||||||
| * | fix handling of an if in a tee without an else, in coalesce-locals | Alon Zakai (kripken) | 2017-07-13 | 1 | -1/+3 | |
| | | ||||||
| * | infinite loops have side effects | Alon Zakai (kripken) | 2017-07-13 | 1 | -1/+15 | |
| | | ||||||
* | | Fix wrong name in --help output (#1099) | Alan Mimms | 2017-07-17 | 1 | -1/+1 | |
| | | ||||||
* | | Validation for AtomicRMW and cmpxchg (#1092) | Derek Schuff | 2017-07-14 | 2 | -10/+37 | |
|/ | | | | Also fix cases where fail() had the arguments backwards. Wasn't an error because lol templates. Also fix printModuleComponent template to SFINAE on Expression* so we properly get the specialized version. | |||||
* | Merge pull request #1087 from WebAssembly/fuzz-2 | Alon Zakai | 2017-07-12 | 23 | -293/+405 | |
|\ | | | | | Fuzz fixes | |||||
| * | fix handling of unreachable br values in merge-blocks | Alon Zakai (kripken) | 2017-07-11 | 1 | -1/+7 | |
| | | ||||||
| * | fix coalesce-locals handling of set/tee local of an unreachable; we still ↵ | Alon Zakai (kripken) | 2017-07-11 | 1 | -2/+6 | |
| | | | | | | | | need the value, as it may do things | |||||
| * | fix block removal in remove-unused-brs, even if not taken, if named, we must ↵ | Alon Zakai (kripken) | 2017-07-11 | 1 | -2/+2 | |
| | | | | | | | | preserve it | |||||
| * | changing a set to a tee or vice versa needs to take into account the value ↵ | Alon Zakai (kripken) | 2017-07-11 | 2 | -1/+2 | |
| | | | | | | | | may be unreachable | |||||
| * | handle unary and binary nodes that have implicit traps in vacuum | Alon Zakai (kripken) | 2017-07-11 | 1 | -1/+12 | |
| | | ||||||
| * | fix Const finalization and use it properly in br finalization in Precompute | Alon Zakai (kripken) | 2017-07-11 | 3 | -1/+10 | |
| | | ||||||
| * | loads may trap, do not remove them in vacuum unless the pass options allow that | Alon Zakai (kripken) | 2017-07-11 | 1 | -1/+3 | |
| | | ||||||
| * | properly handle if arm removal in vacuum | Alon Zakai (kripken) | 2017-07-11 | 1 | -0/+4 | |
| | | ||||||
| * | add the option to seek named breaks, not just taken breaks; refactor headers ↵ | Alon Zakai (kripken) | 2017-07-11 | 17 | -268/+324 | |
| | | | | | | | | to make this practical | |||||
| * | refactor and improve break validation. breaks names are unique, so we don't ↵ | Alon Zakai (kripken) | 2017-07-11 | 4 | -18/+33 | |
| | | | | | | | | need a stack, and break targets must exist even if they are not actually taken | |||||
| * | finalize new drops in SimplifyLocals | Alon Zakai (kripken) | 2017-07-11 | 1 | -0/+2 | |
| | | ||||||
| * | don't remove unreachable nodes in vaccuum, it can alter types, and dce does ↵ | Alon Zakai (kripken) | 2017-07-11 | 1 | -0/+2 | |
| | | | | | | | | that anyhow, let it do it's thing | |||||
* | | Refactor validation failure and printing, validate atomic memory (#1090) | Derek Schuff | 2017-07-12 | 2 | -33/+76 | |
| | |