- 13 Jul, 2022 2 commits
-
-
Samuel Groß authored
Bug: v8:10391 Change-Id: I4c5c209454db316fe86f379f6b2e6dfc7ba7754e Cq-Include-Trybots: luci.v8.try:v8_linux64_heap_sandbox_dbg_ng,v8_linux_arm64_sim_heap_sandbox_dbg_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3757340Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Samuel Groß <saelo@chromium.org> Cr-Commit-Position: refs/heads/main@{#81703}
-
Anton Bikineev authored
The operator with raw pointer allows us to avoid Member decompression, which is more expensive than compression. It's also quite frequently called (e.g. in HeapHashSet::find()). The existing operator template <...> bool operator==(const Member<T1>&, const Member<T2>&); was not called for GCed* raw = ...; member == raw; because the compiler wouldn't deduce `T2` in `const Member<T2>` as `GCed` when the initializer expression `raw` is of different type (`GCed*`). Bug: chromium:1325007 Change-Id: Ie1ee12bad28081c66f4e08a146467fd7c040bb70 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3757344Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#81702}
-
- 12 Jul, 2022 1 commit
-
-
Milad Fa authored
This patch fixes machine detection on nodejs where the build pipeline may not use gn and as a result certain macros will not get set. More details can be found in this comment: https://github.com/nodejs/node-v8/issues/223#issuecomment-1180505313 Change-Id: I0cbfc736b28bc130acbdc2cf2e27bbf687be463c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3757944Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Milad Farazmand <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/main@{#81667}
-
- 11 Jul, 2022 3 commits
-
-
Anton Bikineev authored
With pointer compression enabled the compiler may not inline some Member functions on some platforms, because Member stores and loads become slightly more expensive. Inlining is however important with pointer compression - it allows to further optimize the code by eliminating the global load. Bug: chromium:1325007 Change-Id: Ia37d223e78853a8218e0b2732a3f08aa58929000 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3756141Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#81648}
-
Maksim Sadym authored
1. Add `toISOString` to `v8::Date`. 2. Switch serialization to `ISOString`. Bug: v8:13043 Change-Id: I8a852f4a4a46bb3b8e5d52ef3cdffde7a408b403 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3749203 Auto-Submit: Maksim Sadym <sadym@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#81647}
-
Samuel Groß authored
This CL does the following: - It enables (i.e. allocates and initializes) the per-Isolate ExternalPointerTable when the sandbox is enabled. - It refactors the list of external pointer tags to mark them as "sandboxed" or "unsandboxed". An unsandboxed external pointer has a null tag. - It changes V8_SANDBOXED_EXTERNAL_POINTERS to now essentially just enable sandboxing for all available tags. - It modifies all low-level external pointer accessors to perform the ExternalPointerLookup only if the tag is non-zero and otherwise treat the slot as containing a raw pointer. This now allows rolling out external pointer sandboxing incrementally (separately for each external pointer type), which will in turn allow for more precise performance measurements of the impact of the sandbox. Note: when an external pointer tag is now marked as sandboxed (and V8_SANDBOXED_EXTERNAL_POINTERS is not enabled), the underlying slots are still 64-bits in size. This simplifies the implementation as we would otherwise need to deal with variably-sized external pointer slots. Local benchmarking suggests that the benefits from 32-bit external pointer slots are insignificant on typical benchmarks, so this should be ok. Drive-by: rename kExternalPointerSize to kExternalPointerSlotSize to make it more clear what it refers to (the on-heap storage size). Also delete CodeStubAssembler::InitializeExternalPointerField as it is not currently used and the implementation is fairly inefficient. Bug: v8:10391 Change-Id: I7c38729c7e9048d737a1a8ced84749f5b1f7feab Cq-Include-Trybots: luci.v8.try:v8_linux64_heap_sandbox_dbg_ng,v8_linux_arm64_sim_heap_sandbox_dbg_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3736447Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Samuel Groß <saelo@chromium.org> Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/main@{#81636}
-
- 07 Jul, 2022 1 commit
-
-
Paul Semel authored
This adds support for a better error message when wasm code generation is not allowed. Chrome will use this new API here: https://chromium-review.googlesource.com/c/chromium/src/+/3738183. Bug: chromium:1255058 Change-Id: I8c9639c4fd08d1dff0a5a2fc6a8360f40a7e140e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3740721Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Paul Semel <paulsemel@chromium.org> Cr-Commit-Position: refs/heads/main@{#81573}
-
- 05 Jul, 2022 3 commits
-
-
snek authored
Load current Memory start/size off of the wasm instance when entering fast calls, so they can use that info for whatever they need to do. Fast calls from JS set the memory to null, and the memory does not need to be piped from wasm to slow callbacks as wasm always calls the fast function. Change-Id: Ibfa33cdd7dba85300f95cbdacc9a56b3f7181663 Bug: chromium:1052746 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3719005Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: snek <snek@chromium.org> Reviewed-by:
Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#81538}
-
Maya Lekova authored
This is a reland of commit 84e078c6. It fixes an undefined behaviour and guards against NaNs in d8-test.cc. Original change's description: > [fastcall] Support EnforceRange annotation > > This CL implements checks in case EnforceRange is requested for a > given parameter by using TryTruncate* operators. It implements 2 such > truncations on x64 and arm64 - TryTruncateFloat64ToInt32 and > TryTruncateFloat64ToUint32. > > Bug: chromium:1052746 > Change-Id: I32f34d9dc1265af568cc576663620a8f7f8245f6 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3721618 > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Commit-Queue: Maya Lekova <mslekova@chromium.org> > Cr-Commit-Position: refs/heads/main@{#81512} Bug: chromium:1052746, chromium:1341851, chromium:1341891 Change-Id: I21e0e452c92cc93f8b06985a335f409855be0546 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3743518Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/main@{#81529}
-
Manos Koukoutos authored
This reverts commit 84e078c6. Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20UBSan/22000/overview Original change's description: > [fastcall] Support EnforceRange annotation > > This CL implements checks in case EnforceRange is requested for a > given parameter by using TryTruncate* operators. It implements 2 such > truncations on x64 and arm64 - TryTruncateFloat64ToInt32 and > TryTruncateFloat64ToUint32. > > Bug: chromium:1052746 > Change-Id: I32f34d9dc1265af568cc576663620a8f7f8245f6 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3721618 > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Commit-Queue: Maya Lekova <mslekova@chromium.org> > Cr-Commit-Position: refs/heads/main@{#81512} Bug: chromium:1052746 Change-Id: I2218681c7cb5d05dea6d8ac5347b19bc0070c1a6 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3743514 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Owners-Override: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#81513}
-
- 04 Jul, 2022 1 commit
-
-
Maya Lekova authored
This CL implements checks in case EnforceRange is requested for a given parameter by using TryTruncate* operators. It implements 2 such truncations on x64 and arm64 - TryTruncateFloat64ToInt32 and TryTruncateFloat64ToUint32. Bug: chromium:1052746 Change-Id: I32f34d9dc1265af568cc576663620a8f7f8245f6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3721618Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/main@{#81512}
-
- 29 Jun, 2022 2 commits
-
-
Anton Bikineev authored
Shifting negative integrals is undefined behavior. The CL simply switches to uint64_t when decompressing, which anyway results in sign-extension (in standard terms, integral promotion must preserve the value and the sign of the source operand). The CL doesn't have any functional changes, the generated code is the same. It only fixes the ubsan report. Bug: chromium:1325007 Change-Id: I491a87b84d4e98b0225f76825dac2f9e85f168d1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3736442 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Auto-Submit: Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#81452}
-
Anton Bikineev authored
GCC doesn't have __attribute__((require_constant_initialization)). Use it only for clang. Bug: chromium:1325007 Change-Id: Ide5d428ed107d3244072774c0031c042ed0cee31 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3735125Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#81447}
-
- 28 Jun, 2022 3 commits
-
-
Anton Bikineev authored
Before this CL, the caged heap was lazily initialized upon the first call of HeapBase ctor. CagedHeap keeps a pointer to PageAllocator which was provided from cppgc::Platform through the HeapBase ctor. This was not generally safe: the platform is not enforced to be singleton. If it happens to die first, then CagedHeap will have a stale pointer. The CL fixes it simply by moving caged-heap initialization to cppgc::InitializeProcess(), which already requires a constantly living PageAllocator. Bug: chromium:1338030 Change-Id: Ifb70a2db233ef36a99c919db09bed9ff9f3708ac Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3732107 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#81422}
-
Andreas Haas authored
The class is dead code, and has not been used for years. I tried to deprecate the class first, but this caused build errors on GCC [1]. That's why this CL just deletes the class. Deleting the class is okay because this class was part of the original implementation of streaming compilation. There is only a single embedder who uses streaming compilation, which is Chrome, and Chrome switched to the new API already years ago. If there were other embedders that use this class, then this embedder would already have no working implementation of streaming compilation for years. R=adamk@chromium.org Bug: v8:12926 Change-Id: I3342167245822cf8ee52d9632cba236fb1b0646c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3714236 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/main@{#81421}
-
Seth Brenith authored
This change is only to get the API in place; the newly added functions don't yet do anything. Bug: v8:12808 Change-Id: Ic6a697d4f62c2b61761b2545dae6fcdf37653bbf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3681880Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/main@{#81418}
-
- 27 Jun, 2022 4 commits
-
-
Samuel Groß authored
The ExternalPointerTags are assumed to be compile-time constants in most cases, so turning them into template parameters enforces that. As decisions such as whether to use the per-isolate or the shared external pointer table are encoded into the tag values, forcing those to be compile-time constants guarantees that the compiler will be able to inline the correct logic when accessing an external pointer. With this, there are now two (high-level) ways of accessing external pointer fields from C++: the Read/WriteExternalPointerField methods which require the ExternalPointerTag to be a template parameter, and the ExternalPointerSlot class which takes the tag as an argument. The latter is for example used for snapshot deserialization and by the garbage collector (more generally, by the ObjectVisitor::VisitExternalPointer method), where the tag is not a compile-time constant. Finally, this CL also introduces a new ExternalPointerHandle type which represents the (opaque) on-heap representation of a reference to an entry in an ExternalPointerTable when sandboxing is enabled. Making this its own type makes the code a bit more readable. Bug: v8:10391 Change-Id: I867b8ce41d15d485f1dc66786f233c710c56afcb Cq-Include-Trybots: luci.v8.try:v8_linux64_heap_sandbox_dbg_ng,v8_linux_arm64_sim_heap_sandbox_dbg_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3720641Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Samuel Groß <saelo@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#81402}
-
Patrick Thier authored
- Change definition to macro-style to be able to assert that masks/tags are correct. - Split definition of shared/non-shared tags. - Use bit 62 (for now) to indicate tags are shared. Bug: v8:10391 Change-Id: Ia3ad6294cf5e6fd0c4dc2a328f976f295da762f5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3726009Reviewed-by:
Samuel Groß <saelo@chromium.org> Commit-Queue: Patrick Thier <pthier@chromium.org> Cr-Commit-Position: refs/heads/main@{#81400}
-
Anton Bikineev authored
Since v8config.h already defines the related logic for OS detection, it should be fine to move arch detection also there. The CL also makes Oilpan use one of those macros to avoid discrepancy between the compiler and custom macros (the discrepancy occurs for host tools, e.g. mksnapshot). Bug: chromium:1336222 Change-Id: Ibe7d9116d27c3e816f4778fd4c149d8142d0f7a9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3726208 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#81397}
-
Patrick Thier authored
The waiter queue node of JS Atomics.Mutex is now stored in the shared external pointer table. Bug: v8:12547 Change-Id: I2f4ce1c705d5e710b49872942702f60edf6c4043 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3721696Reviewed-by:
Shu-yu Guo <syg@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Patrick Thier <pthier@chromium.org> Cr-Commit-Position: refs/heads/main@{#81380}
-
- 23 Jun, 2022 1 commit
-
-
Patrick Thier authored
To be able to share external strings, we need to share the external pointer table in sandbox builds. To avoid branches at runtime all pointers for external strings are stored in the shared external pointer table. Bug: v8:12957 Change-Id: Iaa6be7839a2f5e50f80fd58c5b33fb9c6af61057 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3695263Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Patrick Thier <pthier@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Samuel Groß <saelo@chromium.org> Cr-Commit-Position: refs/heads/main@{#81324}
-
- 21 Jun, 2022 1 commit
-
-
Samuel Groß authored
Previously it was implemented in api.cc, therefore requiring an additional function call when accessing external pointer fields from embedder code with the sandbox enabled. Now ReadExternalPointerField can be inlined. Bug: v8:10391 Change-Id: Ia8cb2df148ac96f979fd3e22989b0ff6177abcec Cq-Include-Trybots: luci.v8.try:v8_linux64_heap_sandbox_dbg_ng,v8_linux_arm64_sim_heap_sandbox_dbg_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3714245Reviewed-by:
Igor Sheludko <ishell@chromium.org> Auto-Submit: Samuel Groß <saelo@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#81271}
-
- 20 Jun, 2022 1 commit
-
-
Igor Sheludko authored
... to avoid additional indirection on every access. Drive-by: given that AccessorInfo class now has a custom body visitor it's no longer necessary to encode flags field as Smi. Bug: v8:12949 Change-Id: I30eabee3cbc5ded2bf3f050dfe22208713a764bf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3701590Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#81237}
-
- 16 Jun, 2022 1 commit
-
-
Andreas Haas authored
This reverts commit be41754f. Reason for revert: This change breaks the GCC component build (e.g. https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20gcc%20-%20debug%20builder/1997/overview) Original change's description: > [wasm] Deprecate WasmModuleObjectBuilderSteraming > > This class is just dead code. > > Bug: v8:12926 > Change-Id: Ic780c0b1bf5b1e517aa919b820fad4ec083d9ef7 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3689581 > Reviewed-by: Adam Klein <adamk@chromium.org> > Commit-Queue: Andreas Haas <ahaas@chromium.org> > Cr-Commit-Position: refs/heads/main@{#81169} Bug: v8:12926 Change-Id: I8ef0dbd6ebaac0cbcc752338b7bfdf6049e6874c No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3707219 Owners-Override: Adam Klein <adamk@chromium.org> Auto-Submit: Andreas Haas <ahaas@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/main@{#81210}
-
- 15 Jun, 2022 5 commits
-
-
Anton Bikineev authored
The CL fixes PMF regressions that happend after increasing the AgeTable size. Bug: chromium:1336529 Change-Id: If1f099b43bfcb3a8c7dd4a1c229fcb08735eb744 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3707098Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#81180}
-
Samuel Groß authored
It should be V8_TARGET_OS_ANDROID instead of V8_OS_ANDROID. Bug: chromium:1218005 Change-Id: I4b92977c5d8b70ca5023e30a966508965ea9f0fe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3706618Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Samuel Groß <saelo@chromium.org> Cr-Commit-Position: refs/heads/main@{#81175}
-
Simon Zünd authored
This is a reland of commit dac61556 This is a straight-up reland with no changes, because: 1) The failure doesn't reproduce locally 2) The failing flaky test that triggered the revert is not related to the code modified by this CL and should (in theory) not be impacted. Original change's description: > [inspector] Allow Debugger.setScriptSource to edit top-most function > > This CL adds a new boolean flag on the Debugger.setScriptSource CDP > method that gets piped all the way through to the live-edit mechanism. > The new flag enables live-editing of the top-most function while > paused. > > The CL adds a couple of tests that cover the new core use cases for > this flag. > > R=jarin@chromium.org > > Bug: chromium:1334484 > Change-Id: I12fec591b2b6550d89748714620e629548e1b9c1 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3695354 > Reviewed-by: Kim-Anh Tran <kimanh@chromium.org> > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> > Commit-Queue: Simon Zünd <szuend@chromium.org> > Cr-Commit-Position: refs/heads/main@{#81127} Bug: chromium:1334484 Change-Id: I9a9bf7e03d81c86adb4819b9756dd9afcf6fa021 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3706398Reviewed-by:
Kim-Anh Tran <kimanh@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/main@{#81171}
-
Andreas Haas authored
This class is just dead code. Bug: v8:12926 Change-Id: Ic780c0b1bf5b1e517aa919b820fad4ec083d9ef7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3689581Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/main@{#81169}
-
Etienne Pierre-doray authored
CreateJob() is similar to PostJob() but doesn't schedule anything until Join() or Notify*() is called. This allows - CreateJob().Join() without too many worker. - Early 'empty' CreateJob() for initialization without causing spurious calls to GetMaxConcurrency() Bug: chromium:1287665 Change-Id: I8fd8b139392ad30218f0cf8f580b2d76f1078777 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3668842Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#81166}
-
- 14 Jun, 2022 5 commits
-
-
Anton Bikineev authored
This fixes an ODR violation: the macro V8_TARGET_ARCH_ARM64 was only visible when building V8, but not outside it. The CL implements a quick fix that relies on compiler-based macros (__aarch64__). The proper fix would be to make these target macros be part of the public config. Bug: chromium:1336222 Change-Id: I46ba6c1a3cd1ac4fcd3aced60ee112e6098eba6c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3705540 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Auto-Submit: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#81162}
-
Camillo authored
"Function:" and "LazyCompile:" are confusing by now and use up too much space.# Enter a description of the change. This also changes the function names visible when using linux-perf Change-Id: Ib2d4b7df39068c27b5b06db578fc550d2973ebb4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3693705 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#81161}
-
Andreas Haas authored
Asynchronous WebAssembly compilation returns the compilation result through resolving a result promise. So far the result promise was resolved through V8-internal APIs. This caused problems, because resolving promises requires correct handling of microtasks, and microtasks are controlled by the embedder, and not by V8. This CL adds an API to allow the embedder to resolve the result promise itself, and handle microtasks as necessary. The use of the new API is available in a full CL, without API dance: https://chromium-review.googlesource.com/c/v8/v8/+/3694975 R=cbruni@chromium.org Bug: v8:12953 Change-Id: Ie9a56041f2d3e0c46664f1938e995f1e2c22f981 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3695584Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#81141}
-
Tobias Tebbi authored
This reverts commit dac61556. Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20TSAN%20-%20no-concurrent-marking/9288/overview Original change's description: > [inspector] Allow Debugger.setScriptSource to edit top-most function > > This CL adds a new boolean flag on the Debugger.setScriptSource CDP > method that gets piped all the way through to the live-edit mechanism. > The new flag enables live-editing of the top-most function while > paused. > > The CL adds a couple of tests that cover the new core use cases for > this flag. > > R=jarin@chromium.org > > Bug: chromium:1334484 > Change-Id: I12fec591b2b6550d89748714620e629548e1b9c1 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3695354 > Reviewed-by: Kim-Anh Tran <kimanh@chromium.org> > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> > Commit-Queue: Simon Zünd <szuend@chromium.org> > Cr-Commit-Position: refs/heads/main@{#81127} Bug: chromium:1334484 Change-Id: I165269d6c1b001b516f10ae3716ffb57b675ab39 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3705378 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Owners-Override: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/main@{#81130}
-
Simon Zünd authored
This CL adds a new boolean flag on the Debugger.setScriptSource CDP method that gets piped all the way through to the live-edit mechanism. The new flag enables live-editing of the top-most function while paused. The CL adds a couple of tests that cover the new core use cases for this flag. R=jarin@chromium.org Bug: chromium:1334484 Change-Id: I12fec591b2b6550d89748714620e629548e1b9c1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3695354Reviewed-by:
Kim-Anh Tran <kimanh@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/main@{#81127}
-
- 13 Jun, 2022 5 commits
-
-
Anton Bikineev authored
The CL aims to improve write-barrier filtering and thereby reduce the current regressions. With 8MB AgeTable the card size becomes 512 bytes. The memory overhead of the 8MB AgeTable is 0.2%. Bug: chromium:1029379 Change-Id: I86f51361b9b9f0a1c22a1deef0b0540d1d9808bc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3700079Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Auto-Submit: Anton Bikineev <bikineev@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#81114}
-
Anton Bikineev authored
We don't need to reset the entire age table, but merely the pages that are known to contain young objects. This must improve memory use with generational GC enabled. The CL is a prerequisite for another CL that'll increase the size of the age-table. Bug: chromium:1029379 Change-Id: Ibb5b607af20380c3936b7396b3d9767f6f17c44b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3695268 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#81106}
-
Anton Bikineev authored
Currently, young generation assumes that all the on-heap pointers are compressed, which is currently not the case due to the backing-store pointers in Blink. Fixing collections to have Member<> is not easy, because the inlined collections may have the semantics that backing_pointer_ == inlined_buffer_; where the inlined_buffer_ can be off-heap (e.g. on stack). The CL introduces another type of barrier specifically for uncompressed pointers. The followup is to use that barrier from Blink. Bug: chromium:1029379 Change-Id: If0f519220658268dbdf915235c2e5afd7887dc0c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3695358Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#81105}
-
Clemens Backes authored
Already after enabling Liftoff, the name did not match the semantics any more. The callback was called after top-tier finished, not after initial compilation of the module finished. With dynamic tiering, the name is even less fitting. This CL renames the "OnModuleCompiled" callback in the API to "MoreFunctionsCanBeSerialized", which makes it more obvious what the API should be used for. It also internally renames all related typedefs and methods accordingly. One call of the callback in the streaming decoder was already wrong before this CL and is being removed. R=jkummerow@chromium.org, cbruni@chromium.org Bug: v8:12899 Change-Id: I95c0fc9e32442383e47e4370e31277cc065bf0fe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3687689Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/main@{#81093}
-
Clemens Backes authored
Deprecate the LegacyOOMErrorCallback in the 10.5 branch. Embedders are expected to switch to OOMErrorCallback. The deprecated LegacyOOMErrorCallback will then be removed in the 10.6 branch. R=mlippautz@chromium.org Bug: chromium:1323177 Change-Id: I83001bec760848ef39f0638ed5c5c9eaa7cdb6eb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3646014Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#81092}
-
- 10 Jun, 2022 1 commit
-
-
Igor Sheludko authored
... to avoid additional indirection on every access. Bug: v8:12949 Change-Id: I16840ac0517e86f1f70252153112ca3475527416 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3693707Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#81083}
-