- 25 Jun, 2021 1 commit
-
-
Patrick Thier authored
- Remove possibility to pass frame to %BaselineOsr (was unused and adds overhead to the normal path) - Arm back edges for OSR of all functions compiled in a batch - Refactoring Bug: v8:11790 Change-Id: Ifb1016935296a172914f99e8b2a1742f618a2be0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2982609Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Patrick Thier <pthier@chromium.org> Cr-Commit-Position: refs/heads/master@{#75384}
-
- 08 Jun, 2021 1 commit
-
-
Clemens Backes authored
Jobs were still being posted on the underlying default platform, which caused concurrent execution. By directly returning a {NewDefaultJobHandle} with a pointer to the {PredictablePlatform}, we force execution of all posted tasks via that platform. R=ahaas@chromium.org, cbruni@chromium.org Bug: v8:11848 Change-Id: Ie10519583341b427776ca428f85641e96f821367 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2944808Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#75002}
-
- 02 Jun, 2021 1 commit
-
-
Patrick Thier authored
Instead of compiling a function with baseline immediately when the interrupt budget is hit, we compile functions in batches to save some memory protection flips on code pages. This CL introduces batch compilation behind --baseline-batch-compilation (enabled on future) and adds a flag --baseline-batch-compilation-threshold to control the size of batches. Bug: v8:11790 Change-Id: I3efc360424a14e4b07c6570e48860509ae59e591 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2891656Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Patrick Thier <pthier@chromium.org> Cr-Commit-Position: refs/heads/master@{#74913}
-
- 28 Apr, 2021 1 commit
-
-
Shu-yu Guo authored
This CL factors out a CodeRange class out of MemoryAllocator. When V8_COMPRESS_POINTERS_IN_SHARED_CAGE is defined, there is a single CodeRange shared by all Isolates in the process. This also turns short builtins back for both configurations of pointer compression. When sharing a cage, there is a single copy of the re-embedded builtins. Since a shared pointer cage is still experimental, to avoid API churn this CodeRange's size is not configurable and is always the maximal size depending on the underlying platform. Change-Id: Ie94f52746f2c5450247a999cc6071e3914d4cf0c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2819206Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/master@{#74261}
-
- 13 Apr, 2021 1 commit
-
-
Patrick Thier authored
- Add %BaselineOsr to manually trigger OSR to Baseline. - Add flags to %GetOptimizationStatus to check if the topmost frame is an Interpreter/Baseline frame. - Add mjsunit test. Bug: v8:11420 Change-Id: Id80421ad97ee719a67ef299cc700da9c44f23bae Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2814567 Auto-Submit: Patrick Thier <pthier@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Patrick Thier <pthier@chromium.org> Cr-Commit-Position: refs/heads/master@{#73937}
-
- 23 Mar, 2021 1 commit
-
-
Jakob Kummerow authored
This is a reland of c4b44d5d Original change's description: > [bigint] Begin src/bigint refactoring > > This patch moves a first function, Compare, from src/objects/bigint.cc > to src/bigint/, to blaze the trail. More to follow! > > Bug: v8:11515 > Change-Id: Id7fa0b40ea852dbed1360f7ab439cb32d0c15762 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2737295 > Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73511} Bug: v8:11515 Change-Id: I50a81593a8acaa91161bb01a445bddbb8e6315c4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2773804Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#73610}
-
- 18 Mar, 2021 2 commits
-
-
Leszek Swirski authored
This reverts commit c4b44d5d. Reason for revert: UBSan failures (https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20UBSan/15621/overview) Original change's description: > [bigint] Begin src/bigint refactoring > > This patch moves a first function, Compare, from src/objects/bigint.cc > to src/bigint/, to blaze the trail. More to follow! > > Bug: v8:11515 > Change-Id: Id7fa0b40ea852dbed1360f7ab439cb32d0c15762 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2737295 > Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73511} Bug: v8:11515 Change-Id: I98f3e385c785297b1b71de07fc4835da2bbe816c No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2773048 Auto-Submit: Leszek Swirski <leszeks@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@{#73515}
-
Jakob Kummerow authored
This patch moves a first function, Compare, from src/objects/bigint.cc to src/bigint/, to blaze the trail. More to follow! Bug: v8:11515 Change-Id: Id7fa0b40ea852dbed1360f7ab439cb32d0c15762 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2737295Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#73511}
-
- 09 Mar, 2021 1 commit
-
-
pthier authored
This is a reland of a8b61ef5 The main reason for the revert was not related to this CL and was fixed with https://crrev.com/c/2739646 In addition debug output in d8.test.verifySourcePositions was removed due to TSAN complaints. Original change's description: > [sparkplug] Change bytecode offset mapping and introduce iterator. > > Previously, we recorded pairs of (bytecode offset, sparkplug pc) to > create a mapping of bytecode offset <-> sparkplug pc. > These pairs were only recorded after builtin/runtime calls. > In preparation for deoptimizing to Sparkplug, we need a more precise > mapping. > With this CL, we record positions for every bytecode. Instead of storing > a pair of (bytecode offset, sparkplug pc), we store only the pc, > calculating the bytecode offset from the index in the mapping table. > For easier use an iterator to access the mapping is introduced. > > Drive-by: Reduce sampling interval in cpu-profiler cctest to get rid of flaky failures. > > Bug: v8:11420, v8:11429 > Change-Id: I36a9171f43a574eb67880cbca6cf9ff7ab291e60 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2720189 > Reviewed-by: Victor Gomes <victorgomes@chromium.org> > Reviewed-by: Camillo Bruni <cbruni@chromium.org> > Auto-Submit: Patrick Thier <pthier@chromium.org> > Commit-Queue: Patrick Thier <pthier@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73186} > > Change-Id: I9ab4cb60da002ef130f8a21ad10ba69e2826a7b6 Change-Id: I9ab4cb60da002ef130f8a21ad10ba69e2826a7b6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2745335Reviewed-by:
Victor Gomes <victorgomes@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Patrick Thier <pthier@chromium.org> Cr-Commit-Position: refs/heads/master@{#73293}
-
- 04 Mar, 2021 2 commits
-
-
Maya Lekova authored
This reverts commit a8b61ef5. Reason for revert: Looks like it breaks GC stress bot - https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/35880/overview Original change's description: > [sparkplug] Change bytecode offset mapping and introduce iterator. > > Previously, we recorded pairs of (bytecode offset, sparkplug pc) to > create a mapping of bytecode offset <-> sparkplug pc. > These pairs were only recorded after builtin/runtime calls. > In preparation for deoptimizing to Sparkplug, we need a more precise > mapping. > With this CL, we record positions for every bytecode. Instead of storing > a pair of (bytecode offset, sparkplug pc), we store only the pc, > calculating the bytecode offset from the index in the mapping table. > For easier use an iterator to access the mapping is introduced. > > Drive-by: Reduce sampling interval in cpu-profiler cctest to get rid of > flaky failures. > > Bug: v8:11420, v8:11429 > Change-Id: I36a9171f43a574eb67880cbca6cf9ff7ab291e60 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2720189 > Reviewed-by: Victor Gomes <victorgomes@chromium.org> > Reviewed-by: Camillo Bruni <cbruni@chromium.org> > Auto-Submit: Patrick Thier <pthier@chromium.org> > Commit-Queue: Patrick Thier <pthier@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73186} Bug: v8:11420 Bug: v8:11429 Change-Id: Ie71e7ce234e7b9ab9a2ec99a983e9900f35baa44 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2735397 Auto-Submit: Maya Lekova <mslekova@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@{#73187}
-
pthier authored
Previously, we recorded pairs of (bytecode offset, sparkplug pc) to create a mapping of bytecode offset <-> sparkplug pc. These pairs were only recorded after builtin/runtime calls. In preparation for deoptimizing to Sparkplug, we need a more precise mapping. With this CL, we record positions for every bytecode. Instead of storing a pair of (bytecode offset, sparkplug pc), we store only the pc, calculating the bytecode offset from the index in the mapping table. For easier use an iterator to access the mapping is introduced. Drive-by: Reduce sampling interval in cpu-profiler cctest to get rid of flaky failures. Bug: v8:11420, v8:11429 Change-Id: I36a9171f43a574eb67880cbca6cf9ff7ab291e60 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2720189Reviewed-by:
Victor Gomes <victorgomes@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Auto-Submit: Patrick Thier <pthier@chromium.org> Commit-Queue: Patrick Thier <pthier@chromium.org> Cr-Commit-Position: refs/heads/master@{#73186}
-
- 02 Mar, 2021 1 commit
-
-
Sara Tang authored
Design doc: https://docs.google.com/document/d/1xkXj94iExFgLWc_OszTNyNGi523ARaKMWPZTeomhI4U This is the second (and hopefully final!) change list needed to integrate ETW into V8. In particular, we added stack-walking functionality for JIT-ted functions! Some notes on instrumentation: - The gist of getting stack-walking in ETW is we need to emit events with specific event IDs. These events get stitched into a pseudo-PDB that is recognizable by ETW. - Unfortunately, we cannot rely on the TraceLogging API from the first CL, as it does not support specifying event IDs. Instead, Bill Ticehurst wrote an API that peels back the TraceLogging API just enough so that we can specify event IDs. This API is the entirety of etw-metdata.h - We attach a CodeEventHandler that logs a stack-walking event whenever code movement is triggered. Bug: v8:11043 Change-Id: I1bf57c985b7375f045089027855b1c03878abb78 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2616221Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Sara Tang <sartang@microsoft.com> Cr-Commit-Position: refs/heads/master@{#73145}
-
- 24 Feb, 2021 1 commit
-
-
Georg Neis authored
It had essentially become a synonym for BytecodeArrayAccessor. This removes the BytecodeArrayIterator class and renames BytecodeArrayAccessor to BytecodeArrayIterator. Change-Id: I79cf8574f3c8804822f90c8f921c17ca7ab85f48 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2715523 Auto-Submit: Georg Neis <neis@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#73005}
-
- 22 Feb, 2021 1 commit
-
-
Toon Verwaest authored
Bug: v8:11429 Change-Id: Ib85f759a763640a55e5e6dcaf350b3ed1629bbf1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2712563 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#72910}
-
- 14 Dec, 2020 1 commit
-
-
Zhi An Ng authored
Drive-by cleanup: IWYU for macro-assembler-ia32.cc. IWYU added src/heap/basic-memory-chunk.h which failed a presubmit, so I updated src/DEPS to allow for including it. Bug: v8:11217,v8:7490 Change-Id: I63662bfb2b34e354e94f6052edfcb92f1341da58 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2583675Reviewed-by:
Bill Budge <bbudge@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#71729}
-
- 19 Nov, 2020 1 commit
-
-
Dominik Inführ authored
This is a reland of e95e1b62 After landing https://crrev.com/c/2546682, this CL can be relanded without changes. Original change's description: > [heap] Introduce LocalIsolate for main thread > > Add a LocalIsolate for the main thread to Isolate. This LocalIsolate is > kept alive during the whole lifetime of the Isolate. The main thread > LocalIsolate starts in the Running state in contrast to the background > thread LocalIsolates (those start in Parked). > > Code paths in Turbofan that used to create a LocalIsolate on the main > thread can now simply use the main thread LocalIsolate. > > LocalIsolate for the main thread will help in reducing differences > between the main and background threads. The goal is that the main > thread behaves more like a background thread. > > The main thread LocalIsolate should also make it simpler to share code > between main thread and background threads by using LocalIsolate for > both. > > Bug: v8:10315 > Change-Id: I7fd61d305a6fd7079e2319d75c291c1021e70018 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2509593 > Reviewed-by: Simon Zünd <szuend@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71226} Bug: v8:10315 Change-Id: I418b1217aeac4f3c44a0aa514dea9864f8a58656 TBR: szuend@chromium.org, yangguo@chromium.org, ulan@chromium.org, leszeks@chromium.org, neis@chromium.org Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2543399Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#71274}
-
- 17 Nov, 2020 2 commits
-
-
Michael Achenbach authored
This reverts commit e95e1b62. Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20arm%20-%20sim%20-%20debug/23064 Original change's description: > [heap] Introduce LocalIsolate for main thread > > Add a LocalIsolate for the main thread to Isolate. This LocalIsolate is > kept alive during the whole lifetime of the Isolate. The main thread > LocalIsolate starts in the Running state in contrast to the background > thread LocalIsolates (those start in Parked). > > Code paths in Turbofan that used to create a LocalIsolate on the main > thread can now simply use the main thread LocalIsolate. > > LocalIsolate for the main thread will help in reducing differences > between the main and background threads. The goal is that the main > thread behaves more like a background thread. > > The main thread LocalIsolate should also make it simpler to share code > between main thread and background threads by using LocalIsolate for > both. > > Bug: v8:10315 > Change-Id: I7fd61d305a6fd7079e2319d75c291c1021e70018 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2509593 > Reviewed-by: Simon Zünd <szuend@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71226} TBR=ulan@chromium.org,yangguo@chromium.org,neis@chromium.org,leszeks@chromium.org,szuend@chromium.org,dinfuehr@chromium.org Change-Id: Ia70b4bfe3b8fa26bf8d6a7dc612a310b0ed54073 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:10315 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2543937Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#71228}
-
Dominik Inführ authored
Add a LocalIsolate for the main thread to Isolate. This LocalIsolate is kept alive during the whole lifetime of the Isolate. The main thread LocalIsolate starts in the Running state in contrast to the background thread LocalIsolates (those start in Parked). Code paths in Turbofan that used to create a LocalIsolate on the main thread can now simply use the main thread LocalIsolate. LocalIsolate for the main thread will help in reducing differences between the main and background threads. The goal is that the main thread behaves more like a background thread. The main thread LocalIsolate should also make it simpler to share code between main thread and background threads by using LocalIsolate for both. Bug: v8:10315 Change-Id: I7fd61d305a6fd7079e2319d75c291c1021e70018 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2509593Reviewed-by:
Simon Zünd <szuend@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#71226}
-
- 01 Sep, 2020 1 commit
-
-
Jake Hughes authored
When enabled with the v8_enable_conservative_stack_scanning flag, a snapshot of the call stack upon entry to GC is used to determine part of the root-set. When the collector walks the stack, it looks at each value and determines whether it could be a potential on-heap object pointer. This is very experimental. For conservative stack scanning to work, direct handles must be implemented. Bug: v8:10614 Change-Id: Id4209cfbe76ef02239c903fabcb7f677b32fc977 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2375201 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#69644}
-
- 24 Aug, 2020 1 commit
-
-
johnx authored
Starboard is the platform abstraction for Cobalt. This CL introduces all Cobalt changes in src/base/platform. The review was conducted mostly on: https://chromium-review.googlesource.com/c/v8/v8/+/2247918 See b/156155426 for background Tbr: mlippautz@chromium.org Change-Id: I6cd092304ba6485acd38e82aa2dc4505d7dfb0aa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2346090 Commit-Queue: John Xu <johnx@google.com> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#69530}
-
- 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 Aug, 2020 1 commit
-
-
Dominik Inführ authored
LocalHeap::AllocateRaw will be similar to Heap::AllocateRaw and handle all allocations. LocalHeap::AllocateRawOrFail will perform a GC and afterwards retry the allocation in a loop. Bug: v8:10315 Change-Id: I68468962cf9102697aa547b2aa05c7ec6bafd19e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2332801Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#69193}
-
- 05 May, 2020 1 commit
-
-
Dan Elphick authored
Also makes memory-chunk.h accessible from outside heap which allows removal of some heap-inl.h includes. Bug: v8:10473, v8:10496 Change-Id: Iec4fc5ce8ad201f6ee5fd924cc3cd935324429fc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2172088 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Auto-Submit: 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@{#67551}
-
- 21 Apr, 2020 1 commit
-
-
Leszek Swirski authored
Refactors out the allocation and space merging parts of OffThreadFactory into a new OffThreadHeap class. This allows a separation of concerns between allocating/merging and initializing, and future-proofs the factory code against off-thread allocation implementation changes (e.g. LocalHeap). Bug: chromium:1011762 Change-Id: I876906dbfd50f8aafe56af2e63e5fe35e4f7f8e9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2157369 Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#67270}
-
- 17 Apr, 2020 1 commit
-
-
Sami Kyostila authored
This patch replaces V8's tracing implementation (i.e., the TRACE_EVENT macros) with the track event base implementation from Perfetto. The advantages of doing this are: 1) This allows us to remove most tracing-related backend code from V8. 2) V8 can start writing strongly typed trace event arguments, which are more compact, easier to process and more extensible than legacy JSON-based trace arguments. For the time being, we still support the old trace macros when V8 is embedded into Chrome and other embedders. Design doc: https://docs.google.com/document/d/1f7tt4cb-JcA5bQFR1oXk60ncJPpkL02_Hi_Bc6MfTQk/edit#heading=h.398p6b4eaen2 Bug: chromium:1006766 Change-Id: Ie71474fbe065821772b13d851487ebbca680c4ae Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1947688 Commit-Queue: Sami Kyöstilä <skyostil@chromium.org> Auto-Submit: Sami Kyöstilä <skyostil@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#67217}
-
- 06 Apr, 2020 1 commit
-
-
Dominik Inführ authored
Adds the PersistentHandles class, which serves as a container for handles that can be passed back and forth between threads. Allocation and deallocation of this class is thread-safe and the isolate tracks all PersistentHandles containers. Design doc: https://docs.google.com/document/d/17yKs-6apE2rGEag7tDsoyeRxg99c1dXyXQ2MfHe65tY/edit?usp=sharing Bug: v8:10315 Change-Id: I4b9c958c9a57d755ca68862197501f75274670fb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2128058 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#67004}
-
- 25 Mar, 2020 1 commit
-
-
Dominik Inführ authored
Add LocalHandleScope to allow for local handles in LocalHeaps (background threads). This class is similar to HandleScope which still needs to be used on the main thread. When performing a GC, the main thread halts all background threads at a safepoint such that it can safely iterate their roots. Bug: v8:10315 Change-Id: Id8f5d54cc2535e004081ccdef15dc03a39b2d0f0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2111218 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#66853}
-
- 16 Jan, 2020 1 commit
-
-
Leszek Swirski authored
Add support for internalizing an AstValueFactory using the off-thread factory. Includes adding ConsString support to OffThreadFactory. This introduces a Handle union wrapper, which is used in locations that can store a Handle or an OffThreadHandle. This is used in this patch for the internalized "string" field of AST strings, and will be able to be used for other similar fields in other classes (e.g. the ScopeInfo handle in Scope, object boilerplate descriptor handles, the inferred name handle on FunctionLiterals, etc.). It has a Factory-templated getter which returns the appropriate handle for the factory, and a debug-only tag to make sure the right getter is used at runtime. This union wrapper currently decomposes implicitly to a Handle if the getter is not called, to minimise code changes, but this implicit conversion will likely be removed for clarity. Bug: chromium:1011762 Change-Id: I5dd3a7bbdc483b66f5ff687e0079c545b636dc13 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1993971 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#65816}
-
- 15 Jan, 2020 1 commit
-
-
Leszek Swirski authored
Introduce OffThreadFactory with initial string construction support. The OffThreadFactory shares with Factory a new CRTP base class, called FactoryBase. Methods in FactoryBase return a FactoryHandle<Factory, T> alias, which is Handle<T> for normal Factory and a new OffThreadHandle<T> for OffThreadFactory. OffThreadHandle<T> behaves like Handle<T>, except it stores the object in-line rather than needing external storage. Any shared factory methods are moved into FactoryBase, which uses CRTP to call the sub-class's AllocateRaw method (plus a few more customization points which need Isolate access on the main thread). Methods that used to take an Isolate or Factory, and are needed off the main thread, are now expected to be templated on the factory type and to use the appropriate handle. Once an OffThreadFactory has finished being used (e.g. off-thread compilation completed) its pages are "Published" into the main-thread Heap. To deal with string internalization without creating a bunch of ThinStrings, this is done in two stages: 1. 'FinishOffThread': The off-thread pages are walked to collect all slots pointing to "internalized" strings. After this is called it is invalid to allocate any more objects with the factory. 2. 'Publish': On the main thread, we transform these slots into <Handle to holder, offset> pairs, then for each saved slot re-internalize its string and update the slot to point to the internalized string. Bug: chromium:1011762 Change-Id: I008a694da3c357de34362bd86fe7e1f46b535d5e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1992434 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#65787}
-
- 08 Jul, 2019 1 commit
-
-
Peter Marshall authored
The client API provides a much simpler interface so that we don't have to deal with producers, consumers etc. directly. This CL removes all the code that dealt with the more complex API used previously. The architecture used here requires that the embedder call into Tracing::Initialize() to set up the tracing backend. The tracing controller then connects to this backend when calling DataSource::Register() and Tracing::NewTrace(). This will ultimately avoid the need for a virtual call (or two) for every trace event that need to be dispatched over the API - chrome can provide a backend and V8 will connect to it opaquely with the same code when tracing is enabled. Cq-Include-Trybots: luci.v8.try:v8_linux64_perfetto_dbg_ng Bug: v8:8339 Change-Id: I6b74fbb49ffcc89638caeb59ed3d5cc81238f3e8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1634916Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#62568}
-
- 18 Jun, 2019 1 commit
-
-
Jakob Gruber authored
This CL renames jsregexp.{h,cc} to regexp.{h,cc}, hides all non-public functions of RegExpImpl in the .cc file, and renames the public parts of RegExpImpl to just RegExp. Include directives from outside the src/regexp directory are limited to regexp.h, regexp-stack.h, and regexp-utils.h. We also expose all result codes that can be returned by irregexp code (including RETRY) on the public header since they are needed elsewhere, e.g. in builtins. Bug: v8:9359 Change-Id: Iae1a01ac9f6e1e4dc168f3fbe8fe8679cb6b1259 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1662297Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#62240}
-
- 06 Jun, 2019 1 commit
-
-
Igor Sheludko authored
The implementation is already quite trivial and in addition in case of ptr-compr this implementation becomes even simpler and C++ compiler gets the opportunity to hoist common computation of isolate root. Tbr: yangguo@chromium.org Bug: v8:7464, v8:7703 Change-Id: I6e59cd43253c9ade5a0e27025ea7fabecd5b7af7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1647171 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#62024}
-
- 02 May, 2019 1 commit
-
-
Maciej Goszczycki authored
Code relocation info is now always allocated in old-space. Before relocation info allocated for placeholders and builtins (which get replaced with trampolines in nosnap builds) would become unreachable. Since read-only space is not GCed and ReadOnlyHeapIterator doesn't check for reachability, ValidateSnapshot would fail finding unreachable objects returned by ReadOnlyHeapIterator. Because trampoline relocation info gets replaced with canonical one, this only affects no-embdded-builtins nosnap builds, which don't get much benefit from read-only relocation info anyway. A new check has been added to the read-only deserializer to verify that every read-only object is reachable at mksnapshot-time. The CombinedHeapIterator iteration order was changed to iterate over read-only space first, because that's how HeapIterator worked. This is a reland of 3d1d8eae Original change's description: > [heap] Skip ro-space from heap iterators, add CombinedHeapIterator. > > Read-only space sharing requires an iterator independent of heap. This > also enables future removal of read-only space from heap. > > Bug: v8:7464 > Change-Id: Ia07a9369494ea2c547d12c01ffa1d7b8b6bbeabc > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1552795 > Commit-Queue: Maciej Goszczycki <goszczycki@google.com> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Dan Elphick <delphick@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60819} Bug: v8:7464 Change-Id: I49ae070955b77956962334a84f762ab29052d5ff Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1566513Reviewed-by:
Dan Elphick <delphick@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Maciej Goszczycki <goszczycki@google.com> Cr-Commit-Position: refs/heads/master@{#61185}
-
- 12 Apr, 2019 2 commits
-
-
Clemens Hammacher authored
This reverts commit 3d1d8eae. Reason for revert: Speculative revert; seems to break all nosnap bots, e.g. https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20nosnap/25240 Original change's description: > [heap] Skip ro-space from heap iterators, add CombinedHeapIterator. > > Read-only space sharing requires an iterator independent of heap. This > also enables future removal of read-only space from heap. > > Bug: v8:7464 > Change-Id: Ia07a9369494ea2c547d12c01ffa1d7b8b6bbeabc > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1552795 > Commit-Queue: Maciej Goszczycki <goszczycki@google.com> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Dan Elphick <delphick@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60819} TBR=ulan@chromium.org,hpayer@chromium.org,delphick@chromium.org,goszczycki@google.com Change-Id: I64b58b1b0c5eb073a6d2cfae81bb4de65f0511bf No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7464 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1565895Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60825}
-
Maciej Goszczycki authored
Read-only space sharing requires an iterator independent of heap. This also enables future removal of read-only space from heap. Bug: v8:7464 Change-Id: Ia07a9369494ea2c547d12c01ffa1d7b8b6bbeabc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1552795 Commit-Queue: Maciej Goszczycki <goszczycki@google.com> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#60819}
-
- 28 Feb, 2019 1 commit
-
-
Maciej Goszczycki authored
This provides a single point where read-only space sharing will be controlled. Eventually ReadOnlyDeserializer will take ReadOnlyHeap instead of Isolate, first steps include https://chromium-review.googlesource.com/c/v8/v8/+/1483054 Bug: v8:7464 Change-Id: I213819aeca6fca335235025c9195edf474230eda Reviewed-on: https://chromium-review.googlesource.com/c/1489087 Commit-Queue: Maciej Goszczycki <goszczycki@google.com> Reviewed-by:
Dan Elphick <delphick@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#59954}
-
- 29 Jan, 2019 1 commit
-
-
Michael Lippautz authored
TracedGlobal integrates with the use case of EmbedderHeapTracer and replaces regular weak Global or Persistent nodes for such cases. This allows to simplify the case for regular weak handles in a sense that they follow regular weak semantics (if the underlying object is otherwise unreachable the weak handle will be reset). TracedGlobal requires slightly different semantics in the sense that it can be required to keep them alive on Scavenge garbage collections because there's a transitive path that is only known when using the EmbedderHeapTracer. TracedGlobal accomodates that use case. TracedGlobal follows move semantics and can thus be used in regular std containers without wrapping data structure. The internal state uses 20% less memory and allows for only iterating those nodes when necessary. The design trades the virtual call when iterating interesting persistents in the GC prologue with calling out through the EmbedderHeapTracer for each node which is also a virtual call. There is one less iteration over the set of handles required though and the design is robust against recursive GCs that mutate the embedder state during the prologue callback. Bug: chromium:923361 Change-Id: Idbacfbe4723cd12af9de21058a4792e51dc4df74 Reviewed-on: https://chromium-review.googlesource.com/c/1425523 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#59183}
-
- 30 Oct, 2018 1 commit
-
-
Andreas Haas authored
This is the V8 side of the implementation. You can take a look at a prototype of the Chrome side changes in https://crrev.com/c/1273043. Chrome could also use V8's default implementation of the trap handler, see https://crrev.com/c/1290952. Bug: v8:6743 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I9bb3e717db17a4f30bbb8acfd80a1f6510d463ff Reviewed-on: https://chromium-review.googlesource.com/c/1283111 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#57117}
-
- 26 Oct, 2018 1 commit
-
-
Andreas Haas authored
This CL refactors the existing trap handler code for Linux to allow a cleaner extension to Windows. 1) The CL extracts platform-specific code into separate files, see https://docs.google.com/document/d/1HCgKIpdjy_CEodTLvZ5VuykDI6gGTHrTtau2j0zwm28. Specifically this means: * Move posix-specific API functions from v8.h to v8-wasm-trap-handler-posix.h. Deprecate the existing TryHandleSignal API function. * Move posix-specific function declarations from trap-handler-internal.h to handler-inside-posix.h * Move posix-specific function definitions from handler-shared.cc to handler-outside-posix.cc 2) The CL changes filenames from *-linux.* to *-posix.*. I expect that most of the implementation for MacOS will be the same as for Linux. Bug: v8:6743 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I4bb7f199564a2f01042084d15a82311d11a93c7b Reviewed-on: https://chromium-review.googlesource.com/c/1280324 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#57028}
-
- 21 Sep, 2018 1 commit
-
-
Marja Hölttä authored
Also fixing DEPS include rules for heap-write-barrier.h BUG=v8:5402,v8:8015 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: Ia785da321bc6c6f4c375ae8c866a0bf294e64f5b Reviewed-on: https://chromium-review.googlesource.com/1238453Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#56138}
-