- 11 Jun, 2021 1 commit
-
-
Dan Elphick authored
This removes/replaces header includes with the aim of shrinking the size of the inline header cycle. Specifically before this CL, there was a single Strongly-Connected Component comprising 60 header files from src/objects and src/heap. Now there are two 2 SCCs. The src/heap SCC has 6 files and depends on the src/objects SCC, which has 50 files. Additionally some previously implicit dependencies have been added. Dependencies calculated using: git grep "#include \"" *.h *.cc | sed 's/:#include "/ /;s/".*$//' | \ awk 'BEGIN {print "digraph deps {" } END {print "}"} {print "\""$1"\" -> \""$2"\""}' SCCs found using sccmap from graphviz. Also removes unused Cell::FromValueAddress method. Change-Id: Ib19d00ccd14e490ee64d57be4d99b1b3686ac32a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2951734Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#75103}
-
- 08 Jun, 2021 1 commit
-
-
Santiago Aboy Solanes authored
See set_parent https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/string-inl.h;l=857;drc=a6207b54d010a5bee8611a6ef08f9bee9a9768cf Change-Id: I2fa5718c04b281016e2d4cae07b7f36e37176d6e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2947402Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#75023}
-
- 07 Jun, 2021 1 commit
-
-
Santiago Aboy Solanes authored
We have recursive calls such ThinStrings where we go String::Get into ThinString::Get into String::Get again for the internalized string. If we need to, we would acquire the StringAccessGuard in the first String::Get and it wouldn't be needed to be re-acquired for the second String::Get. Trying to re-acquire it would in fact be an error since we are already holding the lock. The code, however, didn't know if we acquired it or not. It was working correctly due to the way the methods were defined and called. By passing down the access guard through the Get() calls we make this interaction explicit. Also add some thin string tests to test the interaction. Bug: v8:7790 Change-Id: I1181edec1e802cb754c4d1d1ac268577257b92f3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2936598 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#74984}
-
- 17 May, 2021 1 commit
-
-
Santiago Aboy Solanes authored
This ends up cleaning up the last of the macros in object-macros which were using `synchronized_`. There are still a few methods which use `synchronized_` but those were defined ad-hoc (i.e. w/o macros). Bug: v8:7790 Change-Id: Ib2d35030fd032293e746c09e10156e526af8d032 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2897085Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#74589}
-
- 30 Apr, 2021 1 commit
-
-
Clemens Backes authored
cpplint rules change over time, and we change the exact rules we enable for v8. This CL removes NOLINT annotations which are not needed according to the currently enabled rules. R=jkummerow@chromium.org Bug: v8:11717 Change-Id: Iaaab7cc1ba8af297cf6f3aafa349bf29b34cd60d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859949 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#74299}
-
- 26 Apr, 2021 1 commit
-
-
Leszek Swirski authored
It's unfortunate that there is both a LocalIsolate template parameter, and an actual LocalIsolate class. Clean this up by renaming the template parameters to IsolateT Change-Id: Iecefc3eca5aeb7bbd21e78818b90f9e75cdff10f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2846880 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#74173}
-
- 06 Apr, 2021 1 commit
-
-
Shu-yu Guo authored
This is a reland of e28dadc2 The original failure was due to a stale Win32 bot. The reland failure was due to idempotent task deduplication returning the exact same failure. See crbug/1196064 Original change's description: > [ptr-cage] Rename IsolateRoot to PtrComprCageBase > > Currently, IsolateRoot is both the address of the Isolate root and the > base address of the pointer compression reservation. This CL teases the > two uses apart by renaming IsolateRoot to PtrComprCageBase. > > - In addition to V8_COMPRESS_POINTERS, add a > V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE (vs SHARED_CAGE). > > - Rename GetIsolate* helpers to GetPtrComprCageBase. When > V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE is true, the helpers remain as > aliases to GetPtrComprCageBase. > > - Rename kPtrComprIsolateRootAlignment to kPtrComprCageBaseAlignment. > > Bug: v8:11460 > Change-Id: I1d715f678ce9a0b5731895612ca14f56579b1c48 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2783672 > Commit-Queue: Shu-yu Guo <syg@chromium.org> > Auto-Submit: Shu-yu Guo <syg@chromium.org> > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73790} Bug: v8:11460 No-Try: true Tbr: ishell@chromium.org Tbr: rmcilroy@chromium.org Change-Id: Id69311cf3267ebe1297fff159de0be48b15b65a3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2806546Reviewed-by:
Shu-yu Guo <syg@chromium.org> Commit-Queue: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/master@{#73795}
-
- 05 Apr, 2021 4 commits
-
-
Shu-yu Guo authored
This reverts commit 15c78b45. Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Win32/32277/overview Original change's description: > Reland "[ptr-cage] Rename IsolateRoot to PtrComprCageBase" > > This is a reland of e28dadc2 > > Relanding to see if Win32 rel failures from > https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Win32/32275/overview > were infra flakes. Could not repro on try bots. > > Original change's description: > > [ptr-cage] Rename IsolateRoot to PtrComprCageBase > > > > Currently, IsolateRoot is both the address of the Isolate root and the > > base address of the pointer compression reservation. This CL teases the > > two uses apart by renaming IsolateRoot to PtrComprCageBase. > > > > - In addition to V8_COMPRESS_POINTERS, add a > > V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE (vs SHARED_CAGE). > > > > - Rename GetIsolate* helpers to GetPtrComprCageBase. When > > V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE is true, the helpers remain as > > aliases to GetPtrComprCageBase. > > > > - Rename kPtrComprIsolateRootAlignment to kPtrComprCageBaseAlignment. > > > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2783672 > > Reviewed-by: Igor Sheludko <ishell@chromium.org> > > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > > No-Try: true > Bug: v8:11460 > Tbr: ishell@chromium.org > Tbr: rmcilroy@chromium.org > Change-Id: I0a8c3a48999d6737c8c64d2c2703607f14f3fdd0 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2806169 > Reviewed-by: Shu-yu Guo <syg@chromium.org> > Commit-Queue: Shu-yu Guo <syg@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73792} Bug: v8:11460 Change-Id: Ifee92d622c43a91c15f45ef94ff739237bd2024b No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2806545 Auto-Submit: Shu-yu Guo <syg@chromium.org> Reviewed-by:
Shu-yu Guo <syg@chromium.org> Commit-Queue: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/master@{#73793}
-
Shu-yu Guo authored
This is a reland of e28dadc2 Relanding to see if Win32 rel failures from https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Win32/32275/overview were infra flakes. Could not repro on try bots. Original change's description: > [ptr-cage] Rename IsolateRoot to PtrComprCageBase > > Currently, IsolateRoot is both the address of the Isolate root and the > base address of the pointer compression reservation. This CL teases the > two uses apart by renaming IsolateRoot to PtrComprCageBase. > > - In addition to V8_COMPRESS_POINTERS, add a > V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE (vs SHARED_CAGE). > > - Rename GetIsolate* helpers to GetPtrComprCageBase. When > V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE is true, the helpers remain as > aliases to GetPtrComprCageBase. > > - Rename kPtrComprIsolateRootAlignment to kPtrComprCageBaseAlignment. > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2783672 > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> No-Try: true Bug: v8:11460 Tbr: ishell@chromium.org Tbr: rmcilroy@chromium.org Change-Id: I0a8c3a48999d6737c8c64d2c2703607f14f3fdd0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2806169Reviewed-by:
Shu-yu Guo <syg@chromium.org> Commit-Queue: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/master@{#73792}
-
Francis McCabe authored
This reverts commit e28dadc2. Reason for revert: failed test262 tests;; see https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Win32/32275/steps?succeeded=true&debug=false Original change's description: > [ptr-cage] Rename IsolateRoot to PtrComprCageBase > > Currently, IsolateRoot is both the address of the Isolate root and the > base address of the pointer compression reservation. This CL teases the > two uses apart by renaming IsolateRoot to PtrComprCageBase. > > - In addition to V8_COMPRESS_POINTERS, add a > V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE (vs SHARED_CAGE). > > - Rename GetIsolate* helpers to GetPtrComprCageBase. When > V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE is true, the helpers remain as > aliases to GetPtrComprCageBase. > > - Rename kPtrComprIsolateRootAlignment to kPtrComprCageBaseAlignment. > > Bug: v8:11460 > Change-Id: I1d715f678ce9a0b5731895612ca14f56579b1c48 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2783672 > Commit-Queue: Shu-yu Guo <syg@chromium.org> > Auto-Submit: Shu-yu Guo <syg@chromium.org> > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73790} Bug: v8:11460 Change-Id: I19d0e28194fcdb28e89f129a7694ca3fe29fa17a No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2806168 Auto-Submit: Francis McCabe <fgm@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#73791}
-
Shu-yu Guo authored
Currently, IsolateRoot is both the address of the Isolate root and the base address of the pointer compression reservation. This CL teases the two uses apart by renaming IsolateRoot to PtrComprCageBase. - In addition to V8_COMPRESS_POINTERS, add a V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE (vs SHARED_CAGE). - Rename GetIsolate* helpers to GetPtrComprCageBase. When V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE is true, the helpers remain as aliases to GetPtrComprCageBase. - Rename kPtrComprIsolateRootAlignment to kPtrComprCageBaseAlignment. Bug: v8:11460 Change-Id: I1d715f678ce9a0b5731895612ca14f56579b1c48 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2783672 Commit-Queue: Shu-yu Guo <syg@chromium.org> Auto-Submit: Shu-yu Guo <syg@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#73790}
-
- 01 Apr, 2021 1 commit
-
-
Leszek Swirski authored
This is a reland of e70cbb83 Moved the ConsString comparison logic out-of-line, both to make gcc happy, and to reduce the size of the fast-path in IsEqualToImpl. Original change's description: > [string] Fix non-SeqStrings in IsEqualTo > > Bug: chromium:1193903 > Change-Id: I80704dd3cba5754779432356b20bd3ea99630291 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2794426 > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Commit-Queue: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Auto-Submit: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73746} Bug: chromium:1193903 Change-Id: Iae6f078853438427e86d3ac68bcfed0712a85bf7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2797288 Auto-Submit: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#73763}
-
- 31 Mar, 2021 2 commits
-
-
Bill Budge authored
This reverts commit e70cbb83. Reason for revert: Breaks compile on gcc. https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20gcc/11148 Original change's description: > [string] Fix non-SeqStrings in IsEqualTo > > Bug: chromium:1193903 > Change-Id: I80704dd3cba5754779432356b20bd3ea99630291 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2794426 > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Commit-Queue: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Auto-Submit: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73746} Bug: chromium:1193903 Change-Id: If700cdc7cf8b50a9430d17489485769cb524efd5 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2797539 Auto-Submit: Bill Budge <bbudge@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#73749}
-
Leszek Swirski authored
Bug: chromium:1193903 Change-Id: I80704dd3cba5754779432356b20bd3ea99630291 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2794426 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#73746}
-
- 03 Mar, 2021 1 commit
-
-
Camillo Bruni authored
Handles are notorious for preventing compiler optimizations. We should avoid them for simple const functions. - Mark more API functions const - Mark more String functions const Bug: v8:11195, chromium:808503, v8:11263 Change-Id: I9940e85600bc7d19027039d807b3313e2dcccdc7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2575065Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#73159}
-
- 23 Feb, 2021 1 commit
-
-
Santiago Aboy Solanes authored
This is a reland of ed225df7 Reland changes: removed #if DEBUG from v8.h since it had compile errors in chromium + windows. Also wasn't needed anyway since the method it was calling was just a DCHECK. Original change's description: > [objects] Cache the ExternalString's data in its resource > > For external uncached strings (also called "Small External Strings") > with cacheable resources, we can cache its resource's data at the > string's creation time. This allows us to safely read the data from the > background as we wouldn't trigger a data() callback. > > For more information regarding the investigation and possible proposals > see > https://docs.google.com/document/d/101eAQqFpBPWFGNJicxtdlwYShJkTOUsEuxkVVeu5Hrk/edit?usp=sharing > > Bug: v8:7790, v8:11463 > Change-Id: I6164092b01a6ccb525a9516f476e066b35fb1f96 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2685177 > Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/master@{#72862} Bug: v8:7790 Bug: v8:11463 Change-Id: I7c8a54c814b92c8632fb0bcf5a33f57fec159443 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2710440Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#72956}
-
- 19 Feb, 2021 2 commits
-
-
Bill Budge authored
This reverts commit ed225df7. Reason for revert: Blocks the roll, causing compile failures in Chromium: https://ci.chromium.org/p/chromium/builders/try/win_chromium_compile_dbg_ng/800868? Original change's description: > [objects] Cache the ExternalString's data in its resource > > For external uncached strings (also called "Small External Strings") > with cacheable resources, we can cache its resource's data at the > string's creation time. This allows us to safely read the data from the > background as we wouldn't trigger a data() callback. > > For more information regarding the investigation and possible proposals > see > https://docs.google.com/document/d/101eAQqFpBPWFGNJicxtdlwYShJkTOUsEuxkVVeu5Hrk/edit?usp=sharing > > Bug: v8:7790, v8:11463 > Change-Id: I6164092b01a6ccb525a9516f476e066b35fb1f96 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2685177 > Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/master@{#72862} Bug: v8:7790 Bug: v8:11463 Change-Id: I1d14c2f9872d156d43d5d95c8a032a37ba9379cb No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2708824 Auto-Submit: Bill Budge <bbudge@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Bill Budge <bbudge@chromium.org> Reviewed-by:
Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#72880}
-
Santiago Aboy Solanes authored
For external uncached strings (also called "Small External Strings") with cacheable resources, we can cache its resource's data at the string's creation time. This allows us to safely read the data from the background as we wouldn't trigger a data() callback. For more information regarding the investigation and possible proposals see https://docs.google.com/document/d/101eAQqFpBPWFGNJicxtdlwYShJkTOUsEuxkVVeu5Hrk/edit?usp=sharing Bug: v8:7790, v8:11463 Change-Id: I6164092b01a6ccb525a9516f476e066b35fb1f96 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2685177 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#72862}
-
- 21 Jan, 2021 1 commit
-
-
Santiago Aboy Solanes authored
It acquires the string lock to avoid race conditions. It does so in a slow way (by getting the isolate from the string) to avoid piping the Isolate through. Bug: v8:7790, chromium:1166095 Change-Id: I8b769b4e96ee780314359d1d15d712012aade88a Fix: chromium:1166095 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2637861Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#72236}
-
- 15 Jan, 2021 1 commit
-
-
Santiago Aboy Solanes authored
This reverts commit 3a6f75ac. Reason for revert: performance regressions https://bugs.chromium.org/p/chromium/issues/detail?id=1163063 Original change's description: > [objects] Remove MakeExternal case for uncached internal strings > > Concurrently accessing internal external uncached strings is not > thread-safe. We are removing a case where we can make such a string > through MakeExternal. > > Bug: v8:7790 > Change-Id: I958062c15cf40ccc330600bb572de98620866e54 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565511 > Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71573} TBR=leszeks@chromium.org,solanes@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:7790 Change-Id: I5dcc734869c3c921eacd89426309141127a85f47 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2633547Reviewed-by:
Santiago Aboy Solanes <solanes@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#72123}
-
- 08 Jan, 2021 1 commit
-
-
Santiago Aboy Solanes authored
In order to avoid internal external uncached Strings, we can copy the String at the moment of internalizing if it is an external & uncached String. Bug: v8:7790 Change-Id: Ie7ed287c105a127b8b4c867aab1a808265a922b7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2613029 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#71977}
-
- 08 Dec, 2020 1 commit
-
-
Z Nguyen-Huu authored
This is follow-up of 289d25c1 Improve loop using Subslice, improve common-case check. Bug: v8:8996 Change-Id: I59ba14b87e1b034fd2d41c92a506e142550363ce Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2527608 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#71666}
-
- 07 Dec, 2020 1 commit
-
-
Yahan Lu authored
About https://chromium-review.googlesource.com/c/v8/v8/+/2557988 On https://chromium-review.googlesource.com/c/v8/v8/+/2557988/7/src/objects/string.h#476 It add a template, but not define it on https://chromium-review.googlesource.com/c/v8/v8/+/2557988/7/src/objects/string.h#576 It lead to build failed on g++ 10.0.1. https://bugs.chromium.org/p/v8/issues/detail?id=11228 Bug: v8:11228 Change-Id: I81103143a995cc5225a990672094adaa7a3a934d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2573643 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#71634}
-
- 02 Dec, 2020 1 commit
-
-
Santiago Aboy Solanes authored
Concurrently accessing internal external uncached strings is not thread-safe. We are removing a case where we can make such a string through MakeExternal. Bug: v8:7790 Change-Id: I958062c15cf40ccc330600bb572de98620866e54 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565511 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#71573}
-
- 26 Nov, 2020 1 commit
-
-
Leszek Swirski authored
Make the IsEqualTo equality type parameter a template parameter, and add an option to skip the length check for cases where the length is known (e.g. in string table key comparisons). Change-Id: I893ac880ec1e830a50ba6d8f58f375ed96d6e14e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2562247 Auto-Submit: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#71435}
-
- 25 Nov, 2020 1 commit
-
-
Leszek Swirski authored
Pass the Isolate/LocalIsolate through to StringTable matchers and WriteToFlat, so avoid having to get the Isolate via the String, and to avoid locking on the main thread entirely. This allows us to remove the String overload of the SharedStringAccessGuardIfNeeded constructor entirely, to avoid this anti-pattern in the future. Bug: chromium:1146972 Change-Id: I53bba126b105e1c9629d6e64d8bb574e62e3ad45 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2557988 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#71398}
-
- 24 Nov, 2020 1 commit
-
-
Leszek Swirski authored
Make String::IsEqualTo use a direct string shape dispatch and a direct call to CompareChars, rather than splitting the behaviour over IsOneByte/IsTwoByte/HasOneBytePrefix. Avoiding GetFlatContent will make this method easier to make efficient while staying string-access-lock safe. Also, redefines the sequential string table key's matcher in terms of this IsEqualTo method. Change-Id: Iab71246e12044ebaeff06f0dbc14d28b3482dcbe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2557979 Commit-Queue: Igor Sheludko <ishell@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#71378}
-
- 23 Nov, 2020 1 commit
-
-
Santiago Aboy Solanes authored
If we have a regular isolate (or none at all), we can skip acquiring the lock check and DCHECK that we are calling from the main thread. If we have a LocalIsolate, we acquire the string lock if needed. Bug: v8:7790 Change-Id: Ie3562e8172a3e3eca8d194e8652cb881f765cdb8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2551102 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#71340}
-
- 20 Nov, 2020 1 commit
-
-
Leszek Swirski authored
Because of LocalHeap safepoints, our existing assert scopes don't necessarily maintain the same guarantees as desired. In particular, DisallowHeapAllocation no longer guarantees that objects don't move. This patch transitions DisallowHeapAllocation to DisallowGarbageCollection, to ensure that code using this scope is also protected against safepoints. Change-Id: I0411425884f6849982611205fb17bb072881c722 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2540547 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#71319}
-
- 16 Nov, 2020 1 commit
-
-
Leszek Swirski authored
Add a requirement to String::GetChars that we either have a string access lock, or a string access lock is not needed. This prevents us from reading strings during internalization that may be in the middle of being made external. To avoid taking the lock too often when known to be unnecessary (e.g. for strings that were only just created), there's now a static SharedStringAccessGuardIfNeeded::NotNeeded(). This is hopefully ugly enough that it's used sparingly. One fix required for this is to enter the Isolate when tearing down IsolateData in inspector tests -- this is so that the V8Inspector instance being torn down will see the current Isolate and be able to verify its thread id against the current thread. Bug: chromium:1011762, chromium:1148680 Change-Id: Ic5d29c1b066ebae5a351c7b4bb116b9b1bf61889 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2536465 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#71197}
-
- 09 Nov, 2020 1 commit
-
-
Zhi An Ng authored
Bug: v8:11074 Change-Id: I1cbe60d9e9adc7f7836aceda6cb864f2245c7a45 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2525545Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#71031}
-
- 03 Nov, 2020 1 commit
-
-
Santiago Aboy Solanes authored
String::FlatContent and FlatStringReader are ways of reading a flat String. Both of them provide a speedy interface to read a String since they bypass the dynamic dispatch of String::Get. For this very same reason, they are not safe to be used from background threads. Bug: v8:7790 Change-Id: I919ae5e3862df81ff3ebb5131144ff5961197b35 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2509596 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#70945}
-
- 28 Oct, 2020 2 commits
-
-
Tobias Tebbi authored
This CL splits the class definitions per .tq file, to realize the following relationship: A class defined in src/objects/foo.tq has a C++ definition in src/objects/foo.h. Torque then generates: - torque-generated/src/objects/foo-tq.inc An include file (no proper header) to be included in src/objects/foo.h containing the Torque-generated C++ class definition. - torque-generated/src/objects/foo-tq-inl.inc An include file (no proper header) to be included in src/objects/foo-inl.h containing inline function definitions. - torque-generated/src/objects/foo-tq.cc A source file including src/objects/foo-inl.h that contains non-inline function definitions. Advantages of this approach: - Avoid big monolithic headers and preserve the work that went into splitting objects.h - Moving a definition to Torque keeps everything in the same place from a C++ viewpoint, including a fully Torque-generated C++ class definition. - The Torque-generated include files do not need to be independent headers, necessary includes or forward declarations can just be added to the headers that include them. Drive-by changes: A bunch of definitions and files had to be moved or created to realize a consistent 1:1 relationship between .tq files and C++ headers. Bug: v8:7793 TBR: hpayer@chromium.org Change-Id: I239a89a16d0bc856a8669d7c92aeafe24a7c7663 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2470571 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/master@{#70853}
-
Santiago Aboy Solanes authored
This simplifies the logic since we can guarantee to have a Handle<String>. The removed constructor was only used in tests. Change-Id: I13519e474fe92892e9e8a39802d84cfab2c5b5ed Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2505711 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#70849}
-
- 29 Sep, 2020 1 commit
-
-
Samuel Groß authored
This change moves external pointers into a separate table and turns external pointers in heap objects into indices into that table. This CL implements one of two possible ownership models for the table entries. With this one, every heap object owns its table entries, and they are allocated when the owning object is allocated. As such, setting external pointer fields does not require allocation of table entries. On the other hand, table indices cannot be shared between multiple objects. This CL does not yet implement freeing of external pointer table entires. This will later happen by a table garbage collector. Bug: v8:10391 Change-Id: I4d37785295c25a7d1dcbc9871dd5887b9d788a4f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2235700Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Samuel Groß <saelo@google.com> Cr-Commit-Position: refs/heads/master@{#70204}
-
- 14 Aug, 2020 1 commit
-
-
Leszek Swirski authored
This patch introduces a new LocalIsolate and LocalFactory, which use LocalHeap and replace OffThreadIsolate and OffThreadFactory. This allows us to remove those classes, as well as the related OffThreadSpace, OffThreadLargeObjectSpace, OffThreadHeap, and OffThreadTransferHandle. OffThreadLogger becomes LocalLogger. LocalHeap behaves more like Heap than OffThreadHeap did, so this allows us to additionally remove the concept of "Finish" and "Publish" that the OffThreadIsolate had, and allows us to internalize strings directly with the newly-concurrent string table (where the implementation can now move to FactoryBase). This patch also removes the off-thread support from the deserializer entirely, as well as removing the LocalIsolateWrapper which allowed run-time distinction between Isolate and OffThreadIsolate. LocalHeap doesn't support the reservation model used by the deserializer, and we will likely move the deserializer to use LocalIsolate unconditionally once we figure out the details of how to do this. Bug: chromium:1011762 Change-Id: I1a1a0a72952b19a8a4c167c11a863c153a1252fc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2315990 Commit-Queue: Andreas Haas <ahaas@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#69397}
-
- 03 Jun, 2020 1 commit
-
-
Jakob Gruber authored
This brings %DebugPrint(string) closer to %DebugPrint(object) by also including the pointer, object kind, and RO/old space. Especially the pointer can be useful while debugging. One could consider going even further end printing full details of the string object, e.g. first and second pointers for cons strings. Before: $ out/debug/d8 --allow-natives-syntax -e '%DebugPrint("abc");' DebugPrint: #abc 0x263f080402cd: [Map] in ReadOnlySpace [...] After: $ out/debug/d8 --allow-natives-syntax -e '%DebugPrint("abc");' DebugPrint: 0xa830824ffe1: [String] in OldSpace: #abc 0xa83080402cd: [Map] in ReadOnlySpace [...] Drive-by: Document string printing functions. Drive-by: Use PrintUC16 in spots that don't want a full debug print. Bug: v8:10581 Change-Id: Ided59047b9c3edc1830ce7721376dddfd24fad1d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2228509Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#68136}
-
- 02 Jun, 2020 1 commit
-
-
Jakob Gruber authored
This unifies functionality between release-mode ShortPrint and debug-mode Print: - Prefixes and suffixes are now consistent. 'u' for two-byte, '#' for internalized, 'c' for cons, '>' for thin. - Logic was simplified and is now based on 3 functions: PrefixForDebugPrint, PrintUC16, SuffixForDebugPrint. - %DebugPrint no longer interprets strings as 'code markers'. - The ancient and unused use_verbose_printer flag was removed. Bug: v8:10581 Change-Id: Iebc6a746a2683f9f5a8ef60579836e7f66a188fa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2224868Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#68103}
-
- 12 May, 2020 1 commit
-
-
Jakob Gruber authored
Prior to this CL we still implemented a HasProperty-GetProperty sequence when accessing named captures in GetSubstitution. This was briefly part of the spec (we also threw an exception when the property was not present), but since late 2017 the GetProperty call has been unconditional. See https://tc39.es/ecma262/#sec-getsubstitution. Bug: v8:10513 Change-Id: Id82c06958b0b0feffc6eede580b99ab8676a0dae Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2195821 Auto-Submit: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#67733}
-
- 06 May, 2020 1 commit
-
-
Leszek Swirski authored
Bug: v8:10391 Change-Id: I4e86394c53d02eab797c2daad2ccfde6acb83bf0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2151350 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/master@{#67619}
-