- 20 Apr, 2021 11 commits
-
-
Maya Lekova authored
This is a reland of 6124a534 It fixes a UAF issue in the d8 test by moving the test API object constructor to PerIsolateData. It also fixes a crash in Chromium caused by current usage of v8::ApiObject, which should be migrated to v8::Value*. Original change's description: > [fastcall] Add support for leaf interface type checks > > This CL adds an IsTemplateForApiObject method to FunctionTemplate > allowing the embedder to check whether a given API object was > instantiated by this template without including parent templates > in the search. It also replaces the v8::ApiObject in the fast API > with a raw v8::Value pointer to allow use of standard C++ casts. > > Bug: chromium:1052746 > Change-Id: I0812ec8b4daaa5f5005aabf10b63e1e84e0b8f03 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2595310 > Commit-Queue: Maya Lekova <mslekova@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Reviewed-by: Camillo Bruni <cbruni@chromium.org> > Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73999} Bug: chromium:1052746, chromium:1199900 Change-Id: I4b7f0c9e9152919dde4a1d0c48fbf5ac8c5b13d8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2835711Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#74064}
-
Jochen Eisinger authored
Change-Id: Iae17977cec9520cf0194b5686ec31f0501f866f1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2839556 Auto-Submit: Jochen Eisinger <jochen@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#74063}
-
Patrick Thier authored
This is a reland of df52b65d Skip test with variant stress-concurrent-allocation. The test manually triggers pretenuring for allocation sites, but with --stress-concurrent-allocation these pretenuring decisions are reset due to low survival rate in old generation. Original change's description: > [test] Rework Allocation Site Pretenruing Tests > > - Add %PretenureAllocationSite to manually force pretenuring for an > allocation site during the next GC. > - Replace cctest test-compiler/DecideToPretenureDuringCompilation, which > was not triggering the tested behaviour anymore with mjsunit test > - Add tests for deoptimizations due to pretenuring decision changes > during OSR. > > Bug: chromium:1193094 > Change-Id: I5d6c35e2914b705bf96f27051a4a286413b6fe26 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2825593 > Commit-Queue: Patrick Thier <pthier@chromium.org> > Reviewed-by: Maya Lekova <mslekova@chromium.org> > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> > Cr-Commit-Position: refs/heads/master@{#74032} Bug: chromium:1193094 Change-Id: I366a4a074435ebffcf2b3af84152067731cd2a5e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2839550Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Patrick Thier <pthier@chromium.org> Cr-Commit-Position: refs/heads/master@{#74062}
-
Dominik Inführ authored
This allows using --track-retaining-path with incremental marking enabled. This CL will also track when an object was kept alive through the write barrier or the RetainMaps feature. Bug: v8:11645 Change-Id: I08ab5e500ae3580aead0c188c2caeb8f2a5f9f07 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2829440Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#74061}
-
Jakob Gruber authored
Introduced in crrev.com/c/2833919. Tbr: mslekova@chromium.org Bug: v8:7790 Change-Id: I885aa1034f0edb99a6cb698f08361f5c1bf26389 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2839549Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#74060}
-
Sathya Gunasekaran authored
This reverts commit f2741b13. Reason for revert: breaks blink linux bot https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Blink%20Linux%20Debug/9089/blamelist Original change's description: > Resolving or rejecting promises doesn't execute script > > It just enqueues a microtask. > > Bug: chromium:728583 > Change-Id: Iecbc6f33db8a94acd10d9ae1f2173700d872ac50 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2827906 > Reviewed-by: Camillo Bruni <cbruni@chromium.org> > Commit-Queue: Jochen Eisinger <jochen@chromium.org> > Cr-Commit-Position: refs/heads/master@{#74036} Bug: chromium:728583 Change-Id: I09a750b9c5cf43adedb395949e246421eeaf0a09 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2839547 Auto-Submit: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@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@{#74059}
-
Nico Hartmann authored
This is a reland of 7c7cdec5 Original change's description: > [TurboFan] Fix SpeculativeNumberEqual[Number] with undefined > > Bug: chromium:1198309, v8:5660 > Change-Id: I9cb5f66643c0c0ab9b18ca953cf85d2f6aa84b42 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2827899 > Reviewed-by: Georg Neis <neis@chromium.org> > Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> > Cr-Commit-Position: refs/heads/master@{#74038} Bug: chromium:1198309 Bug: v8:5660 Change-Id: Ibf9b3abfb62778a970b791432458076cff46d033 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2839544Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#74058}
-
Jakob Gruber authored
This splits up js-heap-broker.cc into - js-heap-broker.cc: the JSHeapBroker impl, and - heap-refs.cc: ObjectRef and ObjectData impls, as well as two JSHeapBroker functions that closely deal with refs/data objects. Bug: v8:7790 Change-Id: I7e097b60cdec4fd61b39d7de9752d536ac313cbe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2833919Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#74057}
-
Sathya Gunasekaran authored
This is a reland of c83c9590 Changes since revert: nothing, issue was crbug.com/v8/11666 Original change's description: > [ic] Add a new MegaDOM IC > > This patch implements the MegaDOM IC setup and access. A new MegaDOM > IC state indicates that we've seen only DOM accessors at this access > site. > > This CL only adds support for DOM getters in LoadIC, other kinds of > access will be added in follow on CLs. > > Still remaining TODO before shipping: > 1. Have a mechanism to invalidate the protector > 2. Have a mechanism to find the accessors that aren't overloaded > 3. Use a new builtin to miss to runtime on access check failure > > Change-Id: Ie12efe5e9fa284f023043b996d61e7d74e710ee2 > Bug: v8:11321 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2618239 > Reviewed-by: Omer Katz <omerkatz@chromium.org> > Reviewed-by: Camillo Bruni <cbruni@chromium.org> > Reviewed-by: Dan Elphick <delphick@chromium.org> > Reviewed-by: Mythri Alle <mythria@chromium.org> > Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73733} Bug: v8:11321 Change-Id: I2bec54465542b5b40c42adb6eb12b6ce72cce5bd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2794439Reviewed-by: Dan Elphick <delphick@chromium.org> Reviewed-by: Mythri Alle <mythria@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#74056}
-
Camillo Bruni authored
- Add v8_code_comments to allow runtime-enabled code comments with --code-comments - v8_code_comments is enable by default in debug mode - Make MacroAssembler::RecordComment helper inlineable to remove call and check overheads when v8_code_comments = false - Make FLAG_code_comments readonly if v8_code_comments = false and benefit from dead-code elimination This saves roughly 5% CompileBaselineVisit time in sparkplug on a 5MiB JS file. Bug: v8:11420 Change-Id: I1174ab37b4bbe1ff8880416c1f6a6e28377a962c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2824428Reviewed-by: Bill Budge <bbudge@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#74055}
-
Jakob Gruber authored
Tbr: gsathya@chromium.org Bug: v8:11668,v8:11649,v8:11576 Change-Id: I8bd0cb97d7682a8d752c5b78af6dfccd426be1d3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2839543Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#74054}
-
- 19 Apr, 2021 29 commits
-
-
Ng Zhi An authored
Bug: v8:11542 Change-Id: Ib2f369cbbd91f3da07bd8f60476321ec99265872 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2836825 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#74053}
-
Ng Zhi An authored
Bug: v8:11589 Change-Id: I871ec1aecbac065e80c05309e478d814675c0d44 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2828700 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#74052}
-
Deepti Gandluri authored
Bug: v8:11613 Change-Id: Ica7fe5ca63fa3729614eb09ace26e679a88577ac Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2826728 Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Reviewed-by: Zhi An Ng <zhin@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#74051}
-
Zhi An Ng authored
This reverts commit b824d853. Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20-%20debug/36784/overview Original change's description: > [wasm-simd][x64][ia32] Factor f64x2.replace_lane into shared code > > This pblendw/movlhps combination has lower latency and requires less > unop than pinsrq (1 v.s. 2). > > Bug: v8:11589 > Change-Id: I770b0c20a286774afefbac5ef0adffe463318f21 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2828871 > Reviewed-by: Bill Budge <bbudge@chromium.org> > Commit-Queue: Zhi An Ng <zhin@chromium.org> > Cr-Commit-Position: refs/heads/master@{#74049} Bug: v8:11589 Change-Id: I1be96e59fdb844db1e228be3a09d4a06798a16c3 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2837805 Auto-Submit: Zhi An Ng <zhin@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@{#74050}
-
Ng Zhi An authored
This pblendw/movlhps combination has lower latency and requires less unop than pinsrq (1 v.s. 2). Bug: v8:11589 Change-Id: I770b0c20a286774afefbac5ef0adffe463318f21 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2828871Reviewed-by: Bill Budge <bbudge@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#74049}
-
Shu-yu Guo authored
The plan is to use VirtualMemoryCage both for the pointer compression cage as well as the code range in a future CL. The PtrComprCage class is removed in favor of using VirtualMemoryCage directly. Bug: v8:11460 Change-Id: I4e34a3db1359319e3539ede587f6a73e0af03eec Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2824098 Commit-Queue: Shu-yu Guo <syg@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Junliang Yan <junyan@redhat.com> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#74048}
-
Milad Fa authored
After https://crrev.com/c/2831872 Baseline and Compare_Baseline functions need to return proper registers as placeholders. More details can be found on comment section of this port: https://crrev.com/c/2830897 Change-Id: I7f91a85f9c85ce1813540b4d525f2dce5faaf279 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2836705Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Junliang Yan <junyan@redhat.com> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/master@{#74047}
-
Junliang Yan authored
Change-Id: I358d4e811f47cb0975c488fc6c9c0c57648fe42e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2836325Reviewed-by: Milad Fa <mfarazma@redhat.com> Commit-Queue: Junliang Yan <junyan@redhat.com> Cr-Commit-Position: refs/heads/master@{#74046}
-
Jakob Kummerow authored
Also replace the schoolbook algorithm with an optimized version that runs about twice as fast. This also adds infrastructure to support interrupt checks from BigInt library code. Bug: v8:11515 Change-Id: I5f812913697384afca98937e1fb7361b4ec22d62 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2773043 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#74045}
-
Santiago Aboy Solanes authored
We can hardcode the result and to make sure we are using the correct offset, we now have a static_assert. Change-Id: Ic04ce9f8e46847504d3d0a5921f55cb750f7f3ad Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2831473 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/master@{#74044}
-
Clemens Backes authored
This saves quite some code space on wasm functions, which often do not spill any tagged values (hence the safepoints will just be empty). It also often saves a few bytes on code that actually spills tagged values, but not to the highest frame slots. R=jkummerow@chromium.org Bug: v8:11630 Change-Id: I3bd77b3afcd2cf86a92ce5b302b5aa06ec0ed223 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2831873Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#74043}
-
Milad Fa authored
Port ede5e814 Original Commit Message: This reverts commit d16eefe0. It is not correct to check for node equality during the graph construction phase, because we can have optimizations that will combine same nodes. So it can happen that in wasm-compiler, the inputs to shuffle are not the same, so we canonicalize using that knowledge that it will not be the same, and allow indices > 15. But later we can have optimizations that combine the 2 inputs (e.g. splat of the same constants), and the instruction selector will see that the input nodes are the same. R=zhin@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com BUG= LOG=N Change-Id: I0d388c814dc1c45f978d749218b8120bfd53bb03 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2835397Reviewed-by: Junliang Yan <junyan@redhat.com> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/master@{#74042}
-
Daniel Lehmann authored
The --wasm-write-protect-code-memory flag previously enforced W^X, that is the WebAssembly code space was either writable or executable, but never both at the same time. With compilation in background threads concurrent to execution in the main thread, this simple scheme is no longer viable because the same memory page can indeed be written to and executed at the same time. Hence, this flag is currently broken and disabled and the code space is always writable AND executable. As a first step towards more security, we at least want to write-protect the code space (when not required writable by compilation threads) but at the same time keep it always executable (because of concurrent execution in the main thread). That is, we no longer switch between RX and RW (W^X), but rather between RX and RWX (write-protection only). This CL starts to change from W^X (which was broken) to write-protection only when enabling --wasm-write-protect-code-memory. This is the first of two CLs, where the followup CL will fix the feature, and this CL merely prepares and cleans up the code. In particular, this CL changes the permissions from RW to RWX (due to concurrent execution) and renames `WasmCodeAllocator::SetExecutable()` to `WasmCodeAllocator::SetWritable()` (and similarly named callers) to be consistent with that change. Since the code space is now always executable, this CL also removes now unneeded calls to `SetExecutable(true)` in tests. R=clemensb@chromium.org CC=jkummerow@chromium.org Bug: v8:11663 Change-Id: I2065eed6770215892b81daefbddf74a349e783cc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2835237Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Daniel Lehmann <dlehmann@google.com> Cr-Commit-Position: refs/heads/master@{#74041}
-
Sathya Gunasekaran authored
This reverts commit 7c7cdec5. Reason for revert: speculative revert for https://logs.chromium.org/logs/v8/buildbucket/cr-buildbucket.appspot.com/8849515345192311664/+/u/Check_-_stress_concurrent_allocation/deopt-pretenure Original change's description: > [TurboFan] Fix SpeculativeNumberEqual[Number] with undefined > > Bug: chromium:1198309, v8:5660 > Change-Id: I9cb5f66643c0c0ab9b18ca953cf85d2f6aa84b42 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2827899 > Reviewed-by: Georg Neis <neis@chromium.org> > Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> > Cr-Commit-Position: refs/heads/master@{#74038} Bug: chromium:1198309 Bug: v8:5660 Change-Id: I91eef4a6bb85245b82086c91798ca3d650854f52 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2836097Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#74040}
-
Clemens Backes authored
This reverts commit df52b65d. Reason for revert: fails on TSan: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20TSAN/36351/overview Original change's description: > [test] Rework Allocation Site Pretenruing Tests > > - Add %PretenureAllocationSite to manually force pretenuring for an > allocation site during the next GC. > - Replace cctest test-compiler/DecideToPretenureDuringCompilation, which > was not triggering the tested behaviour anymore with mjsunit test > - Add tests for deoptimizations due to pretenuring decision changes > during OSR. > > Bug: chromium:1193094 > Change-Id: I5d6c35e2914b705bf96f27051a4a286413b6fe26 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2825593 > Commit-Queue: Patrick Thier <pthier@chromium.org> > Reviewed-by: Maya Lekova <mslekova@chromium.org> > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> > Cr-Commit-Position: refs/heads/master@{#74032} Bug: chromium:1193094 Change-Id: I0cd526984d467c4e1e3637ac642f630e3cffea41 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2835715 Auto-Submit: Clemens Backes <clemensb@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@{#74039}
-
Nico Hartmann authored
Bug: chromium:1198309, v8:5660 Change-Id: I9cb5f66643c0c0ab9b18ca953cf85d2f6aa84b42 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2827899Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/master@{#74038}
-
Ross McIlroy authored
Objects that have kind() kBackgroundSerializedHeapObject also should have been serialized. Change-Id: I2a3f17df61477409e94b8858e720e1a2ec720091 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2835709 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Auto-Submit: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#74037}
-
Jochen Eisinger authored
It just enqueues a microtask. Bug: chromium:728583 Change-Id: Iecbc6f33db8a94acd10d9ae1f2173700d872ac50 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2827906Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Jochen Eisinger <jochen@chromium.org> Cr-Commit-Position: refs/heads/master@{#74036}
-
Georg Neis authored
Bug: v8:11666 Change-Id: I7ccb1a888d16202895aa6288b141d3e41b524572 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2835708 Auto-Submit: Georg Neis <neis@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#74035}
-
Milad Fa authored
Port 2871e05c Original Commit Message: This is a reland of ae0752df Reland fixes: * Remove UNREACHABLE() from constexpr switch, since we don't have a CONSTEXPR_UNREACHABLE() (it's ok, the switch is exhaustive for the enum anyway). * Fix IsRegisterArray trait to use public inheritance and size_t for std::array size. Original change's description: > [codegen] Add static interface descriptors > > Add a new CRTP StaticCallInterfaceDescriptor class, which provides > static constexpr getters for a descriptor's registers, parameter counts, > and so on. Each CallInterfaceDescriptor subclass is changed to extend > StaticCallInterfaceDescriptor, with StaticCallInterfaceDescriptor itself > extending CallInterfaceDescriptor to still provide a dynamic lookup > where needed. > > StaticCallInterfaceDescriptor provides a couple of customisation points, > where it reads its CRTP derived descriptor's static fields and > functions, with default fallbacks where appropriate. With these > customisation points, the definition of CallInterfaceDescriptor > subclasses is simplified to: > > a) Providing parameter names (as before) > b) Providing parameter types (as before) > c) Optionally setting flags (like kNoContext or kAllowVarArgs) as > static booleans on the class. > d) Optionally providing a `registers()` method that returns a > std::array<Register, N> of registers that may be used for > parameters (if not provided, this defaults to the implementation > specific default register set). > > Parameter registers (and register count) are automagically set based on > the number of parameters and number of given registers, with extra magic > to ignore no_reg registers (to reduce ia32 special casing). The > CallInterfaceDescriptorData is initialized based on these static > functions, rather than manual per-descriptor initializers. > > This allows us to skip loading descriptors dynamically for CallBuiltin > in Sparkplug, and instead lets us use a bit of template magic to > statically set up arguments for the calls. Any other users of statically > known descriptors will also benefit, thanks to C++ picking the static > methods over the dynamic methods on the base class when available. > > Because we can remove various virtual functions and trigger heavier > inlining of constantly known values, binary size slightly decreases with > this change. > > Note that torque-generated descriptors are changed to use the same magic, > rather than having Torque-specific magic, for consistency. > > Bug: v8:11420 > Change-Id: Icc5e238b6313a08734feb564204a13226b450c22 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2814518 > Auto-Submit: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73996} R=leszeks@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com BUG= LOG=N Change-Id: Id854bb901df72787ed225fc8790c3f626121ab3a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2830897Reviewed-by: Junliang Yan <junyan@redhat.com> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/master@{#74034}
-
Georg Neis authored
Bug: chromium:1198705 Change-Id: I6b3ad82754e1ca72701ce57f16c4f085f8c87f77 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2835705 Auto-Submit: Georg Neis <neis@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/master@{#74033}
-
Patrick Thier authored
- Add %PretenureAllocationSite to manually force pretenuring for an allocation site during the next GC. - Replace cctest test-compiler/DecideToPretenureDuringCompilation, which was not triggering the tested behaviour anymore with mjsunit test - Add tests for deoptimizations due to pretenuring decision changes during OSR. Bug: chromium:1193094 Change-Id: I5d6c35e2914b705bf96f27051a4a286413b6fe26 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2825593 Commit-Queue: Patrick Thier <pthier@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#74032}
-
Clemens Backes authored
We plan to trim the size of safepoint entries, to avoid emitting completely empty entries, and also saving some bytes by removing trailing zeros. This CL prepares that by removing the assumption that the safepoint entry contains one bit per stack slot. Instead, we just use all bits that are there in the safepoint entry when iterating compiled frames. R=jkummerow@chromium.org Bug: v8:11630 Change-Id: Ib335a34da92a08e28fe84fb74f50c8535c2f4c41 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2831484Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#74031}
-
Jakob Kummerow authored
This test attempted to call mprotect to switch memory permissions, which returns an error on MacOS on arm64. The workaround is simple: don't call mprotect, rely on MacOS-specific permission switching. See also https://chromium-review.googlesource.com/c/v8/v8/+/2679688 for a related fix in non-test code. Drive-by: fix host arch detection in gm.py when building on M1 Macs. Bug: v8:11657 Change-Id: I9b59ee8f2279e28f7561ac071df27508211741f3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2831877Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#74030}
-
Dominik Inführ authored
This is a reland of dcd91455 This CL fixes two more tests that were uncovered by the non-concurrent marking bot. Original change's description: > [heap] Do not scan main thread handles when starting marking > > We do not need to scan main thread handles when starting incremental > marking. This reduces the time to start incremental marking. > > Bug: v8:11645 > Change-Id: Ib99a13e7875f50fbfe5346ac0e186d8960ea1337 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2826124 > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73994} Bug: v8:11645 Change-Id: Id5b9dd0dcec08b6888a885b4f02783f674af90fc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2831879Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#74029}
-
Hannes Payer authored
Bug: chromium:1198188 Change-Id: Iaf2cdd85124295d842ff6bb139ab0d85371c08ae Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2833920Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#74028}
-
Patrick Thier authored
Rename - InterpreterEnterBytecodeDispatch to InterpreterEnterAtBytecode - InterpreterEnterBytecodeAdvance to InterpreterEnterAtNextBytecode. The reason for renaming is consistency with baseline trampolines that have similar functionality, but the old names didn't fit for baseline very well. Change-Id: I35897972fdd71f3bb0db74820db2b9034144a3c8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2830794Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Auto-Submit: Patrick Thier <pthier@chromium.org> Cr-Commit-Position: refs/heads/master@{#74027}
-
Clemens Backes authored
This changes the interaction between {NativeModule} and {WasmCodeAllocator}. The {WasmCodeAllocator} is a field of {NativeModule}, and only called directly by the {NativeModule}. So far, there were two mutexes involved, the {allocation_mutex_} in {NativeModule}, and {mutex_} in {WasmCodeAllocator}. This caused problems with lock order inversion. This CL thus merges the two mutex, by always locking the mutex in {NativeModule} when calling a non-atomic method in {WasmCodeAllocator}. This serializes slightly more code, but none of this should be performance-critical. This removes the awkward {OptionalLock} class and adds the "Locked" suffix to a few methods to document that those can only be called while holding the allocation mutex. R=jkummerow@chromium.org CC=dlehmann@google.com Bug: v8:11663 Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux_arm64_gc_stress_dbg_ng Cq-Include-Trybots: luci.v8.try:v8_linux_gc_stress_dbg_ng Change-Id: I8895d61fef23a57b218e068532375bac941a5a77 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2831477 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#74026}
-
Daan de Graaf authored
Makes ExternalRefEncoder work even if no isolate is available, by separating V8 builtin external references from isolate dependent ones, and making the first set available without providing an isolate. This is used when disassembling external references in wasm functions. Bug: v8:11373 Change-Id: I9a177618185a6e5612182bcb02be7cc1978e8f34 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2799511Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Zhi An Ng <zhin@chromium.org> Commit-Queue: Daan de Graaf <daagra@google.com> Cr-Commit-Position: refs/heads/master@{#74025}
-