- 01 Mar, 2021 1 commit
-
-
Omer Katz authored
This CL sets it so that the actual object size is reported only when cppgc_enable_object_names is set to true. Otherwise the heap snapshot merges nodes and the sizes don't make sense. Also, this will resolve a web test failure for the library. Bug: chromium:1056170 Change-Id: I32f6552560bdfad4b64c67b21292543978042a81 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2726499Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73092}
-
- 26 Feb, 2021 6 commits
-
-
Michael Lippautz authored
This is a reland of eb453679 Original change's description: > cppgc: Rework testing GC infrastructure > > Instead of moving the stand-alone logic to the base heap, allows > specific heaps to override their stand-alone GC behavior. This allows > CppHeap to reuse the unified heap bottlenecks and visitors for > testing. This works as long as any v8 references are empty as there is > no Isolate attached to the heap in this case. > > - Reverts parts of https://crrev.com/c/2716291 > - Relands parts of https://crrev.com/c/2718146 > > In addition, add tests covering v8::CppHeap and cppgc::Heap. > > Bug: chromium:1056170 > Change-Id: I47dc88c7f0e4961a1aadd60da9b05bff4dcfb27a > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2718612 > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Omer Katz <omerkatz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73077} Bug: chromium:1056170 Change-Id: I415c837a7cf275c636172485dc4101c237a7d76b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2723253 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Auto-Submit: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73081}
-
Francis McCabe authored
This reverts commit eb453679. Reason for revert: Breaks MSAN: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/37053 Original change's description: > cppgc: Rework testing GC infrastructure > > Instead of moving the stand-alone logic to the base heap, allows > specific heaps to override their stand-alone GC behavior. This allows > CppHeap to reuse the unified heap bottlenecks and visitors for > testing. This works as long as any v8 references are empty as there is > no Isolate attached to the heap in this case. > > - Reverts parts of https://crrev.com/c/2716291 > - Relands parts of https://crrev.com/c/2718146 > > In addition, add tests covering v8::CppHeap and cppgc::Heap. > > Bug: chromium:1056170 > Change-Id: I47dc88c7f0e4961a1aadd60da9b05bff4dcfb27a > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2718612 > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Omer Katz <omerkatz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73077} Bug: chromium:1056170 Change-Id: Ieda44c07d08f837a6632f96b8db6d5bec87dd521 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2723216 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Francis McCabe <fgm@chromium.org> Cr-Commit-Position: refs/heads/master@{#73078}
-
Michael Lippautz authored
Instead of moving the stand-alone logic to the base heap, allows specific heaps to override their stand-alone GC behavior. This allows CppHeap to reuse the unified heap bottlenecks and visitors for testing. This works as long as any v8 references are empty as there is no Isolate attached to the heap in this case. - Reverts parts of https://crrev.com/c/2716291 - Relands parts of https://crrev.com/c/2718146 In addition, add tests covering v8::CppHeap and cppgc::Heap. Bug: chromium:1056170 Change-Id: I47dc88c7f0e4961a1aadd60da9b05bff4dcfb27a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2718612 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73077}
-
Manos Koukoutos authored
We experimentally globally enable loop unrolling for wasm code. This might be reverted based on the results of perf bots. Additional change: Add LoopExitValue to Int64Lowering, plus a small simplification. Bug: v8:11298 Change-Id: Iaf2829e80f948d70c5fb6ed7c974db7f59265fa3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2718611Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/master@{#73072}
-
Clemens Backes authored
Wasm tests and wasm fuzzers should not be compiled (and run) if v8_enable_webassembly=false. R=machenbach@chromium.org Bug: v8:11238 Change-Id: I78bbb1d1d98179cac315411b8c2c2ecaee8ede91 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2721761Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#73071}
-
Omer Katz authored
This was causing DevTools to crush whenever I took a heap snapshot. Bug: chromium:1056170 Change-Id: Ice7b3039c21a3f902f242299939e92ba0e393c9f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2720307 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73065}
-
- 25 Feb, 2021 3 commits
-
-
Ng Zhi An authored
This instruction is not in the final SIMD proposal. Bug: v8:6020 Change-Id: Ifef1b3d58bf660f2d30784f587aed85f327825ec Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2716073 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#73058}
-
pthier authored
VLQ encoding was implemented in TranslationArray and Sparkplug PC <-> bytecode mapping. This CL introduces new VLQ helper methods used in both. Bug: v8:11429 Change-Id: I89d9777eab4ad28f08e5957421b63df07e37f9cc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2704674Reviewed-by:
Igor Sheludko <ishell@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@{#73054}
-
Dan Elphick authored
Remove most dependencies on v8_wrappers. The remainder all depend on v8_libbase anyway, so just fold it into that target which removes a gn check error. Also removes v8_wrappers from the fuzzers where it's not used. Bug: v8:7330 Change-Id: I916806b62f8c49cc1d50ef493aa900e30fc623aa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2716383 Commit-Queue: Dan Elphick <delphick@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Auto-Submit: Dan Elphick <delphick@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#73041}
-
- 24 Feb, 2021 3 commits
-
-
Zhi An Ng authored
This reverts commit ea818f07. Reason for revert: Test failure in Linux64 UBSan https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20UBSan/15251/overview Original change's description: > cppgc: Fix testing APIs that enable garbage collection > > The APIs require that the CppHeap is moved into a permanently detached > state that moves the heap out of a no-gc scope. > > Bug: chromium:1056170 > Change-Id: I1fc08451b3fdfaa4cfe58e6a1ddbe5dbed7efe5c > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2718146 > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Omer Katz <omerkatz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73025} Bug: chromium:1056170 Change-Id: Id00cb18274cbe7d255e7e95bd9e8e4dbc4b0c6e7 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2718658 Auto-Submit: Zhi An Ng <zhin@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Francis McCabe <fgm@chromium.org> Cr-Commit-Position: refs/heads/master@{#73029}
-
Michael Lippautz authored
The APIs require that the CppHeap is moved into a permanently detached state that moves the heap out of a no-gc scope. Bug: chromium:1056170 Change-Id: I1fc08451b3fdfaa4cfe58e6a1ddbe5dbed7efe5c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2718146 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73025}
-
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}
-
- 23 Feb, 2021 5 commits
-
-
Seth Brenith authored
This change adds a new abstract type Lazy<T> which can be used to interoperate with CSA code that uses LazyNode. This new type has special code-generation rules because its generated type is not TNode<...> but std::function<TNode<...>()>. Torque code can do nothing with this type except pass it around, but passing it to the CSA function RunLazy is an easy way to execute the std::function and get back a normal value. Torque code can also create Lazy<T> values using the intrinsic function %MakeLazy, which takes the name of a macro as its first parameter, followed by arguments to that macro which will be passed when the LazyNode is evaluated. We use the macro's name because the language doesn't support taking references to macros, and implementing such a feature would be complicated. Bug: v8:7793 Change-Id: I09120960e3492dd51be0d4c57e14ff3826b99262 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2701752 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#72964}
-
Michael Achenbach authored
No-Try: true Bug: v8:11338, v8:11413 Change-Id: I5a3365e557bc3727071d8d73e9b3f9da1ae6d011 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2714704 Auto-Submit: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Simon Zünd <szuend@chromium.org> Reviewed-by:
Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#72953}
-
Clemens Backes authored
If two call instructions were generated right after each other, the source position table could get populated with two entries for the same PC (triggered by the follow-up CL: https://crrev.com/c/2697359). This CL fixes that by slightly changing the carry-over of source positions from nodes to instructions. The call node which has a source position attached generates two instructions: 18: gap () ([rax|R|tp] = v16(-); [rbx|R|t] = v17(-);) [rax|R|t] = ArchCallWasmFunction [immediate:4] #-1 [rax|R|tp] [rbx|R|t] [immediate:5] 19: gap () () ArchJmp [immediate:6] Those are then reversed, and the source position is attached to the first one (the ArchJmp). After reversing it again later, the source position will be set to the pc *after* the call instruction, which in the example happened to be just another call instruction which already had a source position, resulting in this code: [...] 0x388ee467d426 66 e875feffff call 0x388ee467d2a0 ;; wasm stub: WasmThrow 0x388ee467d42b 6b e850feffff call 0x388ee467d280 ;; wasm stub: WasmStackGuard [...] Source positions: pc offset position 6b 5 6b 0 By attaching the source position to the *last* instruction (after reversing), we ensure that it will be generated for an instruction *before* the call, or the call itself if this is the first instruction emitted for that node. R=jgruber@chromium.org Bug: v8:11490, v8:11496 Change-Id: Ie95c87d0d9daea56ca14a811abcd02ac07a4cf84 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2697358 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#72951}
-
Clemens Backes authored
The v8_enable_webassembly=false configuration will not be a able to run any wasm code, hence remove the whole asm to wasm translation from the binary. In order to skip specific unit tests in that configuration, we move the definition of the v8_enable_webassembly gn argument from BUILD.gn to v8.gni, such that it is available in all gn files. R=ecmziegler@chromium.org, machenbach@chromium.org Bug: v8:11238 Change-Id: Id4e290df3e42ffd2f05c377bdd3a368871815daf Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2712562 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Emanuel Ziegler <ecmziegler@chromium.org> Cr-Commit-Position: refs/heads/master@{#72945}
-
Bill Budge authored
This reverts commit 9da4e363. Reason for revert: Fuzzers revealed that Liftoff doesn't use the CallDescriptor when pushing arguments, breaking linkage. tbr=ahaas@chromium.org,neis@chromium.org,jgruber@chromium.org Original change's description: > Reland "Reland "Reland "[compiler][wasm] Align Frame slots to value size""" > > This is a reland of 352b9ecb > > The test/fix CL has been merged in, as the fixes to return slot > accounting are needed to fix Arm64 issues turned up by the fuzzers: > > https://chromium-review.googlesource.com/c/v8/v8/+/2644139 > > Original change's description: > > Reland "Reland "[compiler][wasm] Align Frame slots to value size"" > > > > This is a reland of 1694925c > > > > Minor fix to linkage for constexpr. > > > > TBR=ahaas@chromium.org,neis@chromium.org > > > > Original change's description: > > > Reland "[compiler][wasm] Align Frame slots to value size" > > > > > > This is a reland of cddaf66c > > > > > > Original change's description: > > > > [compiler][wasm] Align Frame slots to value size > > > > > > > > - Adds an AlignedSlotAllocator class and tests, to unify slot > > > > allocation. This attempts to use alignment holes for smaller > > > > values. > > > > - Reworks Frame to use the new allocator for stack slots. > > > > - Reworks LinkageAllocator to use the new allocator for stack > > > > slots and for ARMv7 FP register aliasing. > > > > - Fixes the RegisterAllocator to align spill slots. > > > > - Fixes InstructionSelector to align spill slots. > > > > > > > > Bug: v8:9198 > > > > > > > > Change-Id: Ida148db428be89ef95de748ec5fc0e7b0358f523 > > > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2512840 > > > > Commit-Queue: Bill Budge <bbudge@chromium.org> > > > > Reviewed-by: Georg Neis <neis@chromium.org> > > > > Reviewed-by: Andreas Haas <ahaas@chromium.org> > > > > Cr-Commit-Position: refs/heads/master@{#71644} > > > > > > Bug: v8:9198 > > > Change-Id: Ib91fa6746370c38496706341e12d05c7bf999389 > > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2633390 > > > Commit-Queue: Bill Budge <bbudge@chromium.org> > > > Reviewed-by: Andreas Haas <ahaas@chromium.org> > > > Reviewed-by: Georg Neis <neis@chromium.org> > > > Cr-Commit-Position: refs/heads/master@{#72195} > > > > Bug: v8:9198 > > Change-Id: I91e02b823af8ec925dacf075388fb22e3eeb3384 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2640890 > > Reviewed-by: Bill Budge <bbudge@chromium.org> > > Commit-Queue: Bill Budge <bbudge@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#72209} > > Bug: v8:9198 > Change-Id: I8258f87463f66417c7028b9a1fed4b9b6d82a3be > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2669892 > Reviewed-by: Georg Neis <neis@chromium.org> > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Commit-Queue: Bill Budge <bbudge@chromium.org> > Cr-Commit-Position: refs/heads/master@{#72506} Bug: v8:9198 Change-Id: I7f344e4d018ce3c02333b0b08efeecdd8cddf082 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2713207Reviewed-by:
Bill Budge <bbudge@chromium.org> Reviewed-by:
Zhi An Ng <zhin@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#72937}
-
- 22 Feb, 2021 6 commits
-
-
Bill Budge authored
This reverts commit 0818d138. Reason for revert: Rolling back to previous greedy slot allocator. tbr=ahaas@chromium.org Original change's description: > [compiler][wasm] Fix Wasm linkage > > - Fixes a problem when constructing Wasm CallDescriptors, where the > allocation tries to treat parameters and returns as if they are in the > same frame. This doesn't work when slots may be aligned in their > frame. Instead, allocate parameters and returns separately and offset > return slots by the number of parameter slots. > - Adds argument slot padding in the CallDescriptor lowering case, to > prepare for when 32 bit targets align stack frames and require > padding. > - Adds a regression test. > > Bug: chromium:1174500 > Change-Id: I60d96a94b171a0d27ff61cbab35623976b0c6da8 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2683024 > Commit-Queue: Bill Budge <bbudge@chromium.org> > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Cr-Commit-Position: refs/heads/master@{#72588} Bug: chromium:1174500 Change-Id: I1d1c389acde43bd56e6d2a27e1a3eb8ea4d6073c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2713206 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by:
Bill Budge <bbudge@chromium.org> Commit-Queue: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#72934}
-
Bill Budge authored
This reverts commit 8cf4eec7. Reason for revert: Rolling back to previous greedy slot allocator. tbr=neis@chromium.org,jgruber@chromium.org Original change's description: > [codegen][frames] Generalize argument padding slot code > > - Removes kPadArguments boolean. > - Changes ShouldPadArguments to ArgumentPaddingSlots to reflect > that on some architectures more than 1 padding slot may be needed. > - Adds AddArgumentPaddingSlots and ShouldPadArguments convenience > functions. > > Bug: v8:9198 > > Change-Id: Iba87518e071a75fb951b490d3f75a87ca715cc23 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2679109 > Commit-Queue: Bill Budge <bbudge@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#72605} Bug: v8:9198 Change-Id: Ie93d32d4b93c67840e4792acb017f28a826bd030 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2713205 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by:
Bill Budge <bbudge@chromium.org> Commit-Queue: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#72931}
-
Dan Elphick authored
Currently if gn check is enabled (with v8/third_party ignored), there are many errors due to headers being used without adding the proper dependency in BUILD.gn (or because it's being used transitively without a public_deps chain). This makes the number of errors go from 2114 to 195. Apart from adding dependencies, it also moves _v8_internal_Node_Print from objects-printer.cc to node.cc so it can see the Node::Print method which wouldn't otherwise be possible without a circular dependency. Also removes the previously deleted compiler/graph-builder-tester.h file. Bug: v8:7330 Change-Id: Icb34585fbef621588265cf4267cfc88ecbcf0a72 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2702331Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#72908}
-
Clemens Backes authored
If webassembly is disabled via a gn arg, we will not be able to enable it via command-line switch. Hence make this flag read-only in that configuration. R=ecmziegler@chromium.org Bug: v8:11238 Change-Id: Ib93a55f74d4f018477f110b8b52aa9b645e86553 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2710426Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Emanuel Ziegler <ecmziegler@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72905}
-
Clemens Backes authored
This CL introduces a test runner flag to detect if webassembly has been disabled. Since all tests that require wasm are alrady skipped in lite mode, we introduce a has_webassembly flag for the test runner which checks for v8_enable_webassembly=true and v8_enable_lite_mode=false. As a drive-by, we also do not set the V8_ENABLE_WEBASSEMBLY preprocessor flag if lite mode is enabled. The status files are updated by splitting wasm tests from the "lite_mode" section and checking for "not has_webassembly" instead. Note that the v8_enable_webassembly=false configuration is not tested on any bot currently, but I will make sure that all tests keep passing on further changes in this configuration. R=machenbach@chromium.org Bug: v8:11238 Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel Change-Id: I1841eb1f1633cb47e0c079f4a4a4d769ca3a9cbb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2710425Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72898}
-
Clemens Backes authored
Backends do not care about the concrete type, they only need to know the "kind" (e.g. "ref" or "i32"). In order to prepare Liftoff to use the value kind instead of the value type for all stored data, this CL moves the kind out of the ValueType and makes it a top-level enum. R=manoskouk@chromium.org Bug: v8:11477 Change-Id: I489d6c5207e6ff1b66e2afbe78a156d66df27eb3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2707169 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#72896}
-
- 18 Feb, 2021 1 commit
-
-
Michael Lippautz authored
The atomic pause would not report any marked bytes which in turn would mean that the used bytes counter would stay at 0 for testing GCs that always use atomic marking. Bug: chromium:1056170 Change-Id: Ie35d9b3bc88766c4ef56271f05d944f4835ba431 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2704662 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#72850}
-
- 17 Feb, 2021 3 commits
-
-
Omer Katz authored
Process global accessors for total physical size and used size are needed for blink. These are implemented via an allocation observer that atomically updates static counters. The public api only provides getters for the counters. An internal class is in charge of updating the counters as needed. A similar split is also applied to IsAnyIncrementalOrConcurrentMarking(). Drive-by: ProcessHeap is merged into cppgc::internal::WriteBarrier. Bug: chromium:1056170 Change-Id: Iaedebd1ac9d49238ce6bdd52ffa5d1ef4d28203d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2695394 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#72832}
-
Seth Brenith authored
This is a reland of cf93071c Original change's description: > [interpreter] Short Star bytecode > > Design doc: > https://docs.google.com/document/d/1g_NExMT78II_KnIYNa9MvyPYIj23qAiFUEsyemY5KRk/edit > > This change adds 16 new interpreter opcodes, kStar0 through kStar15, so > that we can use a single byte to represent the common operation of > storing to a low-numbered register. This generally reduces the quantity > of bytecode generated on web sites by 8-9%. > > In order to not degrade speed, a couple of other changes are required: > > The existing lookahead logic to check for Star after certain other > bytecode handlers is updated to check for these new short Star codes > instead. Furthermore, that lookahead logic is updated to contain its own > copy of the dispatch jump rather than merging control flow with the > lookahead-failed case, to improve branch prediction. > > A bunch of constants use bytecode size in bytes as a proxy for the size > or complexity of a function, and are adjusted downward proportionally to > the decrease in generated bytecode size. > > Other small drive-by fix: update generate-bytecode-expectations to emit > \n instead of \r\n on Windows. > > Change-Id: I6307c2b0f5794a3a1088bb0fb94f6e1615441ed5 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2641180 > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> > Cr-Commit-Position: refs/heads/master@{#72773} Change-Id: I1afb670c25694498b3989de615858f984a8c7f6f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2698057 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#72821}
-
Thibaud Michaud authored
'catch_all' and 'else' use distinct opcodes now. R=clemensb@chromium.org Bug: v8:8091 Change-Id: If07e46b9ea23068953db1765d10c7e3746d21d99 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2699258 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72810}
-
- 16 Feb, 2021 5 commits
-
-
Thibaud Michaud authored
Implicitly rethrow the exception when we reach the end of a try..unwind..end. Also make it a validation error to rethrow an exception caught by an unwind block. R=clemensb@chromium.org Bug: v8:8091 Change-Id: Ia149d2e81b1fbfa9209047b35ff0c9fedc1b8895 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2696662 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72785}
-
Leszek Swirski authored
This reverts commit cf93071c. Reason for revert: Speculative revert because of Mac4 GC stress failure: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Mac64%20GC%20Stress/16697/overview Original change's description: > [interpreter] Short Star bytecode > > Design doc: > https://docs.google.com/document/d/1g_NExMT78II_KnIYNa9MvyPYIj23qAiFUEsyemY5KRk/edit > > This change adds 16 new interpreter opcodes, kStar0 through kStar15, so > that we can use a single byte to represent the common operation of > storing to a low-numbered register. This generally reduces the quantity > of bytecode generated on web sites by 8-9%. > > In order to not degrade speed, a couple of other changes are required: > > The existing lookahead logic to check for Star after certain other > bytecode handlers is updated to check for these new short Star codes > instead. Furthermore, that lookahead logic is updated to contain its own > copy of the dispatch jump rather than merging control flow with the > lookahead-failed case, to improve branch prediction. > > A bunch of constants use bytecode size in bytes as a proxy for the size > or complexity of a function, and are adjusted downward proportionally to > the decrease in generated bytecode size. > > Other small drive-by fix: update generate-bytecode-expectations to emit > \n instead of \r\n on Windows. > > Change-Id: I6307c2b0f5794a3a1088bb0fb94f6e1615441ed5 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2641180 > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> > Cr-Commit-Position: refs/heads/master@{#72773} TBR=rmcilroy@chromium.org,mythria@chromium.org,seth.brenith@microsoft.com Change-Id: I0162b9400861b90bacef27cca9aebc8ab9d74c10 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2697350Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#72777}
-
Seth Brenith authored
Design doc: https://docs.google.com/document/d/1g_NExMT78II_KnIYNa9MvyPYIj23qAiFUEsyemY5KRk/edit This change adds 16 new interpreter opcodes, kStar0 through kStar15, so that we can use a single byte to represent the common operation of storing to a low-numbered register. This generally reduces the quantity of bytecode generated on web sites by 8-9%. In order to not degrade speed, a couple of other changes are required: The existing lookahead logic to check for Star after certain other bytecode handlers is updated to check for these new short Star codes instead. Furthermore, that lookahead logic is updated to contain its own copy of the dispatch jump rather than merging control flow with the lookahead-failed case, to improve branch prediction. A bunch of constants use bytecode size in bytes as a proxy for the size or complexity of a function, and are adjusted downward proportionally to the decrease in generated bytecode size. Other small drive-by fix: update generate-bytecode-expectations to emit \n instead of \r\n on Windows. Change-Id: I6307c2b0f5794a3a1088bb0fb94f6e1615441ed5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2641180Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/master@{#72773}
-
Sathya Gunasekaran authored
The current API returns a Handle<NativeContext> which can be optionally null and all the users of this API never actually checked for this null value. Previously, this wasn't a problem as all the possible JSObjects that were user visible would return a valid NativeContext but now there are wasm objects that don't have a valid constructor so don't have a NativeContext. Bug: v8:11451, chromium:1166077 Change-Id: I4fd5edf8f1a750e6f0abb931fd41358e5ae4dfcf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2692695 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#72769}
-
Leszek Swirski authored
Pass an explicit Isolate* argument to Compiler::Compile*, rather than grabbing the Isolate from the function Change-Id: I37a38103c67305077225ea3951d36007cf07beea Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2696655Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#72762}
-
- 15 Feb, 2021 2 commits
-
-
Omer Katz authored
Bug: chromium:1056170 Change-Id: I561166a7f1be658c5c35aa1caf8dbbbd2d720ab3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2692815 Commit-Queue: Omer Katz <omerkatz@chromium.org> Auto-Submit: Omer Katz <omerkatz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#72754}
-
Leszek Swirski authored
Add a new StackFrame class for unoptimized frames (which are either interpreted or baseline). BaselineFrame becomes a subclass of this rather than InterpretedFrame, and the various frame constants helpers are similarly amended. Bug: v8:11420, v8:11429 Change-Id: I87e9368aef48ef06a39476bf826f379ce1441528 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2692208 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#72743}
-
- 12 Feb, 2021 3 commits
-
-
Ross McIlroy authored
Previously it was possible for a slot operand to be allocated a constant operand which is not valid. This CL adds support to the mid-tier register allocator to keep track of whether spilled operands can support constant operands, and if not to instead move the constant to a spill slot at it's definition point, and use that spill slot instead. In the process of doing this, we can cleanup the hack that required constants to always be allocated to a register for REGISTER_OR_SLOT operator policies. BUG=chromium:10772,v8:10772,v8:9684 Change-Id: I975ea2c481b45fc0855e175bc6dc2bd0a83f509a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2692569Reviewed-by:
Santiago Aboy Solanes <solanes@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#72722}
-
Michael Lippautz authored
Ephemerons are based around WeakMember which may just be null at the time the pair is considered for liveness. Bail out of marking for null keys, as they write barrier would anyways make the value strong when marking the key. Bug: chromium:1056170 Change-Id: If8775a370824b88fc67fa479a0c0893985fbf5f4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2692571Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#72714}
-
Dominik Inführ authored
Ensure that epilogues are added to the LocalHeap before starting the GC. Adding the epilogue after invoking NotifyStarted() might mean that the epilogue is only added after the GC is already done and the epilogue isn't run at all. The test flakily fails because the epilogue didn't execute then. Bug: v8:11434 Change-Id: I60723a99cd9224307f48acd0c0e8af3f93dd3eb2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2690600 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#72688}
-
- 11 Feb, 2021 2 commits
-
-
Seth Brenith authored
In https://chromium-review.googlesource.com/c/v8/v8/+/2641180 , we are discussing renaming AccumulatorUse. To avoid polluting that change with a large mechanical find&replace, I've created a separate change for the renaming. Change-Id: Ibc7e438f9e719571c9237e7e08ba86562a3c679f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2684923Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/master@{#72679}
-
Toon Verwaest authored
This speeds up sparkplug by >20%. This reland fixes the OffHeapBytecodeArray to also register a GC callback. Turns out off-heap here doesn't mean that the underlying bytecode array is off-heap and it can in fact move. Change-Id: I7c6e82abd2a7be08ead537ab84855e76edc3b290 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2688400 Auto-Submit: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#72677}
-