- 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}
-
- 30 Jul, 2018 1 commit
-
-
Jaroslav Sevcik authored
This CL introduces InstanceTypeChecker namespace with type checkers for types used by the optimizing compiler. The type checkers are global functions. Examples: bool InstanceTypeChecker::IsJSFunction(InstanceType); bool InstanceTypeChecker::IsAllocationSite(InstanceType); The CL also uses these type checkers in the HeapObject::IsXXXX() functions to ensure consistency. Bug: v8:7790 Change-Id: I7eb9e79ca28da02fd489201f532e566d0d13243a Reviewed-on: https://chromium-review.googlesource.com/1154529Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#54782}
-
- 26 Jul, 2018 1 commit
-
-
Michael Lippautz authored
Move write barrier essentials into heap/heap-write-barrier-inl.h. Avoid including further heap inline headers by relying on constant to load flags from. Bug: v8:7490 Change-Id: I2891299f1b1ca2c3e2031cb9c63b583b1665e3f9 Reviewed-on: https://chromium-review.googlesource.com/1148448 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#54710}
-
- 24 Jul, 2018 2 commits
-
-
Peter Marshall authored
Change-Id: Ib0a047c0e02b3feaf878af2ec87d5d0f35167280 Reviewed-on: https://chromium-review.googlesource.com/1148561 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54665}
-
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}
-
- 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}
-
- 03 Jul, 2018 1 commit
-
-
Dan Elphick authored
Adds a ReadOnlyRoots class trivially constructable from a Heap* or Isolate* and which can be obtained from a any HeapObject which provides access to roots objects that will always be in RO_SPACE. In the longer term this object will be accessed via a global variable without requiring an Isolate or using the memory address of a HeapObject to infer it. Moves the list macros in heap.h to roots.h and splits some of them into two parts (read-only and mutable). Convert cases of heap_object->GetHeap()->root_accessor() to heap_objects->GetReadOnlyRoots().root_accessor(). Bug: v8:7786 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I14b01052adb2af9a5ec82b970e933d6a423d17a5 Reviewed-on: https://chromium-review.googlesource.com/1122127 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#54160}
-
- 24 May, 2018 1 commit
-
-
Marja Hölttä authored
Moving them away was a mistake. Fixing this enables getting rid of a bunch of includes. BUG=v8:5402 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I5482eab4281c7450350f058fe0a04a6f375ea082 Reviewed-on: https://chromium-review.googlesource.com/1070188Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#53328}
-
- 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}
-
- 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 1 commit
-
-
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}
-
- 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}
-
- 23 Oct, 2017 1 commit
-
-
Deepti Gandluri authored
If the buffer associated with WebAssembly.Memory is used as memory for asm.js modules, throw a range error on Memory.Grow. Bug: chromium:776677 Change-Id: Iebcd7797fa7724002dd8073d1dbaeb98f080d316 Reviewed-on: https://chromium-review.googlesource.com/731844 Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Reviewed-by:
Brad Nelson <bradnelson@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#48837}
-
- 17 Oct, 2017 1 commit
-
-
Marja Hölttä authored
BUG=v8:5402,v8:6921 Change-Id: Iab2509554718a6beca73217f80cafedf650bd066 Reviewed-on: https://chromium-review.googlesource.com/718741Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#48629}
-