- 14 Jun, 2016 2 commits
-
-
cbruni authored
Reland of place all remaining Oddball checks with new function (patchset #1 id:1 of https://codereview.chromium.org/2060213002/ ) Reason for revert: Cannot reproduce gc-stress failures locally. Original issue's description: > Revert of Replace all remaining Oddball checks with new function (patchset #10 id:180001 of https://codereview.chromium.org/2043183003/ ) > > Reason for revert: > failing tests > > Original issue's description: > > Replace all remaining Oddball checks with new function > > > > This CL removes the IsUndefined() and Co. methods from Object and HeapObject. > > The new method all take the isolate as parameter. > > > > BUG= > > > > Committed: https://crrev.com/ccefb3ae5fe967288d568013fb04e8761eafebc5 > > Cr-Commit-Position: refs/heads/master@{#36921} > > TBR=mstarzinger@chromium.org,verwaest@chromium.org,yangguo@chromium.org,ahaas@chromium.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG= > > Committed: https://crrev.com/33b8bc24a12fb062100c0be84456faeb0b9fa5d1 > Cr-Commit-Position: refs/heads/master@{#36923} TBR=mstarzinger@chromium.org,verwaest@chromium.org,yangguo@chromium.org,ahaas@chromium.org BUG= Review-Url: https://codereview.chromium.org/2059173002 Cr-Commit-Position: refs/heads/master@{#36957}
-
clemensh authored
The function name table will now always be set; a CHECK will fail if the length would exceed the integer range. Also, the resolution of undefined function names to "<WASM UNNAMED>" is moved over to the wasm side. R=titzer@chromium.org Committed: https://crrev.com/3400ee9f4f21a455b7850ec42a4182a3c0eba310 Review-Url: https://codereview.chromium.org/2057523002 Cr-Original-Commit-Position: refs/heads/master@{#36918} Cr-Commit-Position: refs/heads/master@{#36952}
-
- 13 Jun, 2016 4 commits
-
-
machenbach authored
Revert of [wasm] Refactor function name table and lookup (patchset #2 id:20001 of https://codereview.chromium.org/2057523002/ ) Reason for revert: [Sheriff] Speculative revert for flaky gc stress crashes, e.g.: https://build.chromium.org/p/client.v8/builders/V8%20Mac%20GC%20Stress/builds/6592 https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/builds/6143 Original issue's description: > [wasm] Refactor function name table and lookup > > The function name table will now always be set; a CHECK will fail if > the length would exceed the integer range. > Also, the resolution of undefined function names to "<WASM UNNAMED>" is > moved over to the wasm side. > > R=titzer@chromium.org > > Committed: https://crrev.com/3400ee9f4f21a455b7850ec42a4182a3c0eba310 > Cr-Commit-Position: refs/heads/master@{#36918} TBR=titzer@chromium.org,clemensh@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/2062793002 Cr-Commit-Position: refs/heads/master@{#36925}
-
cbruni authored
Revert of Replace all remaining Oddball checks with new function (patchset #10 id:180001 of https://codereview.chromium.org/2043183003/ ) Reason for revert: failing tests Original issue's description: > Replace all remaining Oddball checks with new function > > This CL removes the IsUndefined() and Co. methods from Object and HeapObject. > The new method all take the isolate as parameter. > > BUG= > > Committed: https://crrev.com/ccefb3ae5fe967288d568013fb04e8761eafebc5 > Cr-Commit-Position: refs/heads/master@{#36921} TBR=mstarzinger@chromium.org,verwaest@chromium.org,yangguo@chromium.org,ahaas@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/2060213002 Cr-Commit-Position: refs/heads/master@{#36923}
-
cbruni authored
This CL removes the IsUndefined() and Co. methods from Object and HeapObject. The new method all take the isolate as parameter. BUG= Review-Url: https://codereview.chromium.org/2043183003 Cr-Commit-Position: refs/heads/master@{#36921}
-
clemensh authored
The function name table will now always be set; a CHECK will fail if the length would exceed the integer range. Also, the resolution of undefined function names to "<WASM UNNAMED>" is moved over to the wasm side. R=titzer@chromium.org Review-Url: https://codereview.chromium.org/2057523002 Cr-Commit-Position: refs/heads/master@{#36918}
-
- 06 Jun, 2016 1 commit
-
-
cbruni authored
Passing in the isolate and pointer compare the instnance against the corresponding constant is always faster than decoding the instance types. BUG= Review-Url: https://codereview.chromium.org/2028983002 Cr-Commit-Position: refs/heads/master@{#36744}
-
- 31 May, 2016 1 commit
-
-
mtrofin authored
This CLprepares the terrain for serialization/deserialization. It sets up the instantiation stages such that we have a point wereh we can split off obtaining the code from a snapshot, or snapshot. That point is after we compile and produce the code table, but before we attach the deoptimization info we use for stack tracing. Opportunistically, performed more cleanup to improve maintainability: - clarified sequential vs parallel compilation stages. FinishCompilation was somewhat ambiguous in that it performed a few responsibilities: compiling functions in the sequential case, and then populating the linker and code tables. - removed the "results" set, which is unnecessary. The linker simply shares the function_code vector, and so do the compilation stages. - populate the code table fixed array separately from compilation. This falls out of the decisions above. BUG= Review-Url: https://codereview.chromium.org/2008043006 Cr-Commit-Position: refs/heads/master@{#36618}
-
- 30 May, 2016 1 commit
-
-
clemensh authored
Before, it was possible to construct invalid CallSite objects, which would trigger a runtime assert when any function is called on it. This check ensures to throw a TypeError when invalid information is passed to the CallSite constructor. This reverts part of this CL: https://codereview.chromium.org/2006603002 R=ishell@chromium.org, titzer@chromium.org, yangguo@chromium.org BUG=chromium:614295 Review-Url: https://codereview.chromium.org/2010493002 Cr-Commit-Position: refs/heads/master@{#36578}
-
- 25 May, 2016 3 commits
-
-
titzer authored
This removes the last use of the old_functions section, which greatly simplifies encoding. R=bradnelson@chromium.org,aseemgarg@chromium.org,mtrofin@chromium.org BUG= Review-Url: https://codereview.chromium.org/2014533003 Cr-Commit-Position: refs/heads/master@{#36523}
-
ahaas authored
Signalling an error to the ErrorThrower causes a heap allocation and should therefore not happen in the parallel phase of the compilation. Additionally I did some refactoring: I pulled the function BuildGraphForWasmFunction into the WasmCompilationUnit and as a consequence I can use the class fields directly instead of passing them as parameters. BUG=chromium::614291 LOG=N R=titzer@chromium.org, bradnelson@chromium.org Review-Url: https://codereview.chromium.org/2007113004 Cr-Commit-Position: refs/heads/master@{#36515}
-
ahaas authored
BUG=chromium:614291 LOG=N R=titzer@chromium.org, bradnelson@chromium.org Review-Url: https://codereview.chromium.org/2009823002 Cr-Commit-Position: refs/heads/master@{#36503}
-
- 24 May, 2016 2 commits
-
-
mtrofin authored
Moved globals offsets calculation to the wasm module decoder, since this is a property of the module, not of each instance. Qualified as "const" references to WasmModule outside of the decoder and some test situations. BUG= Review-Url: https://codereview.chromium.org/2005933003 Cr-Commit-Position: refs/heads/master@{#36484}
-
titzer authored
R=ahaas@chromium.org BUG= Review-Url: https://codereview.chromium.org/2003383002 Cr-Commit-Position: refs/heads/master@{#36479}
-
- 20 May, 2016 1 commit
-
-
mtrofin authored
BUG= Review-Url: https://codereview.chromium.org/1993233002 Cr-Commit-Position: refs/heads/master@{#36394}
-
- 19 May, 2016 2 commits
-
-
mtrofin authored
Removed wrapper functions. BUG= Review-Url: https://codereview.chromium.org/1994963002 Cr-Commit-Position: refs/heads/master@{#36372}
-
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}
-
- 13 May, 2016 2 commits
-
-
titzer authored
R=ahaas@chromium.org,bradnelson@chromium.org BUG= Review-Url: https://codereview.chromium.org/1980483002 Cr-Commit-Position: refs/heads/master@{#36239}
-
titzer authored
This is a first step to removing the support for the OldFunctions section altogether, which will greatly simplify the encoder and remove the need to do local variable remapping in asm->wasm. R=bradnelson@chromium.org,aseemgarg@chromium.org BUG= Review-Url: https://codereview.chromium.org/1974933002 Cr-Commit-Position: refs/heads/master@{#36228}
-
- 12 May, 2016 2 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}
-
- 11 May, 2016 3 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}
-
titzer authored
R=ahaas@chromium.org,mstarzinger@chromium.org BUG= Review-Url: https://codereview.chromium.org/1970543003 Cr-Commit-Position: refs/heads/master@{#36174}
-
- 04 May, 2016 1 commit
-
-
titzer authored
R=ahaas@chromium.org,bradnelson@chromium.org BUG=chromium:608630 LOG=Y Review-Url: https://codereview.chromium.org/1943313002 Cr-Commit-Position: refs/heads/master@{#36008}
-
- 03 May, 2016 1 commit
-
-
ahaas authored
Graph construction, graph scheduling, instruction selection, and register allocation has been moved to ExecuteCompilation, which will eventually be executed on the background threads. Code generation remains in FinishCompilation because it has to be executed by the main thread. Additionally, WasmCompilationUnits are finished more eagerly in wasm-module.cc to save memory. R=titzer@chromium.org Review-Url: https://codereview.chromium.org/1942773002 Cr-Commit-Position: refs/heads/master@{#35973}
-
- 29 Apr, 2016 3 commits
-
-
clemensh authored
We now store the wasm object and the function index in the deoptimization data of the wasm Code object, and store an array with function names in the wasm object. This will make both the wasm module as well as the respective function name available from the code object. Tests will follow in https://codereview.chromium.org/1916403002. R=titzer@chromium.org, mstarzinger@chromium.org, machenbach@chromium.org Review-Url: https://codereview.chromium.org/1912103002 Cr-Commit-Position: refs/heads/master@{#35905}
-
clemensh authored
The output is once per module, and includes the size of relocation information. R=titzer@chromium.org Review-Url: https://codereview.chromium.org/1933513003 Cr-Commit-Position: refs/heads/master@{#35900}
-
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}
-
- 28 Apr, 2016 1 commit
-
-
ahaas authored
I introduced a new flag, --wasm-parallel-compilation, which turns on parallel compilation of wasm modules. If parallel compilation is turned on, then the compilation of wasm functions is split into three phases, initialization, execution, and finalization. The execution phase is the phase which is going to contain all the code that can be executed in parallel. At the moment the execution phase is still empty. R=titzer@chromium.org Review-Url: https://codereview.chromium.org/1928933002 Cr-Commit-Position: refs/heads/master@{#35875}
-
- 26 Apr, 2016 1 commit
-
-
clemensh authored
R=titzer@chromium.org Review URL: https://codereview.chromium.org/1910213004 Cr-Commit-Position: refs/heads/master@{#35796}
-
- 21 Apr, 2016 2 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}
-
bradnelson authored
BUG= https://code.google.com/p/v8/issues/detail?id=4203 BUG= https://bugs.chromium.org/p/chromium/issues/detail?id=575167 TEST=None R=ahaas@chromium.org,isherman@chromium.org LOG=N Review URL: https://codereview.chromium.org/1895223004 Cr-Commit-Position: refs/heads/master@{#35680}
-
- 14 Apr, 2016 1 commit
-
-
bradnelson authored
Collecting: Time histograms for: instantiate, decode module, decode function, compile, compile function. Memory histograms for: decode peak, instantiate peak, compile function peak, min mem pages, max mem pages, function bytes, module bytes. Range histograms of: functions per module. BUG= https://code.google.com/p/v8/issues/detail?id=4203 BUG= https://bugs.chromium.org/p/chromium/issues/detail?id=575167 TEST=None R=ahaas@chromium.org,bmeurer@chromium.org LOG=N Review URL: https://codereview.chromium.org/1866873002 Cr-Commit-Position: refs/heads/master@{#35467}
-
- 01 Apr, 2016 1 commit
-
-
jochen authored
We expect that the majority of malloc'd memory held by V8 is allocated in Zone objects. Introduce an Allocator class that is used by Zones to manage memory, and allows for querying the current usage. BUG=none R=titzer@chromium.org,bmeurer@chromium.org,jarin@chromium.org LOG=n TBR=rossberg@chromium.org Review URL: https://codereview.chromium.org/1847543002 Cr-Commit-Position: refs/heads/master@{#35196}
-
- 17 Mar, 2016 1 commit
-
-
titzer authored
R=ahaas@chromium.org,mtrofin@chromium.org BUG= Review URL: https://codereview.chromium.org/1802353002 Cr-Commit-Position: refs/heads/master@{#34843}
-
- 10 Mar, 2016 1 commit
-
-
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 2 commits
-
-
binji authored
R=titzer@chromium.org Review URL: https://codereview.chromium.org/1781523002 Cr-Commit-Position: refs/heads/master@{#34637}
-
titzer authored
R=ahaas@chromium.org,bradnelson@chromium.org BUG= Review URL: https://codereview.chromium.org/1775353003 Cr-Commit-Position: refs/heads/master@{#34621}
-
- 08 Mar, 2016 1 commit
-
-
titzer authored
R=binji@chromium.org,dschuff@chromium.org BUG= Review URL: https://codereview.chromium.org/1780483002 Cr-Commit-Position: refs/heads/master@{#34600}
-