- 10 Sep, 2020 20 commits
-
-
Manos Koukoutos authored
Changes: - Add possibility to define and emit all reference types. - Simplify function locals definition. - Change 'type' to 'type_index' where appropiate. Bug: v8:7748 Change-Id: Ie35a6204369e678298ee2ff2ec7c7793c5315c3e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2390144 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#69814}
-
Leszek Swirski authored
Enable the new LocalHeap-based off-thread finalization behind --future. Bug: chromium:1011762 Change-Id: I4b33fc300a34530d75aa1a3e197e0d1326994efa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2403252 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#69813}
-
Santiago Aboy Solanes authored
Bug: v8:7790 Change-Id: I49120a6349777fd992a97d697940e79b2e71dbd1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2400988 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#69812}
-
Santiago Aboy Solanes authored
Namely: * ObjectBoilerplateDescription * ArrayBoilerplateDescription Bug: v8:7790 Change-Id: I05d106b5e557604e67e0cebaef7489fa3faf3562 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2398641 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#69811}
-
Sathya Gunasekaran authored
TBR: machenbach@chromium.org Bug: v8:10894 Change-Id: Ie36e7cb3fe8e52478d96d24aab3517fbed29a817 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2403250Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#69810}
-
Maya Lekova authored
This reverts commit f25cb50a. Reason for revert: Fails compilation on gcc https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20gcc%20-%20debug/9026? Original change's description: > Reland "cppgc, heap: Don't eagerly allocate worklist segments" > > This is a reland of c99147c6 > > Original change's description: > > cppgc, heap: Don't eagerly allocate worklist segments > > > > Bug: chromium:1056170 > > Change-Id: I75a6b5f52bfe8dd71abc086e5d1e060759ad7fc0 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2391254 > > Commit-Queue: Omer Katz <omerkatz@chromium.org> > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#69778} > > Bug: chromium:1056170 > Change-Id: I4633da065976a6b2710d2f23b946fd2af0e65c83 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2401425 > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Commit-Queue: Omer Katz <omerkatz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69806} TBR=ulan@chromium.org,mlippautz@chromium.org,omerkatz@chromium.org Change-Id: I004173e2a82518a88e68eae3a6f7e96656c0ad7e No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:1056170 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2403249Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#69809}
-
Jakob Gruber authored
This is the final part of the tier-up commit series. It implements: - A prologue in NCI code objects that checks and acts upon the optimization marker. - Currently, handling is deferred to the InterpreterEntryTrampoline but this will change in the future. - The lifecycle is otherwise like Ignition-to-Turbofan; the runtime profiler marks a function for optimization, the next call to that function triggers optimization by calling into runtime, and the finished code object is installed both on the JSFunction and the optimized code cache. - The feedback vector's kOptimizedCodeWeakOrSmiOffset slot is currently reused for the mid-to-top tier up. Cq-Include-Trybots: luci.v8.try:v8_linux64_fyi_rel_ng Bug: v8:8888 Change-Id: Iff50b05ddcc68b25d7ed0f1e0d20af076a1522a0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2361466Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Mythri Alle <mythria@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#69808}
-
Georg Neis authored
- Simplify some macros. - Simplify some handle creations. - Make various accessors more uniform. - Remove leftover assumptions about serialized children. Change-Id: Iee2951065c442aba1b479a48de33f0b8e0c7b057 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2402033 Commit-Queue: Georg Neis <neis@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org> Auto-Submit: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#69807}
-
Omer Katz authored
This is a reland of c99147c6 Original change's description: > cppgc, heap: Don't eagerly allocate worklist segments > > Bug: chromium:1056170 > Change-Id: I75a6b5f52bfe8dd71abc086e5d1e060759ad7fc0 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2391254 > Commit-Queue: Omer Katz <omerkatz@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69778} Bug: chromium:1056170 Change-Id: I4633da065976a6b2710d2f23b946fd2af0e65c83 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2401425Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#69806}
-
Pierre Langlois authored
This reverts https://chromium-review.googlesource.com/c/v8/v8/+/2372545 in favour of different solution. In order to simulate filling up a page, it's not suitable to look at the limit() since there might be observers that have lowered it, so the page will not actually be full. Instead, let's relax the CHECK() in CreatePadding() to not look at the limit() but all available space. For instance, the test-heap/Regress978156 cctest uses FillCurrentPage() to fill the current page. However if there's an observer on the current page, it will not be filled entirely and the test will fail. This works because by default, when the new space is empty, the scavenger observer happens to be on the second page of the space. However if one changes the V8 page size to 512k, then it fails. This can be reproduced as such: # Make sure the scavenge trigger is on the first page. ./cctest test-heap/Regress978156 --scavenge-task-trigger=10 # Stress marking adds random observers to trigger incremental # marking. ./cctest test-heap/Regress978156 --stress-marking=100 This issue also causes crashes when using the %SimulateNewspaceFull() runtime test function, as found by fuzzing and you can find more details in the bug. Bug: v8:10808, v8:9906, chromium:1122848 Change-Id: Ie043ae0a1d3754d2423cb5d97f2b3e1ee860e5c8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2401427Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Pierre Langlois <pierre.langlois@arm.com> Cr-Commit-Position: refs/heads/master@{#69805}
-
Camillo Bruni authored
This reverts commit 6798619a. Reason for revert: causing spurious optimisation failures. Original change's description: > [d8] Add d8 global variable > > - Add a a "d8" global variable where d8 can provide helpers. > This in in preparation of adding d8.log for testing our log parsers > written in JavaScript. > > - Separate d8 helper creation into individual functions. > > Bug: v8:1064 > Change-Id: I84e434452463afb93ae403f890d8841b20b00703 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2400990 > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Commit-Queue: Camillo Bruni <cbruni@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69801} TBR=cbruni@chromium.org,verwaest@chromium.org Change-Id: I23b0c0a2ce28c13b3eba10a0eb15cd61967711d1 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:1064 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2403246Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#69804}
-
Milad Farazmand authored
Simd128ReverseBytes needs to handle inputs of type F64x2 and I64x2 when lowered. Bug: v8:10507 Change-Id: If4de5abd264f01d6515a83310e008d256ad57836 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2401920Reviewed-by: Bill Budge <bbudge@chromium.org> Reviewed-by: Zhi An Ng <zhin@chromium.org> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#69803}
-
Leszek Swirski authored
Add a DCHECK during deserializer allocation that the previous allocation is sufficiently initialized to be iterable. This is an step towards allowing GC during deserializer execution. Bug: v8:10815 Change-Id: I29da21b93e6b826bdb7b5f9f5a9723da1698a225 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2396079 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#69802}
-
Camillo Bruni authored
- Add a a "d8" global variable where d8 can provide helpers. This in in preparation of adding d8.log for testing our log parsers written in JavaScript. - Separate d8 helper creation into individual functions. Bug: v8:1064 Change-Id: I84e434452463afb93ae403f890d8841b20b00703 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2400990Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#69801}
-
Leszek Swirski authored
Refactors weak prefix handling, in particular the post-hoc weak prefix read and HeapObjectReference creation, to a few function calls. This simplifies ReadDataCase sufficiently that it can be inlined into ReadData, which removes the need for a) having two places where we branch on the bytecode value (ReadData and ReadDataCase), and b) removes the need for the macro helper which calls ReadData. With a bit of refactoring we can therefore make the big switch much more explicit. This patch also moves that switch into a per-bytecode helper, so that switch entries can return the updated slot, rather than remembering to update in-place and continue looping. It also moves the weak prefix handling from the deserializer allocator to the deserializer itself, as weak prefixes don't have anything to do with allocation. Change-Id: I84fbda021cb65d5bfb91fc3ef27f72823acee05a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2395557 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#69800}
-
Georg Neis authored
My last CL introduced a null-pointer bug there. Bug: chromium:1126771, v8:7790 Change-Id: Ib16317dea14c9fbad7951cb28ce7bb8bb9ce41c3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2402037 Auto-Submit: Georg Neis <neis@chromium.org> Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#69799}
-
Mythri A authored
Monomorphic loads are quite common and it is important to keep these load accesses fast. Dynamic map checks increases the overhead for these monomorphic accesses by having to actually verify the IC state and check against a map from the feedback vector This was causing a significant (~2-3%) regression in JavaScript duration. To keep the common case of monomorphic checks fast, we now want to add a check against expected map (which passes in most cases) and move the rest of the checks to a builtin. i.e. we want dynamic map checks (when generating the code for loads in monomorphic state) to look like: if (incoming_map != HeapConstant(expected_map)) call_builtin; This helps us to keep the most common case fast and still gets the benefits of dynamic map checks. This cl is the first in the series of cls that will add this functionality. This cl makes the expected_map available for dynamic map checks operator. In follow up cls, we will add a builtin and update the code to use the builtin. Bug: v8:10582 Change-Id: I10992c6ba1fb005592de962310c208cff6829119 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2397894Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#69798}
-
Sathya Gunasekaran authored
The dynamic map checks operator loads the feedback vector and performs map checks against each map and handler entry in the feedback against the incoming map and handler. Instead of emitting code to iterate over this feedback vector at runtime, we unroll this loop at compile time. The generated code is similar to this pseudocode: length = feedback_slot.length if length >= 4: goto labels[3] if length == 3: goto labels[2] if length == 2: goto labels[1] if length == 1: goto labels[0] labels[3]: map = load(feedback_slot, 6) if incoming_map == map goto handler_check(7) goto labels[2] labels[2]: map = load(feedback_slot, 4) if incoming_map == map goto handler_check(5) goto labels[1] labels[1]: map = load(feedback_slot, 2) if incoming_map == map goto handler_check(3) goto labels[0] labels[0]: map = load(feedback_slot, 0) if incoming_map == map goto handler_check(1) bailout handler_check (index): handler = load(feedback_slot, index) if incoming_handler == handler goto done deoptimize Bug: v8:10582, v8:9684 Change-Id: I64d64ff8eda664e4d476bf1b2612e26a344e98a6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2339960 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by: Mythri Alle <mythria@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#69797}
-
Zhao Jiazhong authored
Change-Id: Ic2bbf2b3ff542d916da43929445bd83553b5091f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2401952Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn> Cr-Commit-Position: refs/heads/master@{#69796}
-
v8-ci-autoroll-builder authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/9c1d422..471a6cd Rolling v8/buildtools: https://chromium.googlesource.com/chromium/src/buildtools/+log/ff93f3e..a90362b Rolling v8/buildtools/linux64: git_revision:6f13aaac55a977e1948910942675c69f2b4f7a94..git_revision:e002e68a48d1c82648eadde2f6aafa20d08c36f2 Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/dc9083e..70f34e0 TBR=machenbach@chromium.org,tmrts@chromium.org,v8-waterfall-sheriff@grotations.appspotmail.com Change-Id: I11a42e1b54914893affa6fddb390cb5eb0d76472 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2401774Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#69795}
-
- 09 Sep, 2020 20 commits
-
-
Shu-yu Guo authored
This reverts commit 1d2726dd. Reason for revert: ODROID failure: https://ci.chromium.org/p/v8/builders/ci/V8%20Arm%20-%20debug/15814? Original change's description: > [wasm-simd] Stage SIMD > > SIMD has been pretty stable for a while now, we are not expecting big > changes (like opcode renumbers), there might be new instructions added, > and they will all be backwards-compatible. > > The reference interpreter in the SIMD proposal is now capable of > generating JS files for all test cases, so we can now run them. > > There is a bit of tweaking necessary, since SIMD tests are in > tests/core/simd subfolder in the spec, so we need to change the glob > into a find that will traverse into subdirectory. > > Bug: v8:10835 > Change-Id: I1f7e3cf37f21b2aa2537d1e34242da2373bbf626 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2378587 > Commit-Queue: Zhi An Ng <zhin@chromium.org> > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69793} TBR=bbudge@chromium.org,ahaas@chromium.org,zhin@chromium.org Change-Id: I3a90c616109ca048691d97ab45698bc15a678e18 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:10835 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2402379Reviewed-by: Shu-yu Guo <syg@chromium.org> Commit-Queue: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/master@{#69794}
-
Ng Zhi An authored
SIMD has been pretty stable for a while now, we are not expecting big changes (like opcode renumbers), there might be new instructions added, and they will all be backwards-compatible. The reference interpreter in the SIMD proposal is now capable of generating JS files for all test cases, so we can now run them. There is a bit of tweaking necessary, since SIMD tests are in tests/core/simd subfolder in the spec, so we need to change the glob into a find that will traverse into subdirectory. Bug: v8:10835 Change-Id: I1f7e3cf37f21b2aa2537d1e34242da2373bbf626 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2378587 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#69793}
-
Frank Tang authored
https://chromium.googlesource.com/external/github.com/tc39/test262/+log/24c6732..e8cdf92 Bug: v8:7834 Change-Id: I99d104f9b071ff2abed11e54a3c2832400e84ac4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2393218Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Shu-yu Guo <syg@chromium.org> Commit-Queue: Frank Tang <ftang@chromium.org> Cr-Commit-Position: refs/heads/master@{#69792}
-
Jakob Kummerow authored
Apple's upcoming arm64 devices will prevent rwx access to memory, but in turn provide a new per-thread way to switch between write and execute permissions. This patch puts that system to use for the WebAssembly subsystem. The approach relies on CodeSpaceWriteScope objects for now. That isn't optimal for background threads (which could stay in "write" mode permanently instead of toggling), but its simplicity makes it a good first step. Background: https://developer.apple.com/documentation/apple_silicon/porting_just-in-time_compilers_to_apple_silicon Bug: chromium:1117591 Change-Id: I3b60f0efd34c0fed924dfc71ee2c7805801c5d42 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2378307 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#69791}
-
Santiago Aboy Solanes authored
Instead of using SKIP (which would skip the tests), we can use [PASS, FAIL] which signals to run the tests and accept if they are flakily passing. In this way, we would get coverage and an error if we have a non-flaky failure. Bug: v8:10876 Change-Id: Idbdf9dcb76775cf5e81dc1c3bc6d9abb1db23ced Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2401424 Auto-Submit: Santiago Aboy Solanes <solanes@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#69790}
-
Igor Sheludko authored
... and apply zone filter to the graph header. Bug: v8:10572 Change-Id: I923f2342a064864aeac693c482c09fee3eda28ee Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2401419Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#69789}
-
Thibaud Michaud authored
Remove {available_task_ids_} and use the task ID provided by the JobDelegate instead. R=clemensb@chromium.org Bug: chromium:1123471 Change-Id: I62c7efd68fbb0a93ac3d36614b3248b60da65ff8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2400986 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#69788}
-
Camillo Bruni authored
Using the Template::Set method which const char name is more ergonomic and it creates directly an internalized name instead of the normal string that most users pass in. Bug: v8:10884 Change-Id: I00c6d49fee9de16b8ebbfe75be4b383831f0d4dd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2400980Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#69787}
-
Andreas Haas authored
The emitted safepoint entries had the wrong size, because it did not contain StandardFrameConstants::kFixedFrameSizeAboveFp. The code still worked because the indices of encoded in the entries where too low by StandardFrameConstants::kFixedFrameSizeAboveFp and thereby corrected the invalid size. It worked as follows: First the stack_slots_size gets calculated from the safepoint entry. Then the position of a stack slot was "frame_header_base + stack_slots_size - index * pointer_size", where "index" is what is encoded in the safepoint map. Because of the incorrect encoding, both stack_slot_size and index were too low by StandardFrameConstants::kFixedFrameSizeAboveFp. Therefore the errors in both values eliminated each other, making the end result correct. With --print-code, the safepoint entry size was also read, and it crashed because the encoded value was too low. The reland fixes the indices. Original message: With this CL we emit safepoint maps for externref values on the Liftoff value stack. With that there is support for externref parameters and locals in Liftoff, as well as for intermediate values of type externref. R=thibaudm@chromium.org Bug: v8:7581 Change-Id: I88444e57745d7b9fe8f1630e904d49736fa9d720 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2398531 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#69786}
-
Leszek Swirski authored
This is a reland of 1c7618ab The revert was due to an missing dependency in the incremental build, fixed in https://crrev.com/c/2400987. Original change's description: > [serializer] Remove new space > > The new space is unused in the snapshot, as we convert all new objects > to old space objects when serializing. This means we can get rid of > the snapshot new space entirely, and as a result get rid of the write > barrier checks. > > This also rejiggles the order of the general spaces enum so that the new > spaces are at the end, and can be truncated off for the SnapshotSpace > enum. > > As a drive by, fix a bug in an unrelated test-api test which this patch > exposed. > > Change-Id: If67ff8be5bf03104a3ffae7df707c22460bba3a1 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2390762 > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69761} Tbr: jgruber@chromium.org,dinfuehr@chromium.org Change-Id: I9fbc61a124fae09d12d6281baaca60eb6c39a6e5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2401420Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#69785}
-
Manos Koukoutos authored
Additional changes: - Add tests. - Rename some subtyping functions. Bug: v8:7748 Change-Id: I3635e93ea6bbab1942f927a8e414afc8efd31f69 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2389983 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#69784}
-
Camillo Bruni authored
For testing log file parsing from JavaScript we need to be able to read open log files directly. This makes the default log file mode consistent with the temporary one. Bug: v8:1064 Change-Id: Ic77ba6864efe633e54792fc683edc2fe07af4cd5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2400993Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#69783}
-
Camillo Bruni authored
Bug: chromium:1121111 Change-Id: I34d60957fe972066928762be961b9a963bae7975 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2390148Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#69782}
-
Maya Lekova authored
This reverts commit c99147c6. Reason for revert: Breaks UBSan - https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20UBSan/12773? Original change's description: > cppgc, heap: Don't eagerly allocate worklist segments > > Bug: chromium:1056170 > Change-Id: I75a6b5f52bfe8dd71abc086e5d1e060759ad7fc0 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2391254 > Commit-Queue: Omer Katz <omerkatz@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69778} TBR=ulan@chromium.org,mlippautz@chromium.org,omerkatz@chromium.org Change-Id: Icf1b1a333b5f1b683c816c65662207914996e325 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:1056170 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2401422Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#69781}
-
Michael Lippautz authored
Adds a field that can be propagated by embedders. The field holds the detachedness state of DOM objects but can be used in general by embedder to indicate which objects are for sure part of interesting application logic and which objects are not. This field is then processed properly by the DevTools front end. Bug: chromium:1110816 Change-Id: I53a172208cd69ce2ba2ed9524d36b6512aae7d30 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2332174Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#69780}
-
Leszek Swirski authored
This is a reland of 81577a79 The revert was due to an missing dependency in the incremental build, fixed in https://crrev.com/c/2400987. Original change's description: > [serializer] Change deferring to use forward refs > > Now that we have forward references, we can replace the body deferring > mechanism with forward references to the entire pointer. > > This ensures that objects are always deserialized with their contents > (aside from themselves maybe holding forward refs), and as a result we > can simplify the CanBeDeferred conditions which encode the constraint > that some objects either need immediately have contents, or cannot be > deferred because their fields are changed temporarily (e.g. backing > store refs). > > This also means that objects with length fields (e.g. arrays) will > always have those length fields deserialized when the object is > deserialized, which was not the case when the body could be deferred. > This helps us in the plan to make GC possible during deserialization. > > Bug: v8:10815 > Change-Id: Ib0e5399b9de6027765691e8cb47410a2ccc15485 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2390643 > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69760} Tbr: jgruber@chromium.org Bug: v8:10815 Change-Id: I235076a97c5dfa58513e880cc477ac72a28b29e9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2400992Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#69779}
-
Omer Katz authored
Bug: chromium:1056170 Change-Id: I75a6b5f52bfe8dd71abc086e5d1e060759ad7fc0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2391254 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#69778}
-
Jakob Gruber authored
The %BytecodeBudgetInterruptFromCode call resets the interrupt budget; prior to this CL we'd overwrite the value immediately after returning from runtime, resulting in repeated runtime calls. Drive-by: Add the interrupt budget to FeedbackCell's debug print. Bug: v8:8888 Change-Id: I2c98b839b8630a9e14df3d8a724e03c5afbec687 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2400991 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Auto-Submit: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#69777}
-
Leszek Swirski authored
tools/debug_helper:run_mkgrokdump used to only depend on mkgrokdump. However, the snapshot can change without affecting the mkgrokdump binary itself. So, if the mkgrokdump binary doesn't change, then run_mkgrokdump doesn't run, even if the snapshot changed. This could cause mysterious test failures in incremental builds, in particular for tests testing the contents of heap-constants-gen.cc. Now, we make run_mkgrokdump depend on run_mksnapshot_default directly, so that snapshot updates force an mkgrokdump run. Change-Id: Ia3871e1b4fa15ec2dbc0bc5463afdb427cb39c61 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2400987 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#69776}
-
Georg Neis authored
1) Strengthen the ObjectData::As* cast methods to check that the kind is kSerializedHeapObject, because otherwise the data object is not a subclass instance and the cast is invalid. 2) Fix errors revealed by (1) and pave way for moving away from serialization. These changes are mechanical except for a needed refactoring of ContextRef::previous. Details regarding (2): Change (1) revealed a large number of places where we incorrectly casted object data. This went unnoticed so far because in the end we accessed the object through the corresponding ObjectRef interface which did the right thing depending on the data kind. These bugs were introduced when kUnserializedReadOnlyHeapObject was added, but they also affect the new kNeverSerializedHeapObject and would become show stoppers as we move more objects to the latter kind. The CL fixes all the issues that I found except one: There's still one place left where we assume a particular subclass instance for now (marked with a TODO). This is not a bug at the moment but will cause CHECK failures once we move the corresponding object type to never-serialized. A rewrite of map serialization might be needed to resolve that. Note: With the changes in (2) we lose some type safety in the implementation of the *Data classes. With some extra work that could be avoided. However, I think it's not worth it because (i) these classes are expected to be removed (and in the meantime to not change much), and (ii) their wrapper *Ref classes still ensure type safety. Bug: v8:7790 Change-Id: I9a5d03fa2f61e03c9c0ab4ac7f9869603d5be1d9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2398537Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Auto-Submit: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#69775}
-