summaryrefslogtreecommitdiff
path: root/test
Commit message (Collapse)AuthorAgeFilesLines
* offset support in tableAlon Zakai2016-08-1531-36/+36
|
* support function table initial and max sizes, and new printing formatAlon Zakai2016-08-1231-35/+70
|
* support expressions in segment offsetsAlon Zakai2016-08-1269-237/+169
|
* Implement asm.js style exception handling for Wasm (#664)Heejin Ahn2016-08-115-1/+208
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Implement asm.js style exception handling for Wasm Converts invoke wrapper names generated by LLVM backend to real invoke wrapper names that are expected by JavaScript glue code. This is required to support wasm exception handling (asm.js style). LLVM backend lowers invoke @func(arg1, arg2) to label %invoke.cont unwind label %lpad into ... (some code) call @invoke_SIG(func, arg1, arg2) ... (some code) SIG is a mangled string generated based on the LLVM IR-level function signature. In LLVM IR, types are not lowered yet, so this mangling scheme simply takes LLVM's string representtion of parameter types and concatenate them with '_'. For example, the name of an invoke wrapper for function void foo(struct mystruct*, int) will be "__invoke_void_%struct.mystruct*_int". This function converts the names of invoke wrappers based on their lowered argument types and a return type. In the example above, the resulting new wrapper name becomes "invoke_vii". * Address comments Change variable names to camelcase Add a small (semi-)handwritten test case * Export malloc and free from wasm when available * Add a test case for exporting malloc/free feature + cosmetic 'file' name change in text_before_type.s * fixInvokeWrapper -> fixEmExceptionInvoke * Add a TODO
* in DemoteFloat64, if the truncated value is exactly at the limit, return it ↵Alon Zakai2016-08-081-0/+0
| | | | | (#665) and update spec tests
* Fix a parsing bug introduced by #615 (#661)Heejin Ahn2016-08-052-0/+31
| | | | | | | | | | | | | | | Name lhs = getStrToSep(); if (!skipEqual()){ s = strchr(s, '\n'); if (!s) break; continue; } The above code snippet introduced by #615 has a bug when there is only one word (e.g. ".text") in a line. If there is only one word in a line, skipEqual() also skips the newline character at the end of the line, and strchr(s, '\n') moves the cursor to the end of the next line, effectively skipping the whole next line.
* Update waterfall build revision to 9397 (#662)Derek Schuff2016-08-0452-3722/+3604
| | | Includes torture tests and new expected passes
* Create a dummy function to prevent NULL miscomparisons, if necessary (#658)Dominic Chen2016-08-038-28/+49
| | | Resolves WebAssembly/spec#312
* support pre-assigning indexes for functions that are called indirectly (#616)Dominic Chen2016-08-022-0/+150
| | | This patch adds support for an ".indidx" primitive that pre-assigns table indexes for functions that are called indirectly. It is used by the upstream LLVM WebAssembly backend to support fine-grained control-flow integrity for indirect function calls by emitting instrumentation at each indirect call site to check that the destination index is within certain ranges that correspond to disjoint equivalence classes of indirect call targets. The reason that this primitive is necessary is because the layout of the table section isn't determined until the WebAssembly linker is executed, but indirect function to table index mappings need to be known when opt is executed to generate the correct range checking in the LLVM IR.
* wast function type name desugaring is changing in spec:301 (#654)Alon Zakai2016-07-2826-316/+428
|
* Merge pull request #648 from WebAssembly/relooper-optsAlon Zakai2016-07-2017-6777/+8897
|\ | | | | Relooper improvements
| * more RemoveUnusedName opts: merge names when possible, and do block/loop ↵Alon Zakai2016-07-208-5407/+5403
| | | | | | | | merging based on their names
| * remove unused labels from loops too, and general clean ups for RemoveUnusedNamesAlon Zakai2016-07-2010-5520/+5560
| |
| * avoid label variable usage in relooper for forward branches, just use a ↵Alon Zakai2016-07-204-977/+841
| | | | | | | | stack of blocks for them. after this change, only irreducible control flow should cause label variable usage
| * add more relooper testing and improve existingAlon Zakai2016-07-207-342/+2562
| |
* | Update waterfall to build 8774 (#649)Derek Schuff2016-07-201236-6147/+6342
|/ | | Also update torture test .s files
* try natural and reverse order in coalese-localsAlon Zakai2016-07-172-2868/+2938
|
* optimize to remove as many copies as possible in coalesce-localsAlon Zakai2016-07-168-6960/+6086
|
* fix dce bug in non-parallel mode, which happens in debug mode, and add debug ↵Alon Zakai2016-07-162-0/+13
| | | | testing
* eq/ne are ok to optimize even if they are nans (#640)Alon Zakai2016-07-154-34/+47
|
* don't simplify using de-morgan's rules on floats, because of nans (#638)Alon Zakai2016-07-154-26/+91
|
* emit safe calls for i32 div/rem when in precise mode in asm2wasm, as they ↵Alon Zakai2016-07-148-53/+84
| | | | can trap (#637)
* Fix waterfall submodule (#634)Dominic Chen2016-07-141-0/+0
| | | This brings in the updates for the renaming of the binaries from 5936f05
* Merge pull request #632 from WebAssembly/tooAlon Zakai2016-07-131-0/+0
|\ | | | | Tool renaming and refactoring
| * separate wasm-opt out from wasm-shell: opt optimizes, shell runs wast shell ↵Alon Zakai2016-07-131-0/+0
| | | | | | | | tests
* | Don't emit empty array literals in trace output (#631)Alon Zakai2016-07-131-39/+39
|/ | | | * don't emit empty array literals in trace output
* Handle aliases without size (e.g. weak symbol), add redefinition warnings (#630)Dominic Chen2016-07-131-6/+10
|
* handle param overloading in asm2wasm ffis (#629)Alon Zakai2016-07-125-16/+62
|
* relooper tracing + fixesAlon Zakai2016-07-123-236/+1369
|
* allow multiple tracesAlon Zakai2016-07-122-9/+6
|
* add a tracing option to the c api, which logs out a runnable program from c ↵Alon Zakai2016-07-124-0/+1070
| | | | api calls
* add support for symbol assignments, closes #4422 (#615)Dominic Chen2016-07-112-9/+36
| | | Adds support for aliases to objects, to go along with the existing support for aliases to functions.
* add a relooper test for duff's device, showing irreducible control flow and ↵Alon Zakai2016-07-072-0/+106
| | | | helper var use
* update spec tests, and handle some flux in call_indirect in upstreamAlon Zakai2016-07-061-0/+0
|
* validate set_local types against the function #618 (#620)Alon Zakai2016-07-062-1/+33
|
* quote names in s-format that need itAlon Zakai2016-07-052-7/+7
|
* Relooper switch support (#617)Alon Zakai2016-07-022-2/+52
| | | | | | * support switches in relooper and c api * update relooper fuzzer for switches
* update emscripten submoduleAlon Zakai2016-06-291-0/+0
|
* add c api method to interpret a module, calling its start method (#601)Alon Zakai2016-06-252-0/+34
|
* finalize blocks properly in relooper (#600)Alon Zakai2016-06-242-0/+25
|
* add BinaryenExpressionPrint to c api (#599)Alon Zakai2016-06-242-0/+5
|
* test only c api examples; c++ api is internal and unstable, it is tested by ↵Alon Zakai2016-06-212-67/+0
| | | | our own codebase
* run precompute after every optimize-instructionsAlon Zakai2016-06-182-264/+48
|
* add a precompute passAlon Zakai2016-06-1812-296/+117
|
* Do not create dyncall thunks for functions with i64 results or params (#586)Derek Schuff2016-06-144-68/+30
| | | | | | Dyncall thunks are meant to be used with emscripten on the web; however on the web, functions with i64 results or params are not allowed to be exported.
* Add mode to wasm validator to check for web-environment constraints (#584)Derek Schuff2016-06-143-0/+4
| | | | | | | In the web embedding, modules are not allowed to import or export functions which have i64 params or return values. Add a mode to the validator to check for this, and add flags to s2wasm and wasm-as to enable or disable this check. Also add tests.
* Merge pull request #583 from WebAssembly/br-moreAlon Zakai2016-06-1113-96/+238
|\ | | | | Fix and improve br optimizations
| * run remove-unused-brs after simplify-localsAlon Zakai2016-06-118-104/+80
| |
| * fix br_if with value optimization in remove-unused-brsAlon Zakai2016-06-117-0/+166
| |
* | s2wasm: Validate the result module (#574)Derek Schuff2016-06-101-0/+3
|/ | | | Add an s2wasm option `--no-validate` to disable validation for debugging purposes. Also fix several validation errors by adding calls to `finalize()` after creating expressions, and ensuring that an import is created earlier in `Linker::getImportThunk`.