- 17 Feb, 2020 2 commits
-
-
Ulan Degenbaev authored
This also changes Heap::AllocateExternalBackingStore to avoid GC inside AlwaysAllocateScope. Bug: chromium:1042566 Change-Id: Ifa8fe8227af2d6492dbb4f9c52f43754d44926fb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2060295 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#66298}
-
Shu-yu Guo authored
Currently dirty FinalizationGroups are processed by the cleanup task in LIFO order. This results in starvation when FinalizationGroups are added to the dirty list faster than the cleanup task is run. R=ulan@chromium.org Bug: v8:8179 Change-Id: I6e4a5bbd490396120b07ca6053176beded7cef6e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2051619Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/master@{#66296}
-
- 12 Feb, 2020 2 commits
-
-
Shu-yu Guo authored
A FinalizationGroup that needs cleanup should not artificially prolong its lifetime by being on the dirty list. R=ulan@chromium.org Bug: v8:8179 Change-Id: I19f102d154a9ac43b549b7d833d0c3ca7e61c6d0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2051562Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/master@{#66251}
-
Sam Maier authored
This CL introduces, and turns on by default, compression for snapshots. The compression is handled in SnapshotCompression, which is a new static helper class for producing/consuming compressed SnapshotData. To turn off snapshot compression (accomplished by removing calls of Compress/Decompress) set the GN arg: v8_disable_snapshot_compression = true Bug: chromium:833361 Change-Id: If8abc3662e8473fbd0c94e443946fbea804a305e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1846066 Commit-Queue: Sam Maier <smaier@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#66230}
-
- 11 Feb, 2020 1 commit
-
-
Leszek Swirski authored
Adds support for off-thread allocation to Script allocation and line-end calculation. This includes adding support for keeping/merging a script list on the OffThreadIsolate, and adding syntactical support for logging (in the future this could do actual logging). Bug: chromium:1011762 Change-Id: Id90f2ad7458e90e06f6926f1fce7ef7a1ef50b3d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2046884Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#66213}
-
- 06 Feb, 2020 1 commit
-
-
Steve Blackburn authored
Currently back references to regular objects are encoded in terms of a relative address, index by chunk index and chunk offset. This approach has the advantage of avoiding the need for a table of back-references at deserialization time, but makes strong assumptions about the way objects are organized in memory (for example, this will not work if the allocator uses a free list rather than a bump pointer). I did some quick measurements and found that the absolute number of objects and back-references is low, suggesting that simply indexing objects would work with little (or no) observable impact on peak memory use during deserialization. Indexing only back referenced objects is not implemented in this simple CL, but could fairly easily be added. Given that the existing mechanism will remain in place, I have implemented the object index by simply making chunk size one, so every object lives on its own chunk (with offset zero). This is the moral equivalent to indexing each object but is a more minimal change. Directly encoding an object index will be more efficient, the trade off made here is just to keep the change absolutely minimal. If using an object index becomes the default, this can be optimized first by only using an index for each object that is actually back- referenced (about half of all objects in my measurements), and more aggressively, a technique like register allocation could be used at serialization time to limit the number of indices to the maximum number of outstanding back-references at any time (basically a live- range analysis of back-references). Bug: v8:9533 Change-Id: I1b7ae87e954f67f6405c2bbdf3b4a4f385af8579 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2030742 Commit-Queue: Steve Blackburn <steveblackburn@google.com> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#66154}
-
- 05 Feb, 2020 1 commit
-
-
Dan Elphick authored
Fixes the one case after calling EnsureSourcePositionsCollected that we were still using the non-handle version of the SharedFunctionInfo. Bug: chromium:1048555 Change-Id: Iefd35fab13623a1f05212c98864be62c37463942 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2037437 Commit-Queue: Dan Elphick <delphick@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Auto-Submit: Dan Elphick <delphick@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#66130}
-
- 04 Feb, 2020 1 commit
-
-
Steve Blackburn authored
These guards are needed since the third part heaps don't use the deserialization reservation system. Bug: v8:9533 Change-Id: I0e8bd7928581979bed15abdfaf639c9fdfc8a30f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2030908 Commit-Queue: Steve Blackburn <steveblackburn@google.com> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#66108}
-
- 30 Jan, 2020 1 commit
-
-
Dominik Inführ authored
The JSArrayBuffer extension stores a pointer to native memory. Set it to null before serialization and then restore the old value. Bug: v8:10064 Change-Id: I11b6d5a02cad7da119308b280269a72e24ee2a80 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2029410Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#66046}
-
- 27 Jan, 2020 2 commits
-
-
Steve Blackburn authored
This TODO clarifies intentions of 49f60a3b. Bug: v8:9533 Change-Id: Ide448ae863a8716dafdcdd7fb27801a51655650e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2022145Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Steve Blackburn <steveblackburn@google.com> Cr-Commit-Position: refs/heads/master@{#65997}
-
Steve Blackburn authored
Deserialization bypasses the heap allocators, bumping pointers into the spaces directly, instead. So the deserializer is tightly coupled to the implementation of the existing collector. Here I've added an interface to heap.h for this purpose. This CL leaves things as-is unless the TPH is enabled, in which case the new interface is used. Future work: use the heap.h interface in all cases. Bug: v8:9533 Change-Id: I3b1cc81870b347fbfb509ddb4031bd3781710240 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2019482 Commit-Queue: Steve Blackburn <steveblackburn@google.com> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#65992}
-
- 23 Jan, 2020 1 commit
-
-
Steve Blackburn authored
The TPH needs to support the idea of 'code' objects, and the ability to query whether an object is of this type. Bug: v8:9533 Change-Id: Ic36b235bd9640aa675a3ef0d8c3f6c98dd8cd862 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2013116Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Steve Blackburn <steveblackburn@google.com> Cr-Commit-Position: refs/heads/master@{#65948}
-
- 13 Jan, 2020 1 commit
-
-
Dominik Inführ authored
This CL adds the ArrayBufferExtension class, which is used to track JSArrayBuffers in a linked list. The ArrayBufferExtension is going to replace the ArrayBufferTracker in the future but is currently behind the v8_enable_array_buffer_extension feature flag. When enabled, each JSArrayBuffer has a corresponding native-heap allocated ArrayBufferExtension object. All extensions are currently tracked in a single linked list. During marking the GC not only marks the JSArrayBuffer but also its extension object. At the end of mark-compact the GC iterates all extensions and removes unmarked ones. Change-Id: I88298be255944d5ae1327c91b0d7f0fdbcd486d5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1969791Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#65724}
-
- 07 Jan, 2020 1 commit
-
-
Leszek Swirski authored
LogWriteDebugInfo can allocate when calculating line ends for source positions, so make its called, LogRecordedBuffer, take Handles rather than raw Objects. This also improves its API, as we can change the maybe-null SharedFunctionInfo argument into a MaybeHandle. Bug: chromium:1037872 Change-Id: Ifa3e2d9be7aa7de3b05e5c1e107406004b8963c7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1985995 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#65603}
-
- 02 Jan, 2020 1 commit
-
-
Peter Marshall authored
Just a cleanup, should not change behavior, although we will allocate more handles in some cases. Also re-orders some of the implementations of the interface to try and keep things consistent. Included cleanup: Change CodeEventDispatcher so that it now implements CodeEventListener, given that it had that exact interface already. Also remove the macro dispatch to try and make things a bit easier to read. Bug: chromium:1033407 Change-Id: Id943b10c49f102d9783d8f4cf3a8c43e04364c77 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1976390Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#65571}
-
- 19 Dec, 2019 2 commits
-
-
Ulan Degenbaev authored
This is a reland of ff7acbd6 Original change's description: > Reland "Delay setting up deserialized JSArrayBuffer" > > This is a reland of 83786cb4 > > Original change's description: > > Delay setting up deserialized JSArrayBuffer > > > > Setting up JSArrayBuffer may trigger GC. Delay this until we > > are done with deserialization. > > > > R=ulan@chromium.org > > > > Bug: chromium:1033395 > > Change-Id: I6c79bc47421bc2662dc1906534fc8e820c351ced > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1965580 > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > > Commit-Queue: Yang Guo <yangguo@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#65441} > > Tbr: yangguo@chromium.org > Bug: chromium:1033395, chromium:1034059 > Change-Id: I89d05768f52a480400d9c6f5aaaa233c5d5ba126 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1969896 > Commit-Queue: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#65484} Tbr: yangguo@chromium.org Bug: chromium:1033395, chromium:1034059 Change-Id: I1cc47fa742bd7c5ce602b1eb9a0a78cb479a86f1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1975756Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#65522}
-
Nico Hartmann authored
This reverts commit ff7acbd6. Reason for revert: https://ci.chromium.org/p/chromium/builders/try/win_optional_gpu_tests_rel/34257 Original change's description: > Reland "Delay setting up deserialized JSArrayBuffer" > > This is a reland of 83786cb4 > > Original change's description: > > Delay setting up deserialized JSArrayBuffer > > > > Setting up JSArrayBuffer may trigger GC. Delay this until we > > are done with deserialization. > > > > R=ulan@chromium.org > > > > Bug: chromium:1033395 > > Change-Id: I6c79bc47421bc2662dc1906534fc8e820c351ced > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1965580 > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > > Commit-Queue: Yang Guo <yangguo@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#65441} > > Tbr: yangguo@chromium.org > Bug: chromium:1033395, chromium:1034059 > Change-Id: I89d05768f52a480400d9c6f5aaaa233c5d5ba126 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1969896 > Commit-Queue: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#65484} TBR=ulan@chromium.org,yangguo@chromium.org,petermarshall@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: chromium:1033395, chromium:1034059 Change-Id: I3ad17293bfeba8a817346f57f885c7ba95739d36 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1975751Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/master@{#65516}
-
- 17 Dec, 2019 1 commit
-
-
Ulan Degenbaev authored
This is a reland of 83786cb4 Original change's description: > Delay setting up deserialized JSArrayBuffer > > Setting up JSArrayBuffer may trigger GC. Delay this until we > are done with deserialization. > > R=ulan@chromium.org > > Bug: chromium:1033395 > Change-Id: I6c79bc47421bc2662dc1906534fc8e820c351ced > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1965580 > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Commit-Queue: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#65441} Tbr: yangguo@chromium.org Bug: chromium:1033395, chromium:1034059 Change-Id: I89d05768f52a480400d9c6f5aaaa233c5d5ba126 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1969896 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#65484}
-
- 13 Dec, 2019 2 commits
-
-
Michael Achenbach authored
This reverts commit 83786cb4. Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Blink%20Linux%20Debug/2037 Original change's description: > Delay setting up deserialized JSArrayBuffer > > Setting up JSArrayBuffer may trigger GC. Delay this until we > are done with deserialization. > > R=ulan@chromium.org > > Bug: chromium:1033395 > Change-Id: I6c79bc47421bc2662dc1906534fc8e820c351ced > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1965580 > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Commit-Queue: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#65441} TBR=ulan@chromium.org,yangguo@chromium.org,petermarshall@chromium.org Change-Id: I77b8ae836e9003eaaccef440dfaf3ae840c112cb No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:1033395 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1967327Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#65450}
-
Yang Guo authored
Setting up JSArrayBuffer may trigger GC. Delay this until we are done with deserialization. R=ulan@chromium.org Bug: chromium:1033395 Change-Id: I6c79bc47421bc2662dc1906534fc8e820c351ced Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1965580Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#65441}
-
- 06 Dec, 2019 1 commit
-
-
Ulan Degenbaev authored
The cache adds a strong pointer from a code object to closures and thus can leak arbitrary objects. Bug: chromium:1030043 Tbr: yangguo@chromium.org Change-Id: I8ce90119fa97eaea59d42e7fae5acd336b5fe5d9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1954392 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#65363}
-
- 25 Nov, 2019 2 commits
-
-
Sam Maier authored
adler32 is strictly faster than the old checksum - see this doc: https://docs.google.com/document/d/1fFhuShavlUwf0FqTc-6L3XLYbAVe0DhpmHSv4oenZL8/edit?pli=1#heading=h.ojvfq6akbz5f adler32 also no longer requires alignment to be maintained. Bug: chromium:833361 Change-Id: I3dbfa699b712aa908c87e6f8261756a4a1209df4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1925562 Commit-Queue: Sam Maier <smaier@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#65160}
-
Maya Lekova authored
This CL moves the DisallowHeapAllocation scopes closer to the callsites that get detected as GC causes by GCMole. Bug: v8:9992 Change-Id: I3148f088ff40cee877683f214f85d745ed685a25 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1928865Reviewed-by:
Dan Elphick <delphick@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#65150}
-
- 22 Nov, 2019 1 commit
-
-
Dan Elphick authored
R=mslekova@chromium.org Bug: v8:9992 Change-Id: I970b919e456257f5776454edceb0bcc1c40eff7d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1930556 Auto-Submit: Dan Elphick <delphick@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#65115}
-
- 19 Nov, 2019 1 commit
-
-
Dan Elphick authored
Handlify raw SharedFunctionInfo in CreateInterpreterDataForDeserializedCode. Bug: v8:9992 Change-Id: I58fd2a78723cb3cd4784086c171c58cf2c32aacc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1924362 Auto-Submit: Dan Elphick <delphick@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#65044}
-
- 15 Nov, 2019 2 commits
-
-
Dan Elphick authored
utils.h itself is fairly large and contains lots of unrelated functions as well as having a fair number of dependencies itself, so this splits bounds checking and bit field operations into their own headers in base and replaces uses of utils.h with the more appropriate header where possible. (Also fixes some cases where other headers were previously brought in transitively). Bug: v8:9810, v8:8912 Change-Id: I76c53f953848a57e2c5bfad6ce45abcd6d2a4f1b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1916604Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#64983}
-
Maya Lekova authored
This helps reduce the number of false positives encountered by the dead variable analysis in gcmole. TBR=jgruber@chromium.org, verwaest@chromium.org, yangguo@chromium.org Bug: v8:9810 Change-Id: I1a34ccaab340e6abc37832b4ce1a0cabc56fa438 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1917146 Commit-Queue: Maya Lekova <mslekova@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#64981}
-
- 07 Nov, 2019 1 commit
-
-
Matheus Marchini authored
Lack of size information can cause debugging and observability tools to misbehave or to fail. We can see the size for all builtins is zero with objdump: $ objdump -t d8 | grep Builtins_ArgumentsAdaptorTrampoline 0000000001084a00 l F .text 0000000000000000 Builtins_ArgumentsAdaptorTrampoline ^ Size is zero Tools like bpftrace rely on the function size to guarantee a tracepoint is added within function boundaries. Without size information, those tools can't guarantee a tracepoint will be added safely. Add .size directive for each builtin function, as described in https://sourceware.org/binutils/docs-2.24/as/Size.html#Size, to fix this issue. We can see with objdump that the size is properly set: $ objdump -t d8 | grep Builtins_ArgumentsAdaptorTrampoline 00000000010bf820 l F .text 0000000000000140 Builtins_ArgumentsAdaptorTrampoline R=bmeurer@chromium.org, hpayer@chromium.org, verwaest@chromium.org, yangguo@chromium.org Change-Id: I4cd2b0a12b629498dd9d7465cc1002dda37028c7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1898807 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#64824}
-
- 06 Nov, 2019 1 commit
-
-
Mike Stanton authored
Currently, line number information is added to windows binaries as DWARF data. This prevents windows tools like DUMPBIN from working, as they don't expect to see DWARF segments. Any line number information should be in the CodeView (PDB) format. This work is deferred until later. Bug: v8:9944, v8:9910 Change-Id: I87c950d9aaa543c1eb3356310289e99266f1565e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1900446Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#64795}
-
- 05 Nov, 2019 1 commit
-
-
Benedikt Meurer authored
This removes the feature that we log precise information about functions and scripts in "v8.compile", since it comes at a significant cost and is not going to be used anytime soon. If we ever decide that we need this, we will have to come up with a cheaper way of doing this. Fixed: v8:9874 Tbr: yangguo@chromium.org Bug: v8:8598, v8:9039, v8:9325, v8:9874 Change-Id: I3481570b6fda2a050f05d2ae84cf3e9245f67d52 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1898652Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#64783}
-
- 04 Nov, 2019 1 commit
-
-
Dan Elphick authored
This is a reland of 855591a5 Fixes break in builds that verify ReadOnlyHeap by relaxing the requirement for Code objects to be in CODE_SPACE in PagedSpaceObjectIterator::FromCurrentPage. Original change's description: > Reland: [builtins] Move non-JS linkage builtins code objects into RO_SPACE > > Reland of https://chromium-review.googlesource.com/c/v8/v8/+/1795358. > > [builtins] Move non-JS linkage builtins code objects into RO_SPACE > > Creates an allow-list of builtins that can still go in code_space > including all TFJ builtins and a small manual list that should be pared > down in the future. > > For builtins that go in RO_SPACE a Code object is created that contains an > immediate trap instruction. Generally these Code objects are still no > smaller than CODE_SPACE Code objects because of the Code object alignment > requirements. This will hopefully be addressed in a follow-up CL either by > relaxing them or removing the instruction stream completely. > > In the snapshot, this reduces code_space from ~152k to ~40k (-112k) and > increases by the same amount. > > Change-Id: I76661c35c7ea5866c1fb16e87e87122b3e3ca0ce > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1893336 > Commit-Queue: Dan Elphick <delphick@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#64700} Change-Id: I4eeb7dab3027b42fa58c5dfb2bad9873e9fff250 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1893192 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#64728}
-
- 31 Oct, 2019 2 commits
-
-
Bill Budge authored
This reverts commit 855591a5. Reason for revert: Breaks arm64 sim tests https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20debug/17957 https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20gc%20stress/16585 Original change's description: > Reland: [builtins] Move non-JS linkage builtins code objects into RO_SPACE > > Reland of https://chromium-review.googlesource.com/c/v8/v8/+/1795358. > > [builtins] Move non-JS linkage builtins code objects into RO_SPACE > > Creates an allow-list of builtins that can still go in code_space > including all TFJ builtins and a small manual list that should be pared > down in the future. > > For builtins that go in RO_SPACE a Code object is created that contains an > immediate trap instruction. Generally these Code objects are still no > smaller than CODE_SPACE Code objects because of the Code object alignment > requirements. This will hopefully be addressed in a follow-up CL either by > relaxing them or removing the instruction stream completely. > > In the snapshot, this reduces code_space from ~152k to ~40k (-112k) and > increases by the same amount. > > Change-Id: I76661c35c7ea5866c1fb16e87e87122b3e3ca0ce > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1893336 > Commit-Queue: Dan Elphick <delphick@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#64700} TBR=ulan@chromium.org,jgruber@chromium.org,delphick@chromium.org Change-Id: I4211c3bb7fe4741e0ba3898f92ce382dfc93c4f3 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1893636Reviewed-by:
Bill Budge <bbudge@chromium.org> Commit-Queue: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#64701}
-
Dan Elphick authored
Reland of https://chromium-review.googlesource.com/c/v8/v8/+/1795358. [builtins] Move non-JS linkage builtins code objects into RO_SPACE Creates an allow-list of builtins that can still go in code_space including all TFJ builtins and a small manual list that should be pared down in the future. For builtins that go in RO_SPACE a Code object is created that contains an immediate trap instruction. Generally these Code objects are still no smaller than CODE_SPACE Code objects because of the Code object alignment requirements. This will hopefully be addressed in a follow-up CL either by relaxing them or removing the instruction stream completely. In the snapshot, this reduces code_space from ~152k to ~40k (-112k) and increases by the same amount. Change-Id: I76661c35c7ea5866c1fb16e87e87122b3e3ca0ce Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1893336 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#64700}
-
- 28 Oct, 2019 3 commits
-
-
Seth Brenith authored
This change begins making use of the fact that Torque now knows about the relationship between classes and instance types, to replace a few repetitive lists: - Instance type checkers (single and range), defined in src/objects/instance-type.h - Verification dispatch in src/diagnostics/objects-debug.cc - Printer dispatch in src/diagnostics/objects-printer.cc - Postmortem object type detection in tools/debug_helper/get-object-properties.cc Torque is updated to generate four macro lists for the instance types, representing all of the classes separated in two dimensions: classes that correspond to a single instance type versus those that have a range, and classes that are fully defined in Torque (with fields and methods inside '{}') versus those that are only declared. The latter distinction is useful because fully-defined classes are guaranteed to correspond to real C++ classes, whereas only-declared classes are not. A few other changes were required to make the lists above work: - Renamed IsFiller to IsFreeSpaceOrFiller to better reflect what it does and avoid conflicts with the new macro-generated IsFiller method. This is the part I'm most worried about: I think the new name is an improvement for clarity and consistency, but I could imagine someone typing IsFiller out of habit and introducing a bug. If we'd prefer to keep the name IsFiller, my other idea is to rename FreeSpace to VariableSizeFiller and Filler to FixedSizeFiller. - Made Tuple3 extend from Struct, not Tuple2, because IsTuple2 is expected to check for only TUPLE2_TYPE and not include TUPLE3_TYPE. - Normalized the dispatched behavior for BigIntBase and HeapNumber. - Added a few new object printers. Bug: v8:7793 Change-Id: I5462bb105f8a314baa59bd6ab6ab6215df6f313c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1860314 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Dan Elphick <delphick@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#64597}
-
Michael Starzinger authored
R=jgruber@chromium.org BUG=v8:6666,v8:9810 Change-Id: I972983d8e86729843f4a1bbe050e3b37a3c0c61c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1881147Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#64578}
-
Jakob Gruber authored
Debug infos for embedded builtins (associating a file and line number with certain code ranges) should only be emitted in debug modes. This CL disables source position emission in Torque in release builds, and adds checks that the external filename / source position lists are empty in release builds. Bug: v8:9910 Change-Id: Ic69683a2324c3b334150ee2b7da9972fbee56483 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1879903Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#64576}
-
- 25 Oct, 2019 1 commit
-
-
Leszek Swirski authored
Both LO_SPACE and NEW_LO_SPACE use the basic page management system of LargeObjectSpace, but implement different AllocateRaw methods (with the NEW_LO_SPACE version shadowing the LO_SPACE version). To clean this up, and allow other future LargeObjectSpace implementations (in particular, an off-thread variant), refactored the current LargeObjectSpace into a base class, and make both LargeObjectSpace (renamed to OldLargeObjectSpace) and NewLargeObjectSpace extend this class. Bug: chromium:1011762 Change-Id: I41b45b97f2611611dcfde677213131396df03a5e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1876824 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#64560}
-
- 22 Oct, 2019 2 commits
-
-
Jakob Gruber authored
This CL removes the V8_EMBEDDED_BUILTINS define, FLAG_embedded_builtins, and all code for supporting non-embedded-builtin builds. Bug: v8:6666,v8:8519 Change-Id: I2ad7bd6614c7cd404b83d3d2bf5ff91d7b55ff2a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1866569 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#64461}
-
Jakob Gruber authored
The natives blob was deprecated in V8 7.8. This CL removes all related functionality, including: - Build system support, i.e.: generation of natives_blob.bin and the v8_extra_library_files gn flag. - Related scripts (js2c.py, concatenate-files.py). - Related API functions (SetNativesDataBlob, InitializeExternalStartupData). - Natives bootstrapping logic. - The InternalArray type (previously exposed through natives). - Other natives-exposed builtins. - Inlining of these builtins. - The dedicated 'uncached external one byte string' type. Step 1 landed in https://crrev.com/c/1824944. Step 2 landed in https://crrev.com/c/1835536. Step 3 (this CL) removes these all functionality related to natives support in V8. Bug: v8:7624 Change-Id: Ice6c2662781efe8417231805276476d32bc5a625 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1844771 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Tamer Tas <tmrts@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#64446}
-
- 21 Oct, 2019 1 commit
-
-
Seth Brenith authored
The current unwinding data for JSEntry correctly restores the frame pointer and program counter from the caller frame, which might or might not be sufficient to continue unwinding, depending on the contents of that caller frame. Currently, the cctest StackUnwindingWin64 is broken (at least with my build config) because the caller frame also needs the stack pointer, which is not restored correctly. In particular, I see this xdata for v8::internal::GeneratedCode<...>, which is the function that calls Builtins_JSEntry: 10400015 : 2 code words, 1 epilog, function length=15 01000012 : epilog starts at 12 and its unwind handler starts at 4 e405c8d2 : save_reg x=b z=8 alloc_s x=5 end e405c8d2 : same thing but for the epilog The prolog that corresponds to the unwind codes above is: sub sp, sp, #50 str lr, [sp, #0x40] Note that it does not set fp, so unwinding requires an accurate sp. This change emits slightly more complicated unwinding data for JSEntry so that the frame pointer, stack pointer, and program counter can all be restored. Change-Id: I0c7f3eba97ef64408f46631b487c4b0ceb06fa9b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1848860 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#64435}
-