- 02 Aug, 2017 1 commit
-
-
Deepti Gandluri authored
R=ahaas@chromium.org BUG=v8:6546 Change-Id: I2808b78cd047d875d4530c86cc079488a78e5ea1 Reviewed-on: https://chromium-review.googlesource.com/557355 Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#47088}
-
- 01 Aug, 2017 1 commit
-
-
Annie Sullivan authored
This reverts commit eb65f35e. Reason for revert: Broke jetstream benchmark on android. BUG=chromium:750828 Original change's description: > [wasm] redirect wasm calls to js functions through a GCed table > > With this patch, rather than embedding the JSReceiver address directly > in the WasmToJS wrappers, we put that in a fixed array with global handle > scope and instead embed the location of the handle and the index in the > wrapper. This ensures that the wrapper doesn't need to be patched if the > GC kicks in. This is needed to get the WASM code off the GCed heap. > > R=mtrofin@chromium.org > > Bug: > Change-Id: Ie5a77a78cdecec51b04f702c63b8e4285e6a2d8d > Reviewed-on: https://chromium-review.googlesource.com/581682 > Commit-Queue: Aseem Garg <aseemgarg@chromium.org> > Reviewed-by: Mircea Trofin <mtrofin@chromium.org> > Cr-Commit-Position: refs/heads/master@{#46884} TBR=mtrofin@chromium.org,aseemgarg@google.com,aseemgarg@chromium.org,clemensh@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Change-Id: I26f49ee0a1fe73cc5d8852ded87b56638be39ebf Reviewed-on: https://chromium-review.googlesource.com/596268 Commit-Queue: Aseem Garg <aseemgarg@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#47059}
-
- 25 Jul, 2017 1 commit
-
-
Aseem Garg authored
With this patch, rather than embedding the JSReceiver address directly in the WasmToJS wrappers, we put that in a fixed array with global handle scope and instead embed the location of the handle and the index in the wrapper. This ensures that the wrapper doesn't need to be patched if the GC kicks in. This is needed to get the WASM code off the GCed heap. R=mtrofin@chromium.org Bug: Change-Id: Ie5a77a78cdecec51b04f702c63b8e4285e6a2d8d Reviewed-on: https://chromium-review.googlesource.com/581682 Commit-Queue: Aseem Garg <aseemgarg@chromium.org> Reviewed-by:
Mircea Trofin <mtrofin@chromium.org> Cr-Commit-Position: refs/heads/master@{#46884}
-
- 18 Jul, 2017 1 commit
-
-
Clemens Hammacher authored
This CL replaces some Handles which can be empty by MaybeHandle. This documents that they can be empty, and forces a check before using them. R=ahaas@chromium.org Change-Id: Iefb9ae76617c45d2304b0a620dc082ab9c7b0585 Reviewed-on: https://chromium-review.googlesource.com/574593Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#46733}
-
- 14 Jul, 2017 1 commit
-
-
Clemens Hammacher authored
The code was already there, but there was a bug in it: Because of the missing reference, we were only updating a *copy* of the signature map, hence the update had no effect. This intentially is a minimal CL, in order to allow for easy backmerging. More mitigations and tests are coming in a separate CL. R=titzer@chromium.org Change-Id: Ifb462093f4b8f4d5380b6774636537c67c2b676c Reviewed-on: https://chromium-review.googlesource.com/570278Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#46664}
-
- 13 Jul, 2017 1 commit
-
-
Clemens Hammacher authored
It's ok that the instance of the called code object is different from the caller instance. This happens if one instance calls an exported function of another instance. R=ahaas@chromium.org Bug: chromium:739768 Change-Id: I6afa8332a9b33fe32e9332cdca573053f058421d Reviewed-on: https://chromium-review.googlesource.com/568494Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#46624}
-
- 10 Jul, 2017 5 commits
-
-
Deepti Gandluri authored
- Implement js-api changes for WebAssembly.Memory to accept a shared parameter - Update allocation to use SharedArrayBuffers BUG=v8:6532 R=binji@chromium.org, bradnelson@chromium.org Change-Id: I021491217568751b06fbd7b4b08b1dd88910e21d Reviewed-on: https://chromium-review.googlesource.com/564058 Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Reviewed-by:
Brad Nelson <bradnelson@chromium.org> Reviewed-by:
Ben Smith <binji@chromium.org> Cr-Commit-Position: refs/heads/master@{#46543}
-
Karl Schimpf authored
This Cl fixes a fundamental misunderstanding when Wasm memory histograms were added. They were added using HISTOGRAM_MEMORY_LIST(). This macro implements aggregating memory histograms that handle cases memory cases that are not module specific. The fixed memory histograms are all module specific, and are simple histograms. In addition, it removes field is_sync from ModuleCompiler and WasmCompilationUnit, since the field is no longer needed to make the fixed memory histograms synchronous. Bug: v8:6361 Change-Id: I696109b4fd1a4aadc87a6bdbbc4b7daefd58ea51 Reviewed-on: https://chromium-review.googlesource.com/565349Reviewed-by:
Brad Nelson <bradnelson@chromium.org> Commit-Queue: Karl Schimpf <kschimpf@chromium.org> Cr-Commit-Position: refs/heads/master@{#46541}
-
Karl Schimpf authored
Modifies V8 to be able to parse the exception section (defining exception types), when the experimental_wasm_eh flag is true. Bug: v8:6577 Change-Id: I5d8b3fddaf5b0dec6b14ddd0992f9fb883e8dc90 Reviewed-on: https://chromium-review.googlesource.com/561757 Commit-Queue: Karl Schimpf <kschimpf@chromium.org> Reviewed-by:
Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#46539}
-
jgruber authored
This adds a convenience method for the common Smi to int conversion pattern. Bug: Change-Id: I7d7b171c36cfec5f6d10c60f1d9c3e06e3aed0fa Reviewed-on: https://chromium-review.googlesource.com/563205 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Andreas Rossberg <rossberg@chromium.org> Cr-Commit-Position: refs/heads/master@{#46516}
-
Clemens Hammacher authored
There are other things to export beside functions. Thus, also print the export kind when printing an error for duplicate export names. R=titzer@chromium.org Change-Id: I7477040dda274a16cfd776d7ac8db6e50a197b97 Reviewed-on: https://chromium-review.googlesource.com/564940Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#46503}
-
- 07 Jul, 2017 2 commits
-
-
titzer authored
This CL refactors the WasmMemoryObject and WasmInstanceObject classes to use WeakFixedArray instead of using a doubly-linked list of instances. This simplifies the lifetime management of instances by not requiring them to be unlinked from this list upon GC. It also simplifies the iteration over the instances using a given WasmMemoryObject. Note that, contrary to my naive assumption at the outset, it is still necessary for the InstanceFinalizer (called upon a WasmInstanceObject death) to unlink itself from a WasmMemoryObject's instances list, due to finalizer ordering. R=deepti@chromium.org, mlippautz@chromium.org BUG= Review-Url: https://codereview.chromium.org/2972803002 Cr-Commit-Position: refs/heads/master@{#46482}
-
titzer authored
This CL refactors the internal representation of JavaScript-exposed WebAssembly objects to be more like other such objects in V8. By introducing a new instance type for each of the JS-exposed types, we get more robust typechecking without using embedder fields (which were previously used when these objects where instance type JS_API_OBJECT). In addition to the new instance types, the subclasses X of JSObject (WasmInstanceObject, WasmMemoryObject, WasmModuleObject, WasmTableObject) now have appropriate Is##X() methods on Object and are now robust. BUG=v8:6547 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng Review-Url: https://codereview.chromium.org/2964943002 Cr-Commit-Position: refs/heads/master@{#46475}
-
- 03 Jul, 2017 1 commit
-
-
Clemens Hammacher authored
When providing scope information (containing the value of local variables of live stack frames), decode the local variable names of all functions in a wasm module and store this in the WasmDebugInfo structure. Use these names to actually name the reported locals, instead of using the default names "param#<d>" and "local#<d>". These names are only used as fallbacks for locals which were not assigned a name. R=titzer@chromium.org,kozyatinskiy@chromium.org BUG=v8:6245 Change-Id: Ibf7d30e392248ef5590177cd8b6329239b45e018 Reviewed-on: https://chromium-review.googlesource.com/548495 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46379}
-
- 30 Jun, 2017 1 commit
-
-
Mathias Bynens authored
The `FAST_` prefix doesn’t make much sense — they’re all just different cases with their own optimizations. Packedness being implicit (e.g. `FAST_ELEMENTS` vs. `FAST_HOLEY_ELEMENTS`) is not ideal, either. This patch renames the FAST elements kinds as follows: - e.g. FAST_ELEMENTS => PACKED_ELEMENTS - e.g. FAST_HOLEY_ELEMENTS => HOLEY_ELEMENTS The following exceptions are left intact, for lack of a better name: - FAST_SLOPPY_ARGUMENTS_ELEMENTS - SLOW_SLOPPY_ARGUMENTS_ELEMENTS - FAST_STRING_WRAPPER_ELEMENTS - SLOW_STRING_WRAPPER_ELEMENTS This makes it easier to reason about elements kinds, and less confusing to explain how they’re used. R=jkummerow@chromium.org, cbruni@chromium.org BUG=v8:6548 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Ie7c6bee85583c3d84b730f7aebbd70c1efa38af9 Reviewed-on: https://chromium-review.googlesource.com/556032Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Mathias Bynens <mathias@chromium.org> Cr-Commit-Position: refs/heads/master@{#46361}
-
- 29 Jun, 2017 1 commit
-
-
Clemens Hammacher authored
In our internal code, we should only use pending exceptions. They will be converted to scheduled exceptions on the API boundary. Hence, the ErrorThrower just sets a pending exception; it should never have to think about scheduled exceptions. The new ScheduledErrorThrower inherits from ErrorThrower and reschedules any pending exceptions in its destructor (turning them into scheduled exceptions). In some situations, there might already be a scheduled exception, e.g. when calling other API methods (v8::Value::Get). In this case, the ErrorThrower should also not set another pending exception. For the reasons mentioned above, this can only be handled in the ScheduledErrorThrower, which is used the API methods. This fixes one DCHECK failure and one TODO about scheduled exceptions if no instance can be created, because the start function throws. R=mtrofin@chromium.org, mstarzinger@chromium.org BUG=v8:6232,chromium:736256 Change-Id: I4905be04c565df9495de18fb26adbb5c05d193d2 Reviewed-on: https://chromium-review.googlesource.com/548641 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Mircea Trofin <mtrofin@chromium.org> Cr-Commit-Position: refs/heads/master@{#46314}
-
- 28 Jun, 2017 1 commit
-
-
titzer authored
R=clemensh@chromium.org,ahaas@chromium.org BUG= Review-Url: https://codereview.chromium.org/2963603003 Cr-Commit-Position: refs/heads/master@{#46283}
-
- 27 Jun, 2017 2 commits
-
-
Karl Schimpf authored
Removes from CL https://codereview.chromium.org/2929853003 code to fix histogram timers in class WasmCompilationUnit. This was done because the CL was reverted due to errors caused by background compiles that updated UMA histogram timers. The goal of this CL is to reland the remaining portion of the reverted CL. Bug:v8:6361 Change-Id: Ic03ceb118734bd55c463a843521bcd5b09342afe Reviewed-on: https://chromium-review.googlesource.com/550196Reviewed-by:
Mircea Trofin <mtrofin@chromium.org> Commit-Queue: Karl Schimpf <kschimpf@google.com> Cr-Commit-Position: refs/heads/master@{#46268}
-
Andreas Haas authored
This makes reopening the handle easier, and also reduces the size of the handle space. Drive-by change: Make all fields of the ModuleCompiler private. R=clemensh@chromium.org Change-Id: I2f9553a00012b9ce7743bf68bdf1c3095ca69fe0 Reviewed-on: https://chromium-review.googlesource.com/548397 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#46255}
-
- 26 Jun, 2017 3 commits
-
-
Clemens Hammacher authored
The implication was actually in the wrong direction: If there is no memory start address, then the size must be 0. If the size is 0 though, we might allocate nevertheless to have guard pages around the accessible memory. R=ahaas@chromium.org BUG=chromium:736584 Change-Id: I297dece658d5eaf69c58ecb109ff21d3ca0b8a8d Reviewed-on: https://chromium-review.googlesource.com/548635Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#46221}
-
Clemens Hammacher authored
Instead of calling {TryAllocateBackingStore} with {enable_guard_regions==false}, we just directly call {array_buffer_allocator->Allocate}. Drive-by optimization: Don't allocate if the size is 0. R=titzer@chromium.org Change-Id: Iabf7af7e0f1bc970c03efcd9ee4c23e5307a7095 Reviewed-on: https://chromium-review.googlesource.com/548398Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#46218}
-
Michael Achenbach authored
This reverts commit ee0e295d. Suspect for http://crbug.com/736676 Another dcheck fails, starting after the reverted CL, e.g.: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064%20%28dbg%29/builds/8666 BUG=chromium:736676,v8:6361 TBR=kschimpf@chromium.org,mtrofin@chromium.org NOTRY=true NOPRESUBMIT=true Change-Id: I160b996a07d77f90a96864f3ae84f861f495ed42 Reviewed-on: https://chromium-review.googlesource.com/547425Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#46196}
-
- 23 Jun, 2017 3 commits
-
-
kschimpf authored
This is a fix to https://codereview.chromium.org/2929853003 that got reverted. The DCHECK checked to see that it was not in a background thread. While this is a property we want for v8, it is also used by blink, and blink violates this property. Therefore, this CL removes the DCHECK for now. BUG=v8:6361 Review-Url: https://codereview.chromium.org/2961443002 Cr-Commit-Position: refs/heads/master@{#46190}
-
Andreas Haas authored
For correct error positions, the FunctionBody struct stored a {base} pointer to the beginning of the wasm module bytes, in addition to the {start} and {end} pointer of the function body within the module bytes. For streaming compilation, we do not have all module bytes in a single chunk of memory. Therefore this CL changes the FunctionBody such that it does not store the base pointer but the offset of the function body within the module. I did the same change already some time ago for the {Decoder}. R=clemensh@chromium.org, mtrofin@chromium.org Change-Id: I5138fbe270d0f5166a7dcc5cb8f3fe78a298bff6 Reviewed-on: https://chromium-review.googlesource.com/544863Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#46170}
-
Michael Achenbach authored
This reverts commit d4a10807. Reason: Fails on gpu bots: https://build.chromium.org/p/client.v8.fyi/builders/Linux%20Release%20%28NVIDIA%29/builds/2145 # Fatal error in ../../v8/src/isolate.h, line 878 # Check failed: !IsIsolateInBackground(). BUG=v8:6361 TBR=kschimpf@chromium.org,cbruni@chromium.org,mtrofin@chromium.org,jochen@chromium.org,ulan@chromium.org NOTRY=true NOPRESUBMIT=true NOTREECHECKS=true Change-Id: I5cf0241b3932b3c500598207b684a4b37936d0f8 Reviewed-on: https://chromium-review.googlesource.com/544825 Commit-Queue: Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#46154}
-
- 22 Jun, 2017 1 commit
-
-
kschimpf authored
HistoryTimer's can't run in the background because they use a timer with a simple api of Start() and Stop(). This CL fixes this problem by building a base class TimedHistogram that doesn't have a timer. The class HistoryTimer is modified to use this base class so that uses that run on the foreground thread do not need to be modified. It also adds a new class TimedHistogramScope that defines the timer in this class. This allows the corresopnding TimedHistogram class to be type safe. BUG=v8:6361 Review-Url: https://codereview.chromium.org/2929853003 Cr-Commit-Position: refs/heads/master@{#46150}
-
- 13 Jun, 2017 2 commits
-
-
Jochen Eisinger authored
This gives the embedder more context for deciding whether code generation should be allowed or not, or they can chose to include the code in a report. BUG=chromium:732736 R=ahaas@chromium.org Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Ibbaa3d0574319d290f15565be3eed2ee4d3dda36 Reviewed-on: https://chromium-review.googlesource.com/532875 Commit-Queue: Jochen Eisinger <jochen@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#45905}
-
Eric Holk authored
Once a buffer has been externalized, V8 is no longer responsible for managing the memory. The fact that V8 was freeing was leading to double free errors once Blink's GC got around to freeing the buffer too. Bug: chromium:730171, chromium:731046 Change-Id: Ib18a7e37cafd51bce0c5a983d5cf8f3e64eb2c13 Reviewed-on: https://chromium-review.googlesource.com/530132 Commit-Queue: Brad Nelson <bradnelson@chromium.org> Reviewed-by:
Brad Nelson <bradnelson@chromium.org> Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45882}
-
- 12 Jun, 2017 4 commits
-
-
Mircea Trofin authored
Avoid constructing zones and large zone objects when initializing WasmCompilationUnit. The main reason we did that is so we can cache the CEntryStub node, which requires a code object, obtainable only on the main thread. We need that value, however, on background threads, which is also where we need the aforementioned large objects. We only need that for the WasmCompilationUnits being currently compiled, which is a number proportional to the number of background threads provided by the embedder. Specifically, one zone is needed only for the duration of the background compilation, while the second zone needs to survive past that, so the compilation results may be committed to the GC heap as Code objects. The problem with these large objects is that the first allocation in a Zone is at minimum 8KB. We used to allocate 2 zones. For modules with 200K functions, that means 3.2GB of memory pre-allocated before any of it is actually needed. This change attaches a Handle to the CEntryStub on the WasmCompilationUnits, and delays zone creation to when needed. The change also adds a way to cache CEntryStubs in a JSGraph from a given Code handle - limited to the scenario needed by wasm (and removable once we get wasm off the GC heap, which subsumes removing this dependency on CEntryStubs) An additional constraint for this change is that we want it to be easily back-mergeable to address chromium:723899. For the wasm payload in question, collecting the max memory used by d8 using /usr/bin/time --format='(%Xtext+%Ddata %Mmax)', we get the following numbers (in KB): - unchanged: 3307480 - patch 1: 1807140 (45% reduction) - patch 3: 1230320 (62% reduction from first) - patch 5/6: 519368 (84% reduction from first) Bug: chomium:732010, chromium:723899 Change-Id: I45b96792daf8a9c8dc47d45fb52da75945a41401 Reviewed-on: https://chromium-review.googlesource.com/530193 Commit-Queue: Mircea Trofin <mtrofin@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#45880}
-
Clemens Hammacher authored
In many places in WasmModule and contained structs we store references into the wire bytes as pairs of offset and length. This CL introduces a WireBytesRef struct which encapsulates these two connected fields. This makes it easier to pass them and assign them as one unit. R=ahaas@chromium.org, mtrofin@chromium.org BUG=v8:6474 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I4f2a40d848a51dc6f6f599f9253c3c6ed6e51627 Reviewed-on: https://chromium-review.googlesource.com/530687 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#45859}
-
Andreas Haas authored
This CL is the first step in introducing a compilation manager for asynchronous compile jobs in WebAssembly. The compilation manager holds a list of currently active AsyncCompileJobs. With the compilation manager these compile jobs get deallocated when the isolate shuts down. Note that this CL is not enough to provide a graceful isolate shutdown. For this we have to wait for all compilation tasks to finish before we shut down, and we have to make the tasks stateless. I plan to do these changes in separate CLs. R=clemensh@chromium.org, mtrofin@chromium.org BUG=v8:6436 Change-Id: I9a6e165dd2ef6d33944ca303fed49f7940eea7a2 Reviewed-on: https://chromium-review.googlesource.com/528079Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#45858}
-
Clemens Hammacher authored
This is a testing-only function, which is semantically equivalent to a SyncCompile followed by SyncInstantiate. We add a new SyncCompileAndInstantiate function to do those two steps in one go, and use this method instead. For AsmJs modules, a new testing function CompileAndRunAsmWasmModule is introduced. This is part of our effort to reduce the number of special paths for testing. It is connected with https://chromium-review.googlesource.com/529210, but should not conflict with it. After landing both CLs, we can later also get rid of InstantiateModuleForTesting. R=ahaas@chromium.org, mtrofin@chromium.org BUG=v8:6474 Change-Id: I7891e968370d5eb68803076ce2639c65a2799dcc Reviewed-on: https://chromium-review.googlesource.com/529844Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45852}
-
- 09 Jun, 2017 1 commit
-
-
Clemens Hammacher authored
This CL removes most occurences of "WASM" from outputs and comments in the code. They are replaced either by "WebAssembly" or (especially in comments) "wasm". These are the spellings officially proposed on http://webassembly.org/. R=ahaas@chromium.org BUG=v8:6474 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Id39fa5e25591678263745a4eab266db546e65983 Reviewed-on: https://chromium-review.googlesource.com/529085Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45824}
-
- 07 Jun, 2017 2 commits
-
-
Andreas Haas authored
This CL extracts the classes CompilationHelper, InstantiationHelper, and AsyncCompileJob from wasm-module.cc and puts them into module-compiler.{h|cc}. This is necessary to introduce a WasmCompilationManager which is known to the isolate and manages the lifetime of all AsyncCompileJobs. In addition to the mechanical changes of copying the code and splitting class declaration from instantiation, I did the following changes: * I renamed the CompilationHelper to ModuleCompiler. * A finalizer function is passed to the InstantiationHelper as a parameter. * Adjusted UpdateDispatchTable in wasm-module.cc to make it available in wasm-module.h, also with the internal signature. * Duplicate the ResolvePromise/RejectPromise helper functions. I did not rename InstantiationHelper because I could not come up with a good name, and it could benefit from a small special refactoring anyways. BUG=v8:6436 R=clemensh@chromium.org, mtrofin@chromium.org Change-Id: I4abe854c36dfc995b34c9d7b3e7ec0f4f0aa562e Reviewed-on: https://chromium-review.googlesource.com/525572 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Mircea Trofin <mtrofin@chromium.org> Cr-Commit-Position: refs/heads/master@{#45773}
-
Andreas Haas authored
The old implementation of Table.Set in wasm-js.cc accessed information which should be hidden from this level of abstraction, e.g. the internal structure of a WasmTableObject. With this CL, all that is done in wasm-js.cc is the extraction of parameters. The actual logic is happening in wasm-module.{h|cc}. This CL will also make refactoring wasm-module.cc easier. R=clemensh@chromium.org, mtrofin@chromium.org Change-Id: Ifbce6f739459dffc9f9d47e4cd8227638867f3e9 Reviewed-on: https://chromium-review.googlesource.com/525694 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45754}
-
- 06 Jun, 2017 1 commit
-
-
kschimpf authored
Fixes issues raised in CL https://codereview.chromium.org/2887193002. That is: 1) Remove using mutex in Isolate::InitializeCounters(). 2) Use counters_shared_.get() instead of counters_ (and hence, also remove field counters_). BUG=v8:6361 Review-Url: https://codereview.chromium.org/2919953003 Cr-Commit-Position: refs/heads/master@{#45743}
-
- 29 May, 2017 2 commits
-
-
Clemens Hammacher authored
For lazy compilation, we encode information about table exports in the deoptimization data. This information is rebuilt on each instantiation, so we need to reset it when reusing code objects from another instance. R=ahaas@chromium.org BUG=chromium:727219 Change-Id: I90557ef06e692d0a8323223cac26679efcfa408b Reviewed-on: https://chromium-review.googlesource.com/517945Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45559}
-
Clemens Hammacher authored
Parallel compilation should only be chosen if there are background threads available. Otherwise, the overhead of orchestrating (non-)parallel work can be omitted by just compiling synchronously. R=ahaas@chromium.org Change-Id: I333fb87e07fdb3260ab4c9c2c1885a1df4c5e4ef Reviewed-on: https://chromium-review.googlesource.com/513062Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45555}
-
- 26 May, 2017 1 commit
-
-
Clemens Hammacher authored
This removes a lot of special handling for the predictable platform. Instead of executing spawned foreground and background tasks immediately (i.e. inside the scope that spawns the tasks), just add both to the foreground task queue. This avoids existing special handling for predictable mode in wasm async compilation, and should fix current failures on the predictable bot. BUG=v8:6427 Change-Id: Idbaa764a3dc8c230c29f3937d885e12174691ac4 Reviewed-on: https://chromium-review.googlesource.com/509694Reviewed-by:
Jochen Eisinger <jochen@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45538}
-
- 24 May, 2017 1 commit
-
-
kschimpf authored
Creates a new class StatsCounterThreadSafe to be used by counters that can be updated when compiling/decoding etc. are done using workers. Does this by using a mutex on all opreations. Also updates the StatsCounterThreadSafe constructor to force counter initialization, as well as method Reset(). In addition, whenever the method StatsTable::SetCounterFunction() is called (from the main thread), it forces counter initialization for all thread safe stats counters. BUG=v8:6361 Review-Url: https://codereview.chromium.org/2887193002 Cr-Commit-Position: refs/heads/master@{#45526}
-