- 25 May, 2016 1 commit
-
-
bradnelson authored
Intersection of types is used in several places, if it yields the empty set, this indicates a type mismatch. We should emit an error in this case. Add the RECURSE() macro around IntersectResult to allow errors to propagate immediately. BUG=614291 R=ahaas@chromium.org TEST=asm-wasm LOG=N Review-Url: https://codereview.chromium.org/2011873002 Cr-Commit-Position: refs/heads/master@{#36525}
-
- 19 May, 2016 2 commits
-
-
clemensh authored
R=titzer@chromium.org, yangguo@chromium.org Review-Url: https://codereview.chromium.org/1961453002 Cr-Commit-Position: refs/heads/master@{#36354}
-
clemensh authored
Empty function names are allowed and are output as such, unnamed functions or functions with no valid UTF-8 name are output as "<WASM UNNAMED>", while the CallSite object returns null as the function name. R=titzer@chromium.org, yangguo@chromium.org Review-Url: https://codereview.chromium.org/1970503004 Cr-Commit-Position: refs/heads/master@{#36348}
-
- 12 May, 2016 3 commits
-
-
clemensh authored
Names passed for imports and exports are checked during decoding, leading to errors if they are no valid UTF-8. Function names are not checked during decode, but rather lead to undefined being returned at runtime if they are not UTF-8. We need to do these checks on the Wasm side, since the factory methods assume to get valid UTF-8 strings. R=titzer@chromium.org, yangguo@chromium.org Review-Url: https://codereview.chromium.org/1967023004 Cr-Commit-Position: refs/heads/master@{#36208}
-
ahaas authored
With this CL it is possible to compile a wasm module with multiple threads in parallel. Parallel compilation works as follows: 1) The main thread allocates a compilation unit for each wasm function. 2) The main thread spawns WasmCompilationTasks which run on the background threads. 3.a) The background threads and the main thread pick one compilation unit at a time and execute the parallel phase of the compilation unit. After finishing the execution of the parallel phase, the compilation unit is stored in a result queue. 3.b) If the result queue contains a compilation unit, the main thread dequeues it and finishes its compilation. 4) After the execution of the parallel phase of all compilation units has started, the main thread waits for all WasmCompilationTasks to finish. 5) The main thread finalizes the compilation of the module. I'm going to add some additional tests before committing this CL. R=titzer@chromium.org, bmeurer@chromium.org, mlippautz@chromium.org, mstarzinger@chromium.org Committed: https://crrev.com/17215438659d8ff2d7d55f95226bf8a1477ccd79 Cr-Commit-Position: refs/heads/master@{#36178} Review-Url: https://codereview.chromium.org/1961973002 Cr-Commit-Position: refs/heads/master@{#36207}
-
clemensh authored
And add more tests for traps at different locations. R=titzer@chromium.org, yangguo@chromium.org Review-Url: https://codereview.chromium.org/1924253002 Cr-Commit-Position: refs/heads/master@{#36202}
-
- 11 May, 2016 2 commits
-
-
ahaas authored
Revert of [wasm] Implement parallel compilation. (patchset #6 id:100001 of https://codereview.chromium.org/1961973002/ ) Reason for revert: The ThreadSanitizer finds data races. Original issue's description: > [wasm] Implement parallel compilation. > > With this CL it is possible to compile a wasm module with multiple > threads in parallel. Parallel compilation works as follows: > > 1) The main thread allocates a compilation unit for each wasm function. > 2) The main thread spawns WasmCompilationTasks which run on the > background threads. > 3.a) The background threads and the main thread pick one compilation unit > at a time and execute the parallel phase of the compilation unit. > After finishing the execution of the parallel phase, the compilation > unit is stored in a result queue. > 3.b) If the result queue contains a compilation unit, the main thread > dequeues it and finishes its compilation. > 4) After the execution of the parallel phase of all compilation units has > started, the main thread waits for all WasmCompilationTasks to finish. > 5) The main thread finalizes the compilation of the module. > > I'm going to add some additional tests before committing this CL. > > R=titzer@chromium.org, bmeurer@chromium.org, mlippautz@chromium.org, mstarzinger@chromium.org > > Committed: https://crrev.com/17215438659d8ff2d7d55f95226bf8a1477ccd79 > Cr-Commit-Position: refs/heads/master@{#36178} TBR=bmeurer@chromium.org,mlippautz@chromium.org,mstarzinger@chromium.org,titzer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/1965243003 Cr-Commit-Position: refs/heads/master@{#36182}
-
ahaas authored
With this CL it is possible to compile a wasm module with multiple threads in parallel. Parallel compilation works as follows: 1) The main thread allocates a compilation unit for each wasm function. 2) The main thread spawns WasmCompilationTasks which run on the background threads. 3.a) The background threads and the main thread pick one compilation unit at a time and execute the parallel phase of the compilation unit. After finishing the execution of the parallel phase, the compilation unit is stored in a result queue. 3.b) If the result queue contains a compilation unit, the main thread dequeues it and finishes its compilation. 4) After the execution of the parallel phase of all compilation units has started, the main thread waits for all WasmCompilationTasks to finish. 5) The main thread finalizes the compilation of the module. I'm going to add some additional tests before committing this CL. R=titzer@chromium.org, bmeurer@chromium.org, mlippautz@chromium.org, mstarzinger@chromium.org Review-Url: https://codereview.chromium.org/1961973002 Cr-Commit-Position: refs/heads/master@{#36178}
-
- 06 May, 2016 1 commit
-
-
clemensh authored
This changes different locations to extract the reference to the wasm object and the function index from the stack trace, and make it available through all the APIs which process stack traces. The javascript CallSite object now has the new methods isWasm(), getWasmObject() and getWasmFunctionIndex(); the byte offset is available via getPosition(). Function names of wasm frames should be fully functional with this commit, position information works reliably for calls, but not for traps like unreachable or out-of-bounds accesses. R=titzer@chromium.org, yangguo@chromium.org Review-Url: https://codereview.chromium.org/1909353002 Cr-Commit-Position: refs/heads/master@{#36067}
-
- 29 Apr, 2016 2 commits
-
-
titzer authored
[wasm] Binary 11: Swap the order of section name / section length. [wasm] Binary 11: Shorter section names. [wasm] Binary 11: Add a prefix for function type declarations. [wasm] Binary 11: Function types encoded as pcount, p*, rcount, r* [wasm] Fix numeric names for functions. R=rossberg@chromium.org,jfb@chromium.org,ahaas@chromium.org BUG=chromium:575167 LOG=Y Review-Url: https://codereview.chromium.org/1896863003 Cr-Commit-Position: refs/heads/master@{#35897}
-
titzer authored
[wasm] Binary 11: br_table takes a value. [wasm] Binary 11: Add implicit blocks to if arms. [wasm] Binary 11: Add arities to call, return, and breaks [wasm] Binary 11: Add experimental version. This CL changes the encoder, decoder, and tests to use a postorder encoding of the AST, which is more efficient in decode time and space. R=bradnelson@chromium.org,rossberg@chromium.org,binji@chromium.org BUG=chromium:575167 LOG=Y Review-Url: https://codereview.chromium.org/1830663002 Cr-Commit-Position: refs/heads/master@{#35896}
-
- 21 Apr, 2016 3 commits
-
-
titzer authored
R=jfb@chromium.org,rossberg@chromium.org BUG= Review URL: https://codereview.chromium.org/1900153002 Cr-Commit-Position: refs/heads/master@{#35698}
-
clemensh authored
Since traps now throw real Error objects, we get stack traces containing <WASM> functions on top-level. The additional tests check for two traps: unreachable and memory out-of-bounds. R=ahaas@chromium.org, jfb@chromium.org, titzer@chromium.org BUG= Review URL: https://codereview.chromium.org/1878563003 Cr-Commit-Position: refs/heads/master@{#35691}
-
clemensh authored
This extends the wasm test case which only checks the "simple" string-variant of the stack trace. It checks the return values of the getFunctionName, getLineNumber, getFileName and toString methods. R=machenbach@chromium.org, jfb@chromium.org, titzer@chromium.org Review URL: https://codereview.chromium.org/1875153002 Cr-Commit-Position: refs/heads/master@{#35687}
-
- 20 Apr, 2016 4 commits
-
-
machenbach authored
Revert of [wasm] Also test structured stack trace (patchset #4 id:60001 of https://codereview.chromium.org/1875153002/ ) Reason for revert: Breaks: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20custom%20snapshot%20-%20debug/builds/6322 Original issue's description: > [wasm] Also test structured stack trace > > This extends the wasm test case which only checks the "simple" > string-variant of the stack trace. > It checks the return values of the getFunctionName, getLineNumber, > getFileName and toString methods. > > R=ahaas@chromium.org, jfb@chromium.org, titzer@chromium.org > BUG= TBR=ahaas@chromium.org,jfb@chromium.org,titzer@chromium.org,clemensh@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1903293002 Cr-Commit-Position: refs/heads/master@{#35670}
-
clemensh authored
This extends the wasm test case which only checks the "simple" string-variant of the stack trace. It checks the return values of the getFunctionName, getLineNumber, getFileName and toString methods. R=ahaas@chromium.org, jfb@chromium.org, titzer@chromium.org BUG= Review URL: https://codereview.chromium.org/1875153002 Cr-Commit-Position: refs/heads/master@{#35666}
-
clemensh authored
Before, just a string was thrown, so no stack trace was attached there. Generated code from wasm does not grow by this change, we just pass a message id to the respective (new) runtime function. R=mstarzinger@chromium.org, titzer@chromium.org BUG= Review URL: https://codereview.chromium.org/1874383002 Cr-Commit-Position: refs/heads/master@{#35664}
-
ahaas authored
All wasm spec tests can now be run on ia32. R=titzer@chromium.org Review URL: https://codereview.chromium.org/1899753004 Cr-Commit-Position: refs/heads/master@{#35663}
-
- 13 Apr, 2016 1 commit
-
-
aseemgarg authored
This change implements switch as a balanced if/else tree or break table or hybrid. A lot of asm.js modules are expected to extensively use switch alongside function tables that can benefit from a better implementation. BUG=v8:4203 TEST=mjsunit/asm-wasm R=titzer@chromium.org,bradnelson@chromium.org,ahaas@chromium.org LOG=N Review URL: https://codereview.chromium.org/1838973002 Cr-Commit-Position: refs/heads/master@{#35455}
-
- 31 Mar, 2016 1 commit
-
-
titzer authored
R=ahaas@chromium.org, bradnelson@chromium.org BUG= Review URL: https://codereview.chromium.org/1846613002 Cr-Commit-Position: refs/heads/master@{#35156}
-
- 30 Mar, 2016 2 commits
-
-
titzer authored
R=ahaas@chromium.org,bradnelson@chromium.org BUG= Review URL: https://codereview.chromium.org/1845443003 Cr-Commit-Position: refs/heads/master@{#35136}
-
titzer authored
R=ahaas@chromium.org,bradnelson@chromium.org BUG= Review URL: https://codereview.chromium.org/1839333002 Cr-Commit-Position: refs/heads/master@{#35134}
-
- 24 Mar, 2016 4 commits
-
-
titzer authored
R=jarin@chromium.org BUG= Review URL: https://codereview.chromium.org/1830703003 Cr-Commit-Position: refs/heads/master@{#35067}
-
bradnelson authored
This previously tickled the failure fixed in this issue: https://crrev.com/6a806a558158cbab55ad9a1a456942a7c509c810 BUG= https://code.google.com/p/v8/issues/detail?id=4203 TEST=asm-wasm-deopt R=aseemgarg@chromium.org,titzer@chromium.org LOG=N Review URL: https://codereview.chromium.org/1766153002 Cr-Commit-Position: refs/heads/master@{#35064}
-
titzer authored
R=jarin@chromium.org,bradnelson@chromium.org BUG= Review URL: https://codereview.chromium.org/1828223002 Cr-Commit-Position: refs/heads/master@{#35056}
-
bradnelson authored
This was previously undetected due to a now fixed typing bug. BUG= https://bugs.chromium.org/p/v8/issues/detail?id=4203 TEST=test-asm-validator,asm-wasm TBR=titzer@chromium.org LOG=N NOTRY=true Review URL: https://codereview.chromium.org/1823333005 Cr-Commit-Position: refs/heads/master@{#35048}
-
- 23 Mar, 2016 3 commits
-
-
bradnelson authored
Properly convert unsigned literals. Forbid using unary + on a kAsmInt. Forbid multiplies other than * 1.0 as being equivalent to unary +. BUG= https://bugs.chromium.org/p/v8/issues/detail?id=4203 TEST=test-asm-validator,asm-wasm R=titzer@chromium.org,aseemgarg@chromium.org LOG=N Review URL: https://codereview.chromium.org/1832603002 Cr-Commit-Position: refs/heads/master@{#35046}
-
titzer authored
R=bradnelson@chromium.org BUG= Review URL: https://codereview.chromium.org/1825333004 Cr-Commit-Position: refs/heads/master@{#35045}
-
bradnelson authored
This got fixed by this change: https://crrev.com/32a2ab0c724673961aa145ab63c79a29e6d28fa8 Adding a smaller mjsunit test capturing the issue (was with idiv register allocation). BUG= https://bugs.chromium.org/p/chromium/issues/detail?id=593283 R=aseemgarg@chromium.org,titzer@chromium.org LOG=N TEST=asm-wasm-copy Review URL: https://codereview.chromium.org/1820163002 Cr-Commit-Position: refs/heads/master@{#35041}
-
- 21 Mar, 2016 1 commit
-
-
bradnelson authored
Add missing conversions from other types to f32 in fround. Restrict fround() to only float, double, signed, unsigned (no unions / intish). Restrict Bitwise operations to intish, particularly |0, when not applied to a foreign function. Adding more exhaustive tests of stdlib Math, move to a separate file. Adding tests of interesting values for the stdlib asm.js functions. BUG= https://bugs.chromium.org/p/v8/issues/detail?id=4203 TEST=test-asm-validator,asm-wasm R=titzer@chromium.org,rossberg@chromium.org LOG=N Review URL: https://codereview.chromium.org/1804243003 Cr-Commit-Position: refs/heads/master@{#34967}
-
- 14 Mar, 2016 1 commit
-
-
bradnelson authored
The rules for handling foreign functions were interfering with handling of standard functions (such as fround). Adding more tests around abs() BUG= https://bugs.chromium.org/p/v8/issues/detail?id=4203 TEST=test-asm-validator,asm-wasm R=titzer@chromium.org,rossberg@chromium.org LOG=N Review URL: https://codereview.chromium.org/1794303002 Cr-Commit-Position: refs/heads/master@{#34756}
-
- 10 Mar, 2016 2 commits
-
-
titzer authored
R=mstarzinger@chromium.org,bradnelson@chromium.org BUG= Review URL: https://codereview.chromium.org/1782613003 Cr-Commit-Position: refs/heads/master@{#34682}
-
jfb authored
This will require an equivalent sexpr-wasm change. See: https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md#high-level-structure R=titzer@chromium.org, binji@chronium.org Review URL: https://codereview.chromium.org/1765843002 Cr-Commit-Position: refs/heads/master@{#34668}
-
- 09 Mar, 2016 6 commits
-
-
titzer authored
R=binji@chromium.org BUG= Review URL: https://codereview.chromium.org/1783593002 Cr-Commit-Position: refs/heads/master@{#34641}
-
binji authored
BUG= R=titzer@chromium.org Review URL: https://codereview.chromium.org/1776923005 Cr-Commit-Position: refs/heads/master@{#34639}
-
binji authored
R=titzer@chromium.org Review URL: https://codereview.chromium.org/1781523002 Cr-Commit-Position: refs/heads/master@{#34637}
-
titzer authored
R=binji@chromium.org BUG= Review URL: https://codereview.chromium.org/1775123003 Cr-Commit-Position: refs/heads/master@{#34635}
-
titzer authored
R=ahaas@chromium.org,bradnelson@chromium.org BUG= Review URL: https://codereview.chromium.org/1775353003 Cr-Commit-Position: refs/heads/master@{#34621}
-
titzer authored
R=verwaest@chromium.org BUG= Review URL: https://codereview.chromium.org/1778863002 Cr-Commit-Position: refs/heads/master@{#34617}
-
- 08 Mar, 2016 1 commit
-
-
binji authored
This CL modifies the following to be LEB128: * Function table indices * Import table signature indices * Export table function indices * Function signature param count * br/br_if break depth * br_table target count * block/loop expression count Still to do: * Import/export names (LEB128 count + inline data) * Data segments (LEB128 offset + size + inline data) * Function header stuff (should seperate into function sig and body sections) * Memory access alignment + offset (still discussing) BUG= R=titzer@chromium.org Review URL: https://codereview.chromium.org/1775873002 Cr-Commit-Position: refs/heads/master@{#34603}
-