- 01 Sep, 2022 27 commits
-
-
Leon Bettscheider authored
It is possible for IncrementalMarkingJob to be scheduled while MajorMC is running, but it only gets to run after MajorMC finished. If concurrent MinorMC is run in the meantime, RunInternal should not invoke Step, which is currently only supported for MajorMC. This CL adds a bailout for this case. Bug: v8:13012 Change-Id: I3012cac3de5195a9f1b85f1ac18b02cef67b004b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3867516 Commit-Queue: Leon Bettscheider <bettscheider@google.com> Reviewed-by: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/main@{#82903}
-
Tobias Tebbi authored
Bug: v8:13247 Change-Id: Ia1e82ef106914481e20076ac1ada9ba79e23c5a2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3865547Reviewed-by: Patrick Thier <pthier@chromium.org> Auto-Submit: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Patrick Thier <pthier@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/main@{#82902}
-
Simon Zünd authored
This is a reland of commit 3297ccca This is a straight-up reland of the original CL. The failing test was flaky and removed with https://crrev.com/c/3868727. We replaced the test with a proper DevTools e2e test: https://crrev.com/c/3867522 Original change's description: > [debug] Immediately step-in for 'stack check triggered' debug breaks > > This CL changes debug breaks that are triggered via interrupts (i.e. > via stack check). One client of this behavior is the `Debugger.pause` > CDP method. > > The problem is that when we pause so early, the JSFunction didn't have > time yet to create and push it's context. This requires special > handling in the ScopeIterator and makes an upcoming change unnecessary > complex. > > Another (minor) problem is that local debug-evaluate can't change > context-allocated local variables (see changed regression bug). Since > the context is not yet created and pushed, variables are written to > the DebugEvaluateContext that goes away after the evaluation. > > The solution is to mirror what `BreakOnNextFunction` does. Instead > of staying paused in the middle of the function entry, we trigger > a "step in" and pause at the first valid breakable position instead. > This ensures that the function context is already created and pushed. > > Note that we do this only in case for JSFunctions. In all other cases > we keep the existing behavior and stay paused in the entry. > > R=jgruber@chromium.org > > Fixed: chromium:1246907 > Change-Id: I0cd8ae6e049a3b55bdd44858e769682a1ca47064 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3854501 > Reviewed-by: Jakob Linke <jgruber@chromium.org> > Commit-Queue: Simon Zünd <szuend@chromium.org> > Cr-Commit-Position: refs/heads/main@{#82817} Change-Id: I1938ccb5979fd80dff530b2ffe3f18714b7eff3f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3867727 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Simon Zünd <szuend@chromium.org> Reviewed-by: Jakob Linke <jgruber@chromium.org> Cr-Commit-Position: refs/heads/main@{#82901}
-
Marja Hölttä authored
Bug: v8:13091,v8:13253 Change-Id: I9a40a937e2774a62e607d792256fdd34e8a634f6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3867735 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#82900}
-
Leszek Swirski authored
Add a mechanism similar to the optimizing compile dispatcher, for tests to be able to wait for Maglev compilation to finish, and to force finalization. Bug: v8:7700 Change-Id: I0ef542001fe9f6622b1231eb9406130ad81c8f6e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3865551 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Jakob Linke <jgruber@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#82899}
-
Tobias Tebbi authored
Bug: v8:13247 Change-Id: I8fd1fe179accc0ca37d32b737a5cfac2a736e1a2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3865553 Auto-Submit: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/main@{#82898}
-
Camillo authored
New Flags added: --log-source-code --log-source-position --log-feedback-vector With the above flags we can choose between detailed or lightweight logging. Drive-by-fix: - Use std::isprint - Add AppendRawString to avoid vprintf formatting for raw strings Change-Id: I3e9eda8473153de9620d24617c5a5e12e2e3bd56 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3863469 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Jakob Linke <jgruber@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#82897}
-
Igor Sheludko authored
... which works for stale pointers. The default == operator contains a DCHECK guarding against Code vs. non-Code object comparisons and thus it can't be used for stale pointer. Bug: v8:13252, v8:11880 Change-Id: Iaf80d7d1039515fee0d4d294f1fc4c6689cd8d5c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3867734 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Auto-Submit: Igor Sheludko <ishell@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#82896}
-
Leon Bettscheider authored
This CL skips the MarkingFromInternalFields write barrier when MinorMC concurrent marking is active, because we do not run Oilpan young GCs yet. Bug: v8:13012 Change-Id: Ib73dea8357be6d135290009258b5d172477a633b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3865464Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Leon Bettscheider <bettscheider@google.com> Cr-Commit-Position: refs/heads/main@{#82895}
-
Jakob Linke authored
Bug: v8:7700 Change-Id: I784d28b8ee043a4fa2478dbaaf7412a0708b811c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3867732Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Jakob Linke <jgruber@chromium.org> Auto-Submit: Jakob Linke <jgruber@chromium.org> Cr-Commit-Position: refs/heads/main@{#82894}
-
Dominik Inführ authored
This is a reland of commit ddafb7a3 CL is relanded without changes. https://crrev.com/c/3865965 and https://crrev.com/c/3865967 fixed the failing DCHECKs that caused this CL to be reverted. Original change's description: > [heap] Verify client heaps during shared GC > > With --verify-heap verify all client heaps before and after a shared > GC. This ensures that the OLD_TO_SHARED remembered set is properly > filled for each client isolate. > > Bug: v8:11708 > Change-Id: I1506a419c7a91c5baa87ce251da9861d8ad9e066 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3857559 > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > Cr-Commit-Position: refs/heads/main@{#82829} Bug: v8:11708 Change-Id: I38bd6724807fee36bc47d70b0d83156b81a2b4fd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3865968 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/main@{#82893}
-
Jakob Linke authored
Bug: v8:7700 Change-Id: Id417c068ea6df04c43823f32b60531d7588dcd1f Fixed: chromium:1358655 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3865552Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Jakob Linke <jgruber@chromium.org> Commit-Queue: Jakob Linke <jgruber@chromium.org> Cr-Commit-Position: refs/heads/main@{#82892}
-
Leon Bettscheider authored
Currently MinorMC does not suport incremental marking but uses the IncrementalMarking class to bootstrap concurrent marking. IncrementalMarkingJob::ScheduleTask is called from multiple call sites which assume major incremental marking. This CL adds a bailout to ScheduleTask on IsMajorMarking()==false to avoid erreoneously doing incremental steps while in MinorMC mode. Bug: v8:13012 Change-Id: I57803a8f258697478a9696716063c8c2cae1ae30 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3865147Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Leon Bettscheider <bettscheider@google.com> Cr-Commit-Position: refs/heads/main@{#82891}
-
Leon Bettscheider authored
This CL removes two DCHECKs which no longer hold with minor concurrent marking. Bug: v8:13012 Change-Id: I6f24284f0955c57deeb2fa2c300623d9aedfdd3c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3865463Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Leon Bettscheider <bettscheider@google.com> Cr-Commit-Position: refs/heads/main@{#82890}
-
Ting Chou authored
R=yahan@iscas.ac.cn Bug: v8:13191 Change-Id: I8c7ccb90c4e8a5b8ca5d88fc11c99fbe876621bc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3831142Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Yahan Lu <yahan@iscas.ac.cn> Commit-Queue: Yahan Lu <yahan@iscas.ac.cn> Cr-Commit-Position: refs/heads/main@{#82889}
-
Camillo authored
Bug: v8:11263 Change-Id: Ia53518d52f906c96afafc084af99679bd64b46fa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3866177 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#82888}
-
jiepan authored
Some wasm simd unit tests are not guarded by V8_ENABLE_WEBASSEMBLY, it will cause test failure on no-wasm build. Change-Id: Ib08e133f979e492ca620191d799f641bdb0f60bd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3866706Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Jie Pan <jie.pan@intel.com> Cr-Commit-Position: refs/heads/main@{#82887}
-
Jakob Linke authored
We've previously reset profiler ticks on ML finalization to avoid unexpected early tierups to TF. This CL additionally avoid early TF tierup through the `small function` reason by disabling small-function optimization. Bug: v8:7700 Change-Id: I57ba294af0d1d189f76c2cb1ffc31af0837b1e42 Fixed: v8:13242 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3865550 Auto-Submit: Jakob Linke <jgruber@chromium.org> Reviewed-by: Victor Gomes <victorgomes@chromium.org> Commit-Queue: Victor Gomes <victorgomes@chromium.org> Commit-Queue: Jakob Linke <jgruber@chromium.org> Cr-Commit-Position: refs/heads/main@{#82886}
-
Leszek Swirski authored
Emit an unconditional deopt if a BinOp/CompareOp has insufficient feedback, rather than emitting a generic op. Bug: v8:7700 Change-Id: I3e47d82716a8fe7832cc179e949d689b9aef14e2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3867731 Commit-Queue: Victor Gomes <victorgomes@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Victor Gomes <victorgomes@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#82885}
-
Igor Sheludko authored
... for PC-relative builtin calls/jumps and explicitly use near_call / near_jump instructions. This is a step towards 1) removing the RelocInfo::RUNTIME_ENTRY which was temporarily used for this purpose, 2) being able to remap embedded builtins into the code range multiple times. Bug: v8:11527 Change-Id: Ife26c8bbc524be0b07f333776716f22bd4bd36aa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3866190 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Jakob Linke <jgruber@chromium.org> Cr-Commit-Position: refs/heads/main@{#82884}
-
Liu Yu authored
Port commit ed90ea5c Bug: v8:7700 Change-Id: I8cec07b2fe971287895c89b91436d0f1223cf89a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3868527 Auto-Submit: Liu Yu <liuyu@loongson.cn> Reviewed-by: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn> Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn> Cr-Commit-Position: refs/heads/main@{#82883}
-
Jakob Linke authored
.. and update old entries: - Remove --no-untrusted-code-mitigations (flag no longer exists) - Make --stress-concurrent-inlining-attach-code less likely since it mostly overlaps with --stress-concurrent-inlining and there haven't been many reports in this are lately. Bug: v8:7700 Change-Id: Ic88ea74ca88a7c14edfc39bc0a55b846bb01e465 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3867506Reviewed-by: Victor Gomes <victorgomes@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Jakob Linke <jgruber@chromium.org> Cr-Commit-Position: refs/heads/main@{#82882}
-
Jaroslav Sevcik authored
Introduce an inspector client interface method for running an "instrumentation pause" (when an instrumentation breakpoint is hit). This allows the client to run a more restrictive version of message pumping on instrumentation breakpoint hits. If not overriden, the instrumentation pause message loop handler will run the normal message loop. Such an implementation preserves the behavior for existing clients. Bug: chromium:1354043 Change-Id: Id33bb10503d73b59b24e63fd9d24631611f68dee Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3863256Reviewed-by: Kim-Anh Tran <kimanh@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/main@{#82881}
-
Manos Koukoutos authored
Changes: - Limit how often a function can be inlined, mostly to constrain recursive-function inlining. - Move call count limiting earlier (to WasmInliner::ReduceCall), and guard it behind the flags that are required to generate call counts. Bug: v8:12166 Change-Id: Ie3c140daff110e08fe7103ee79393ea27ae49bb2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3865918Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#82880}
-
v8-ci-autoroll-builder authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/d74c524..252971c Rolling v8/buildtools: https://chromium.googlesource.com/chromium/src/buildtools/+log/69f262d..c24a0d5 Rolling v8/buildtools/linux64: git_revision:5705e56a0e5856621415cfdf444432554e72c9c9..git_revision:00b741b1568d56cf4e117dcb9f70cd42653b4c78 Rolling v8/buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx/+log/e5670a0..42e738f Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/6552f9b..638d30e Rolling v8/third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools/+log/b0fb8d5..5084800 Rolling v8/third_party/fuchsia-sdk/sdk: version:9.20220830.2.1..version:9.20220831.2.1 R=v8-waterfall-sheriff@grotations.appspotmail.com,mtv-sf-v8-sheriff@grotations.appspotmail.com Change-Id: Ic2b31700344a5e433521362408949fa382ae0d2c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3865743 Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> Bot-Commit: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> Cr-Commit-Position: refs/heads/main@{#82879}
-
Lu Yahan authored
Port commit ed90ea5c Port commit ed90ea5c Port commit ab5db111d0329cb0954c110a8cc67b9793b2bb8f Change-Id: I7981793d7f38d3769a1c9fdca23b7607d7772089 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3867138 Auto-Submit: Yahan Lu <yahan@iscas.ac.cn> Commit-Queue: ji qiu <qiuji@iscas.ac.cn> Reviewed-by: ji qiu <qiuji@iscas.ac.cn> Cr-Commit-Position: refs/heads/main@{#82878}
-
Liu Yu authored
Port commit af62c4f0 Bug: chromium:1246907, chromium:1357554 Change-Id: Ia54fd08719827a2d58ff81ef7e243a3a365ffb55 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3867135 Auto-Submit: Liu Yu <liuyu@loongson.cn> Reviewed-by: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn> Commit-Queue: Liu Yu <liuyu@loongson.cn> Cr-Commit-Position: refs/heads/main@{#82877}
-
- 31 Aug, 2022 13 commits
-
-
Shu-yu Guo authored
This CL removes dependence on the ForegroundTaskRunner in the shared isolate because the shared isolate doesn't have one associated with it. There are 3 places: 1. The memory reducer is no longer allocated on the shared isolate. 2. The WasmEngine is no longer initialized for the shared isolate, which never executes user code. 3. Ability to post non-nestable tasks is no longer required on the shared isolate. This is required for FinalizationRegistry, and the shared isolate never executes user code. Bug: v8:11708 Change-Id: I4b0cf2c8dc8686ccc7b7d24e6c9e12eb4b9d03d6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3864275 Commit-Queue: Shu-yu Guo <syg@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#82876}
-
Deepti Gandluri authored
Change-Id: Ife29e300d51058a19e4b568cb8d335f26a7556e2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3863806 Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#82875}
-
Frank Tang authored
We fixed the test earlier but forgot to remove the SKIP. Bug: v8:11544 Change-Id: I6594dc2ad07fe88fdc2ed9bfaa0f0715bc14930b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3867132Reviewed-by: Shu-yu Guo <syg@chromium.org> Commit-Queue: Frank Tang <ftang@chromium.org> Cr-Commit-Position: refs/heads/main@{#82874}
-
Dominik Inführ authored
Add test for ensuring that page promotion records old-to-shared slots during a full GC. Bug: v8:11708 Change-Id: Id2eb77a623c84586cad61d72bb80479ef69e3b29 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3866176 Auto-Submit: Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/main@{#82873}
-
Marja Hölttä authored
If we see a default ctor, walk up the constructors until we find a non- default one. Default ctors can only be skipped if there are no class fields / private brands. This CL implements the Ignition parts; Sparkplug, Maglev and TF will be implemented as follow ups. (This is fine, since this feature is behind a flag.) Bug: v8:13091 Change-Id: Ie8ca8aedb01bd4b13adf1063332a5cdf41ab358a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3804601Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/main@{#82872}
-
Matthias Liedtke authored
Bug: v8:7748 Change-Id: I4057a9288fe3d2dc0df308ce51be92e417572bd1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3865483Reviewed-by: Manos Koukoutos <manoskouk@chromium.org> Commit-Queue: Matthias Liedtke <mliedtke@chromium.org> Cr-Commit-Position: refs/heads/main@{#82871}
-
Shu-yu Guo authored
This CL has two changes: 1. Remove ValueDeserializer::Delegate::SupportsSharedValues. Only ValueSerializer::Delegate needs to report whether it supports serializing shared values. The ValueDeserializer::Delegate should DCHECK if it gets a shared object tag but it doesn't support it. This better mirrors what happens with SharedArrayBuffer transfers currently. 2. When attempting to serialize a shared object (shared struct, shared array, Atomics.Mutex, or Atomics.Condition) when !SupportsSharedValues(), throw instead of assert. This is for better ergonomics. Bug: v8:12547 Change-Id: I2bb66830393526578016813c4e3488859dd07073 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3866302 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Auto-Submit: Shu-yu Guo <syg@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/main@{#82870}
-
Patrick Thier authored
Rename BytecodeOperandFlag to BytecodeOperandFlag8. The methods in interpreter-assembler were missed in https://crrev.com/c/3857561. Change-Id: I09383531e4d16e6e428a56feb76192156211dc81 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3867515 Commit-Queue: Patrick Thier <pthier@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#82869}
-
Samuel Groß authored
When an entry is allocated from the freelist, is is not correct to `DCHECK(entry.IsFreelistEntry())` before the compare-and-swap succeeds: another thread may have allocated the same entry in the meantime, thereby turning it into a regular entry. However, in that case the CAS will fail and then entry allocation will be retried. Drive-by: factor out the common logic from AllocateAndInitializeEntry and AllocateEvacuationEntry into a new TryAllocateEntryFromFreelist. Bug: v8:13246 Change-Id: Idf16b67a2ca5ddeef16620a4d6f4a8a6c07d917b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3865864Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Auto-Submit: Samuel Groß <saelo@chromium.org> Cr-Commit-Position: refs/heads/main@{#82868}
-
Tobias Tebbi authored
Some optimizations need to know if an operation has multiple uses, for example to avoid extending live-ranges. However, maintaining full use-lists is expensive memory-wise and not really needed in this case, where we only need to distinguish between 1 or more uses. Therefore, we only count the number of uses. To save even more memory, we use the 1 byte currently left for alignment padding in the operation header and put the count there. With a single byte, we cannot count beyond 255, but for the use-case at hand, this is enough. When reaching 255, we no longer track the use-count. Nodes with so many uses should be rare and their use-count will usually not go down to 1 again, so this does not loose much precision. Another possible future use of these counts is reserving memory for full use-lists. This CL also removes mutable access to node inputs, as this would need to update use-counts and is not actually needed currently. Bug: v8:12783 Change-Id: Idd2035c6f8ced6317e3aec0c42eecd1383e86248 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3863266 Auto-Submit: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/main@{#82867}
-
Samuel Groß authored
Bug: v8:10391 Change-Id: I567f94800119a9afd3f684134a6f4885026f813e 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/+/3859347 Commit-Queue: Samuel Groß <saelo@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#82866}
-
Tobias Tebbi authored
Bug: v8:12783 Change-Id: I97f6a28bfef7c9aed679c84f33d60a71cf467718 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3859327Reviewed-by: Darius Mercadier <dmercadier@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/main@{#82865}
-
Jakob Linke authored
Bug: v8:7700 Change-Id: I7bdb64c5a8c73aefd19c972337d488de2103ad13 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3865320 Commit-Queue: Jakob Linke <jgruber@chromium.org> Reviewed-by: Victor Gomes <victorgomes@chromium.org> Auto-Submit: Jakob Linke <jgruber@chromium.org> Commit-Queue: Victor Gomes <victorgomes@chromium.org> Cr-Commit-Position: refs/heads/main@{#82864}
-