summaryrefslogtreecommitdiff
path: root/test/unit.fromasm.imprecise.no-opts
Commit message (Collapse)AuthorAgeFilesLines
* Rename tableBase/memoryBase to __table_base/__memory_base (#1731)Sam Clegg2018-11-081-3/+3
|
* Emit imports before defined things in text format (#1715)Alon Zakai2018-11-011-1/+1
| | | | | That is the correct order in the text format, wabt errors otherwise. See AssemblyScript/assemblyscript#310
* Unify imported and non-imported things (#1678)Alon Zakai2018-09-191-2/+2
| | | | | | | | | | | | | | Fixes #1649 This moves us to a single object for functions, which can be imported or nor, and likewise for globals (as a result, GetGlobals do not need to check if the global is imported or not, etc.). All imported things now inherit from Importable, which has the module and base of the import, and if they are set then it is an import. For convenient iteration, there are a few helpers like ModuleUtils::iterDefinedGlobals(wasm, [&](Global* global) { .. use global .. }); as often iteration only cares about imported or defined (non-imported) things.
* fix sign detection of a floating-point mod ; fixes kripken/emscripten#7123 ↵Alon Zakai2018-09-151-10/+36
| | | | (#1681)
* Optimize out memory and table when possible (#1352)Alon Zakai2018-01-101-4/+4
| | | We can remove the memory/table (itself, or an import if imported) if they are not used. This is pretty minor on a large wasm file, but when reading small wasts it's very noticeable to have an unused memory and table all the time.
* Update call_indirect text syntax to match spec update (#1281)Derek Schuff2017-11-131-8/+8
| | | | Function type gets its own element rather than being a part of the call_indirect (see WebAssembly/spec#599)
* Emit binary function index in comment in text format, for convenience (#1232)Alon Zakai2017-10-201-79/+79
|
* optimize helper funcs (like i32-div) if created in asm2wasm, so they are ↵Alon Zakai2017-10-041-0/+13
| | | | consistently handled regardless of whether we optimize in parallel or not (#1208)
* precompute-propagate pass (#1179)Alon Zakai2017-09-121-22/+76
| | | | | | | Implements #1172: this adds a variant of precompute, "precompute-propagate", which also does constant propagation. Precompute by itself just runs the interpreter on each expression and sees if it is in fact a constant; precompute-propagate also looks at the graph of connections between get and set locals, and propagates those constant values. This helps with cases as noticed in #1168 - while in most cases LLVM will do this already, it's important when inlining, e.g. inlining of the clamping math functions. This new pass is run when inlining, and otherwise only in -O3/-Oz, as it does increase compilation time noticeably if run on everything (and for almost no benefit if LLVM has run). Most of the code here is just refactoring out from the ssa pass the get/set graph computation, so it can now be used by both the ssa pass and precompute-propagate.
* Improve and enable inlining pass (#966)Alon Zakai2017-08-071-0/+5
| | | | | | | | * improve inlining pass to inline single-use functions that are fairly small, which makes it useful for removing unnecessary global constructors from clang. add an inlining-optimizing pass that also optimizes where it inlined, as new opportunities arise. enable that it by default in O2+ * fix a bug where we didn't run all passes properly - refactor addDefaultGlobalOptimizationPasses() into a pre and post version. we can only run the post version in incremental optimizing builds (functions appear one by one, we optimize them first, and do global stuff when all are done), but can run both when doing a full optimize * copy in inlining, allowing multiple inlinings of the same function in the future
* fix import type detection of calls in comma operators; when the parent is a ↵Alon Zakai2017-07-271-0/+18
| | | | 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)
* fix f32 frem in asm2wasm #1105 (#1106)Alon Zakai2017-07-201-0/+20
|
* fix merge-blocks logic in call, call_indirect, select, we need to avoid any ↵Alon Zakai (kripken)2017-07-141-0/+19
| | | | 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
* Support new result syntax for if/loop/block (#1047)Sam Clegg2017-06-121-23/+23
| | | | | | Support both syntax formats in input since the old spec tests still need to be parsable.
* asm2wasm: properly infer return type of a call inside a sequence (#1006)Alon Zakai2017-05-091-2/+26
|
* fix autoDrop, now that we properly set block types, unreachable can easily ↵Alon Zakai2017-05-091-0/+39
| | | | happen, and autoDrop wasn't handling it (#1005)
* handle unsigned float-to-int properly in asm2wasmAlon Zakai (kripken)2017-04-181-1/+1
|
* add test for f64-to-int signed/unsignedAlon Zakai (kripken)2017-04-181-0/+24
|
* use a single space for pretty printing of wasts, so massive wasts are less ↵Alon Zakai2017-03-091-1755/+1755
| | | | unruly (#928)
* stop doing dce in -O0, which was just need temporarily while browsers figure ↵Alon Zakai2017-03-061-0/+6
| | | | out the spec (#932)
* add sqrt test (#912)Alon Zakai2017-02-161-0/+24
|
* DCE even in -O0 (#884)Alon Zakai2017-01-191-6/+0
|
* emit globals before table and memory, because they may use a global for ↵Alon Zakai2016-12-301-1/+1
| | | | their element/segment offsets
* lower min and max in asm2wasm in wasm f*.min/maxAlon Zakai2016-12-071-0/+30
|
* make legalizeJSInterface handle f32s as well, which are not valid in asm.js ffisAlon Zakai2016-12-071-3/+43
|
* convert ftCall_* and mftCall_* into table callsAlon Zakai2016-12-071-0/+18
|
* support asm.js numeric exports by creating a global and exporting thatAlon Zakai2016-12-071-0/+2
|
* use tableBase for the table segmentsAlon Zakai2016-12-071-1/+1
|
* support assigns of f32 to HEAP64 in asm2wasm (#830)Alon Zakai2016-11-071-0/+11
|
* handle a label setting inside the if-body of a label value in ↵Alon Zakai2016-11-061-0/+72
| | | | RelooperJumpThreading
* Fixes fround of an unsigned integer (#821)Alon Zakai2016-11-041-0/+14
| | | | | | | | * fix fround of unsigned * add testing for f32 ops, and remove a duplicate test (now that f32 is on by default in wasm, we don't need to check with and without PRECISE_F32) * update wasm.js and binaryen.js
* fix large f32 consts, fixes #817 (#820)Alon Zakai2016-11-011-0/+5
|
* Optimize out bool & 1 (#804)Alon Zakai2016-10-251-6/+14
| | | | | | * asm.js corrections to unit.asm.js test * optimize out bool&1
* run remove-unused-functions by defaultAlon Zakai2016-10-141-0/+39
|
* Change print order of top-level module components (#751)Derek Schuff2016-10-071-3/+3
| | | | | | | | In wast files, the spec and WABT require imports to appear before any non-import definitions (see also https://github.com/WebAssembly/wabt/issues/152). This patch re-orders visitModule in the wast printer to meet this requirement, and more or less match the order of the binary sections. Also remove extraneous whitespace around table definitions.
* Require unique names in binaryen IR (#746)Alon Zakai2016-10-061-75/+75
|
* don't create an unnecessary duplicate block in asm2wasm switches, when there ↵Alon Zakai2016-10-031-71/+63
| | | | isn't a default (#734)
* Print the name of memory along with size (#720)Derek Schuff2016-09-281-1/+1
| | | | | Otherwise when we export it as "$0" it's an undefined name. The spec interpreter actually rejects this, although I think it's intended to work, given the tests in export.wast. wabt also accepts it.
* Type check block/loop/if sigs (#717)Alon Zakai2016-09-281-2/+2
| | | | | | * 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.
* optimize if(const)Alon Zakai2016-09-241-6/+6
|
* precompute void expressions tooAlon Zakai2016-09-241-2/+2
|
* replace two drops in an if-else with one on the ifAlon Zakai2016-09-231-0/+19
|
* autoDrop fixAlon Zakai2016-09-231-18/+38
|
* memory and table printing fixesAlon Zakai2016-09-201-4/+2
|
* globals mutability fixesAlon Zakai2016-09-191-7/+12
|
* block signaturesAlon Zakai2016-09-161-20/+20
|
* call_import changes: no more call_import, shared index space with functionsAlon Zakai2016-09-161-39/+39
|
* drop if-else arms as necessaryAlon Zakai2016-09-131-2/+46
|
* update br type when turning it into a br_if in remove-unused-brsAlon Zakai2016-09-131-0/+28
|
* thread relooper jumpsAlon Zakai2016-09-121-36/+276
|