- 26 Dec, 2018 1 commit
-
-
Jakob Kummerow authored
Tbr: ahaas@chromium.org,leszeks@chromium.org,verwaest@chromium.org Bug: v8:3770 Change-Id: Ia6530fbb70dac05e9972283781c3550d8b50e1eb Reviewed-on: https://chromium-review.googlesource.com/c/1390116 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Alexei Filippov <alph@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#58470}
-
- 11 Dec, 2018 1 commit
-
-
Ben L. Titzer authored
This is purely a renaming change. The ES spec uses the term 'detach' for the process of removing the backing store of a typed array, while V8 uses the historical term 'neuter'. Update our internal implementation, including method names and flag names, to match the spec. Note that some error messages still use the term 'neuter' since error messages are asserted by some embedder tests, like layout tests. R=bmeurer@chromium.org, yangguo@chromium.org, mstarzinger@chromium.org, mlippautz@chromium.org BUG=chromium:913887 Change-Id: I62f1c3ac9ae67ba01d612a5221afa3d92deae272 Reviewed-on: https://chromium-review.googlesource.com/c/1370036 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#58149}
-
- 08 Dec, 2018 1 commit
-
-
Jakob Kummerow authored
Bug: v8:3770 Change-Id: I1d74ffe9e5478b4b8bc0acbf088d20919d458d50 Reviewed-on: https://chromium-review.googlesource.com/c/1363822 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#58112}
-
- 22 Nov, 2018 1 commit
-
-
Igor Sheludko authored
This CL also makes existence of the optional padding field in JSArrayBuffer explicit and ensures that the field stays cleared after initialization. Bug: v8:8477, v8:8238 Change-Id: Ic4c5f6b0066903651f15bea91fbfe32ba62fa0e6 Reviewed-on: https://chromium-review.googlesource.com/c/1347469 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#57750}
-
- 21 Nov, 2018 1 commit
-
-
Igor Sheludko authored
and make the slot occupy two tagged words when pointer compression is enabled. Tbr: bmeurer@chromium.org Bug: v8:7703 Change-Id: Idcd3385cc7d5299d9bdaf6a69c7bd0591099f0bb Reviewed-on: https://chromium-review.googlesource.com/c/1346489Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#57693}
-
- 21 Sep, 2018 1 commit
-
-
Marja Hölttä authored
Also fixing DEPS include rules for heap-write-barrier.h BUG=v8:5402,v8:8015 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: Ia785da321bc6c6f4c375ae8c866a0bf294e64f5b Reviewed-on: https://chromium-review.googlesource.com/1238453Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#56138}
-
- 20 Sep, 2018 1 commit
-
-
Michael Achenbach authored
This reverts commit 46573e51. Reason for revert: Speculative revert for breaking chromium integration. Might break gpu tests and linux debug: https://ci.chromium.org/p/v8/builders/luci.v8.ci/Mac%20V8%20FYI%20Release%20(Intel)/2554 Also blocks the roll: https://chromium-review.googlesource.com/c/chromium/src/+/1234328 Original change's description: > [es2015] Introduce JSDataView::external_pointer. > > This adds a new external_pointer field to every JSDataView instance > which points directly into the backing store at the given view's > byte_offset. This was the DataView performance is now almost on > par with the TypedArray performance for accessing aligned memory > (with appropriate endianess). This also serves as prepatory work > to enable full 64-bit addressing of DataView backing stores in > optimized code (soonish). > > This change optimizes the bounds checking sequence in TurboFan in > such a way that it further improves the DataView set/get performance > by around 10%, almost closing the remaining gap between DataViews > and TypedArrays. > > Drive-by-fix: Get rid of the code duplication around DataView inlining > in the JSCallReducer and have only a single bottleneck method now. > > Bug: chromium:225811, v8:4153, v8:7881, v8:8171 > Change-Id: I9118efd4d19e93f0e51c931a9bec1a56a0f4593e > Reviewed-on: https://chromium-review.googlesource.com/1231994 > Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#56042} TBR=yangguo@chromium.org,mlippautz@chromium.org,tebbi@chromium.org,bmeurer@chromium.org Change-Id: I614a90043b1574b19936c37987db94806cac3bd7 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:225811, v8:4153, v8:7881, v8:8171 Reviewed-on: https://chromium-review.googlesource.com/1234417Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#56059}
-
- 19 Sep, 2018 1 commit
-
-
Benedikt Meurer authored
This adds a new external_pointer field to every JSDataView instance which points directly into the backing store at the given view's byte_offset. This was the DataView performance is now almost on par with the TypedArray performance for accessing aligned memory (with appropriate endianess). This also serves as prepatory work to enable full 64-bit addressing of DataView backing stores in optimized code (soonish). This change optimizes the bounds checking sequence in TurboFan in such a way that it further improves the DataView set/get performance by around 10%, almost closing the remaining gap between DataViews and TypedArrays. Drive-by-fix: Get rid of the code duplication around DataView inlining in the JSCallReducer and have only a single bottleneck method now. Bug: chromium:225811, v8:4153, v8:7881, v8:8171 Change-Id: I9118efd4d19e93f0e51c931a9bec1a56a0f4593e Reviewed-on: https://chromium-review.googlesource.com/1231994 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#56042}
-
- 18 Sep, 2018 1 commit
-
-
Benedikt Meurer authored
This is the next step to support large array buffers. On 64-bit archs the full safe integer range is available (up to 2^53-1 bytes in theory). On 32-bit platforms the full Unsigned31 range is allowed, so that we can continue to use CheckBounds for typed arrays and data views in the optimizing compiler (it's generally unlikely that the kernel will give you more than 1GiB of contiguous memory anyways). Drive-by-fix: This introduces proper chokepoints for the byte_offset and byte_length accesses in the CSA code, and also does some renaming for consistency. Bug: v8:4153, v8:7881, v8:8171 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I92a767638532ca9f86084398ce72556c5180cc6e Reviewed-on: https://chromium-review.googlesource.com/1228377Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#56008}
-
- 17 Sep, 2018 2 commits
-
-
Benedikt Meurer authored
Cleanup the JSArrayBuffer bit fields to use the proper object macros that are now otherwise used consistently across the code base. Also change TurboFan to consistently bailout when it sees an array buffer that was previously neutered, so that the generic path / builtins are again the chokepoints for the spec violations (the fact that we don't always raise exceptions when we see a neutered array buffer), except for the ArrayBufferView accessor inlining in the JSCallReducer, where we still turn the values into zero (because we don't have access to a CALL_IC speculation guard in the common case). This also removes the ArrayBufferWasNeutered simplified operator, and does regular LoadField + Number bitwise operations instead, which is good enough and allows us to get rid of a lot of unnecessary complexity. Bug: v8:4153, v8:7881, v8:8015, v8:8171, v8:8178 Change-Id: I4ce79ece762c632e6318f2ab7bcc6b2f82383947 Reviewed-on: https://chromium-review.googlesource.com/1226887Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#55958}
-
Marja Hölttä authored
BodyDescriptorWeak is not needed for all classes. For the classes it's needed it's referred to explicitly (Foo::BodyDescriptorWeak::IterateBody()). BUG=v8:7308 Change-Id: If8591929cd588575e88f3d6f116ec2cac4941e8f Reviewed-on: https://chromium-review.googlesource.com/1226649Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#55941}
-
- 13 Sep, 2018 1 commit
-
-
Benedikt Meurer authored
Previously the [[ArrayBufferByteLength]] internal field was represented as a boxed number (i.e. either Smi or HeapNumber) in safe integer range. This is the first step to change the representation of all the array buffer and array buffer view length/offset fields to unboxed integers, to eventually support the full range of 4GiB (and potentially even more) for typed arrays and array buffers. This will allow WebAssembly memories with 4GiB to be usable. Tbr: yangguo@chromium.org Bug: v8:7881, v8:8015, v8:8171 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: Ic6c6c8fe087afee898254cd903e82a55bfc173a9 Reviewed-on: https://chromium-review.googlesource.com/1222309Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#55877}
-
- 10 Sep, 2018 1 commit
-
-
Clemens Hammacher authored
R=mstarzinger@chromium.org Bug: v8:8015, chromium:824443 Change-Id: I017e8bf9033fba1afdddcc5e3057860519dfc119 Reviewed-on: https://chromium-review.googlesource.com/1213210Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#55748}
-
- 17 Aug, 2018 1 commit
-
-
Ben L. Titzer authored
JSArrays and JSArrayBuffers are very different animals. As such, split the js-array.h header into two parts. R=ulan@chromium.org,mstarzinger@chromium.org Bug: v8:5402 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I82f987ecea3e2e1ceaf8f8962a2b88165558c57e Reviewed-on: https://chromium-review.googlesource.com/1177760Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#55183}
-
- 24 Jul, 2018 1 commit
-
-
Ben L. Titzer authored
This is a preparatory CL that refactors the WASM memory allocation path, the WasmGraphBuilder, and several points of contact for ArrayBuffers to allow them to eventually be up to 4GiB. 1.) Refactor definition of constants to prepare for memories of size 2^32 2.) Refactor WasmInstanceObject fields memory_size and memory_mask to be stored as uintptr_t 3.) Refactor WasmGraphBuilder to use 64-bit comparisons for bounds checks 4.) Refactor JSArrayBuffer accessor methods to use size_t properly. 5.) Add empirical maximum memory and array buffer size tests R=mstarzinger@chromium.org BUG=v8:7881 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I78a49069cfa89757cc93f0a30b1c1a99c4b2edba Reviewed-on: https://chromium-review.googlesource.com/1112003 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#54646}
-
- 16 Jul, 2018 1 commit
-
-
Peter Marshall authored
We convert this {ptr, size} pair to an ArrayBuffer::Allocation when we need to free it anyway, so we can get rid of this intermediate step to make things simpler. Change-Id: I6e82949ec02acb5794f4d668afb2313ebdcb9d52 Reviewed-on: https://chromium-review.googlesource.com/1136309 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#54457}
-
- 12 Jul, 2018 1 commit
-
-
Leszek Swirski authored
With ReadOnlyRoots and GetIsolate on JSReceiver, we can remove almost every isolate parameter from <Object>::Print. The remaining ones, like Map, are special-caseable for read-only maps, and as a result we can remove isolate parameters from <Object>::Print entirely. This patch also opportunistically cleans up a few places where isolates were only needed for Object::Print, such as TransitionAccessors and DescriptorArrays. TBR=yangguo@chromium.org,mstarzinger@chromium.org Bug: v8:7786 Change-Id: Id44bd53b9893e679eea5f37b9548257595a1bfd9 Reviewed-on: https://chromium-review.googlesource.com/1133385Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Dan Elphick <delphick@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#54401}
-
- 06 Jul, 2018 1 commit
-
-
Simon Zünd authored
This CL extends the existing ArrayPush C++ builtin with a generic slow-path that replaces the JavaScript fall-back. Bug: v8:7624 Change-Id: I1e8431601e8a872f3c5afba5d486f37fd5781d60 Reviewed-on: https://chromium-review.googlesource.com/1126922Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Simon Zünd <szuend@google.com> Cr-Commit-Position: refs/heads/master@{#54282}
-
- 05 Jul, 2018 1 commit
-
-
Peter Marshall authored
This is just derived from is_wasm_memory. Change-Id: I2f77fb5e32e325c51de9af4228ca33313c21abc6 Reviewed-on: https://chromium-review.googlesource.com/1126107Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#54230}
-
- 28 Jun, 2018 1 commit
-
-
Ben Smith authored
Supporting postMessage from WebAssembly.Module requires implementing some logic in the ValueSerializer and ValueDeserializer delegates. This change implements some simple logic for d8. This change also fixes a DCHECK that occurs when sending a shared WebAssembly.Memory object to two Workers. Bug: chromium:857049 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: Idddb23a48175c7175967af3fbc03d8572452a069 Reviewed-on: https://chromium-review.googlesource.com/1117871Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Ben Smith <binji@chromium.org> Cr-Commit-Position: refs/heads/master@{#54093}
-
- 26 Jun, 2018 1 commit
-
-
Dan Elphick authored
All Object::Print functions now take an Isolate* parameter. Various XX::XXPrint functions now take an Isolate if it's needed rather than calling GetIsolate(). Such method use DECL_PRINTER_WITH_ISOLATE rather than DECL_PRINTER. The _v8_internal_Print_ function (intended for use in gdb) now uses Isolate::Current() to get hold of an Isolate. Reduces the GetIsolate and GetHeap count by 9 and 5 respectively. Also removes unneeded gdb/lldb macros (along with their support functions), jfv, jfm, jda and jta, since job does the same thing. Bug: v8:7786 Change-Id: Ib93ebca6ca47c4db9c85cc6d9ff8004da5942dec Reviewed-on: https://chromium-review.googlesource.com/1112001 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54029}
-
- 02 May, 2018 1 commit
-
-
Michael Lippautz authored
The tracker needs to maintain the byte length as there is no order guarantee when sweeping pages and the byte length may be a HeapNumber that is stored on a different page. The abstraction for ArrayBuffers is left untouched. We distinguish between the following cases: 1. Regular AB (backing_store and bye_length should be used) 2. AB allocated using kReservation but not part of wasm 3. AB allocated using kReservation and part of wasm In practice, 2. does not exist, but we still maintain "allocation_base" and "allocation_length" which fall back to backing_store and byte_length in this case. The problematic part is that they look like innocent getters on the object but actually refer to different data structures or on-heap objects. Since 2. does not exist, and 3. looks up the bounds in its own tracker, it is fine for ArrayBufferTracker to pass backing_store and tracked byte_length. Bug: v8:7701 Change-Id: Ib89d5fe94fce5cef8e5d8343a5415a3b9ad0deba Reviewed-on: https://chromium-review.googlesource.com/1039385Reviewed-by:
Ben Titzer <titzer@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#52923}
-
- 10 Apr, 2018 1 commit
-
-
Igor Sheludko authored
Bug: chromium:823069 Change-Id: Ie5be40da1e64a11c7a3c6ba5d2bc193bd78ca737 Reviewed-on: https://chromium-review.googlesource.com/1002560Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#52508}
-
- 09 Apr, 2018 1 commit
-
-
Clemens Hammacher authored
MUST_USE_RESULT was deprecated for some time. This removes it and replaces all uses by the equivalent V8_WARN_UNUSED_RESULT. R=mstarzinger@chromium.org Bug: v8:7570 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I86883218638e64eeeb7a5891904319ed0844a004 Reviewed-on: https://chromium-review.googlesource.com/999533 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#52486}
-
- 06 Apr, 2018 1 commit
-
-
Clemens Hammacher authored
Replace all uses with V8_WARN_UNUSED_RESULT. WARN_UNUSED_RESULT was defined in src/base/compiler-specific.h, which includes include/v8config.h, which already defined V8_WARN_UNUSED_RESULT. R=mstarzinger@chromium.org Bug: v8:7570 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I662072294605036ca5aa0c8fdaa0218ac5d95f23 Reviewed-on: https://chromium-review.googlesource.com/998893Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#52457}
-
- 05 Apr, 2018 1 commit
-
-
Peter Marshall authored
Fixes a crash that happens when calling postMessage on an empty typed array. GetBuffer should only call MaterializeArrayBuffer for on-heap buffers, but the on-heap check is slightly wrong. This CL moves the on-heap check logic to the JSTypedArray class so that other parts of the codebase don't need to worry about how that is determined. Also add some dchecks to materialize itself. It should only receive on-heap buffers and should always transform them to off-heap buffers. There is also no reason for it to be static, so change that here too. Bug: chromium:797588 Change-Id: Icd88a5b68e424d82c9f1f7889ca42a40a72a1bdc Reviewed-on: https://chromium-review.googlesource.com/995898 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#52388}
-
- 24 Mar, 2018 1 commit
-
-
Eric Holk authored
Bug: chromium:825087 Change-Id: I2eb163e5399e98da75cd1e4ad6f0a62d6da4ae2c Reviewed-on: https://chromium-review.googlesource.com/978840Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Eric Holk <eholk@chromium.org> Cr-Commit-Position: refs/heads/master@{#52198}
-
- 22 Mar, 2018 1 commit
-
-
Eric Holk authored
When using trap handlers, memory references do not get any checks inserted. This means there is no check for a null memory as happens when the memory size is 0. Normally this would be correctly caught as an out of bounds access, since the low memory addresses are not normally mapped. However, if they were mapped for some reason, we would not catch the out of bounds access. The fix is to ensure WebAssembly instances always have a guard region even if the memory is size 0. This is a rewrite of 5e76ff5a Note that this can lead to a large amount of unnecessary address space usage, so we share a single reservation for empty array buffers. Bug: chromium:769637 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: Ia8e84be6d595e347d3d342959f2c374db1a3f683 Reviewed-on: https://chromium-review.googlesource.com/702657Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Eric Holk <eholk@chromium.org> Cr-Commit-Position: refs/heads/master@{#52163}
-
- 20 Mar, 2018 1 commit
-
-
Eric Holk authored
This moves the Wasm-specific metadata from being fields on the ArrayBuffer into a table managed by WasmMemoryTracker. Bug: chromium:776273 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: Id8b050bfdfe0fbe9436fb055e92c08d503d3c2ba Reviewed-on: https://chromium-review.googlesource.com/850550 Commit-Queue: Eric Holk <eholk@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#52080}
-
- 05 Mar, 2018 1 commit
-
-
Benedikt Meurer authored
This changes the JSArrayIterator to always have only a single instance type, instead of the zoo of instance types that we had before, and which became less useful with the specification update to when "next" is loaded from the iterator now. This greatly simplifies the baseline implementation of the array iterator, which now only looks at the iterated object during %ArrayIteratorPrototype%.next invocations. In TurboFan we introduce a new JSCreateArrayIterator operator, that holds the IterationKind and get's the iterated object as input. When optimizing %ArrayIteratorPrototype%.next in the JSCallReducer, we check whether the receiver is a JSCreateArrayIterator, and if so, we try to infer maps for the iterated object from there. If we find any, we speculatively assume that these won't have changed during iteration (as we did before with the previous approach), and generate fast code for both JSArray and JSTypedArray iteration. Drive-by-fix: Drop the fast_array_iteration protector, it's not necessary anymore since we have the deoptimization guard bit in the JSCallReducer now. This addresses the performance cliff noticed in webpack 4. The minimal repro on the tracking bug goes from console.timeEnd: mono, 124.773000 console.timeEnd: poly, 670.353000 to console.timeEnd: mono, 118.709000 console.timeEnd: poly, 141.393000 so that's a 4.7x improvement. Also make presubmit happy by adding the missing #undef's. Bug: v8:7510, v7:7514 Change-Id: I79a46bfa2cd0f0710e09365ef72519b1bbb667b5 Reviewed-on: https://chromium-review.googlesource.com/946098Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#51725}
-
- 07 Feb, 2018 2 commits
-
-
Choongwoo Han authored
There are functions that were called by TypedArraySpeciesCreate that is deleted now. This CL removes Create, HasJSTypedArrayPrototype, DefaultConstructor in JSTypedArray, which is not used anymore. Change-Id: Ib4785cc52a8f18f2a3dfc3f27e39a23260cb2a4f Reviewed-on: https://chromium-review.googlesource.com/905712Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#51145}
-
Peter Marshall authored
Move the class declaration for SpeciesCreateByLength to a header file so that we can share more TypedArray CSA code. Delete the C++ implementation of species create for typed arrays because it is no longer used. Change-Id: I7c43b8ef144ba9a8ce12516f7cb8fb570491cb26 Reviewed-on: https://chromium-review.googlesource.com/904987Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#51139}
-
- 16 Jan, 2018 1 commit
-
-
Choongwoo Han authored
If there is no constructor or species updates on Array or TypedArrays, then skip lookups of constructor and species so that we can create a new typed array quickly. This path makes TA.p.slice() 2x faster in fast cases. Bug: chromium:800356, v8:7161 Change-Id: Ied8c90e23ca6708f4a3cec077c1fd733e4a6609e Reviewed-on: https://chromium-review.googlesource.com/859397Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#50617}
-
- 10 Jan, 2018 1 commit
-
-
Jakob Gruber authored
This reverts commit 8fbc6a05. Reason for revert: https://crbug.com/800356 Original change's description: > Optimize TypedArraySpeciesCreate using SpeciesProtector of Array > > If there is no constructor or species updates on Array or TypedArrays, > then skip lookups of constructor and species so that we can create a new > typed array quickly. This path makes TA.p.slice() 4x faster in fast > cases. > > Bug: v8:7161 > Change-Id: Ib8d2a3f6b8b5ed356c5822a814164166d1285f64 > Reviewed-on: https://chromium-review.googlesource.com/828343 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#50423} TBR=jkummerow@chromium.org,jgruber@chromium.org,ishell@chromium.org,bmeurer@chromium.org,cwhan.tunz@gmail.com Change-Id: Icca07564d2a83710852eb797bac25f1d5600696e No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7161 Reviewed-on: https://chromium-review.googlesource.com/859156Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#50470}
-
- 09 Jan, 2018 1 commit
-
-
Choongwoo Han authored
If there is no constructor or species updates on Array or TypedArrays, then skip lookups of constructor and species so that we can create a new typed array quickly. This path makes TA.p.slice() 4x faster in fast cases. Bug: v8:7161 Change-Id: Ib8d2a3f6b8b5ed356c5822a814164166d1285f64 Reviewed-on: https://chromium-review.googlesource.com/828343 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#50423}
-
- 01 Dec, 2017 1 commit
-
-
Marja Hölttä authored
BUG=v8:5402,v8:7109 Change-Id: Ief9bea58e4dcade4cf4dfbb1d52166b7a5ef3ac0 Reviewed-on: https://chromium-review.googlesource.com/803255 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#49787}
-
- 28 Nov, 2017 1 commit
-
-
jgruber authored
These fields relied on the assumption that 64-bit big-endian architectures had sizeof(int) == 4. Any architecture violating this assumption would result in an OOB access. Bug: Change-Id: I682ecb6a2da2cf84e8b24f1c1e608d7fc23f5bdc Reviewed-on: https://chromium-review.googlesource.com/793431Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#49673}
-
- 20 Nov, 2017 3 commits
-
-
Peter Marshall authored
Free ArrayBuffer backing stores on a background thread, rather than blocking the main thread after processing. Could potentially cause contention with the array buffer allocator once JS execution resumes. The new ArrayBufferCollector class tracks these dead allocations. Later, the processing of array buffers can happen in parallel. Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng;master.tryserver.v8:v8_linux64_tsan_rel;master.tryserver.v8:v8_linux64_tsan_concurrent_marking_rel_ng;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel Bug: v8:6992 Change-Id: I2b74f008f79521414374f607ed510f66508af160 Reviewed-on: https://chromium-review.googlesource.com/779182 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#49505}
-
Peter Marshall authored
This reverts commit b6658ade. Reason for revert: Breaks TSAN :( Original change's description: > [heap] Concurrently free ArrayBuffer allocations. > > Free ArrayBuffer backing stores on a background thread, rather than > blocking the main thread after processing. Could potentially cause > contention with the array buffer allocator once JS execution resumes. > > The new ArrayBufferCollector class tracks these dead allocations. > > Later, the processing of array buffers can happen in parallel. > > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng > > Bug: v8:6992 > Change-Id: I49ae4db12ed62d8400ba2bbafeda05a11479d904 > Reviewed-on: https://chromium-review.googlesource.com/739829 > Commit-Queue: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49485} TBR=hpayer@chromium.org,mlippautz@chromium.org,petermarshall@chromium.org Change-Id: If6743b83f871c0fd0d6e83a3083dce0eecd99021 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6992 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/779159Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#49488}
-
Peter Marshall authored
Free ArrayBuffer backing stores on a background thread, rather than blocking the main thread after processing. Could potentially cause contention with the array buffer allocator once JS execution resumes. The new ArrayBufferCollector class tracks these dead allocations. Later, the processing of array buffers can happen in parallel. Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Bug: v8:6992 Change-Id: I49ae4db12ed62d8400ba2bbafeda05a11479d904 Reviewed-on: https://chromium-review.googlesource.com/739829 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#49485}
-