- 19 Apr, 2021 26 commits
-
-
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}
-
Manos Koukoutos authored
Change-Id: I4f5eed3cc783b340ffbe1c0b3dbd50096514639a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2831471 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#74024}
-
Jakob Gruber authored
Should be unskipped once the linked issue is fixed. Tbr: mvstanton@chromium.org Bug: v8:11649 Change-Id: I9916c6f044a9c66d9a55d7783a619b2830a776ad Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2833916Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#74023}
-
Jakob Gruber authored
The mechanisms don't interact well. NodeObserver assumes synchronous compilation that finishes within the ObserverNodeScope. One could ensure all relevant lifetimes (of the NodeObserver itself, and all captured pointers) exceed that of all spawned jobs, but simply disabling the additional concurrent job in these cases is a pragmatic fix for now. Bug: v8:11658 Change-Id: I41b2f96f0166b661cf0cca94ef809ca99475e420 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2833915 Auto-Submit: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#74022}
-
v8-ci-autoroll-builder authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/cb917e0..665fcc3 TBR=v8-waterfall-sheriff@grotations.appspotmail.com Change-Id: I79e98c0c7f783f9aad16688e2453935a5e568d17 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2834345Reviewed-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@{#74021}
-
Liu Yu authored
Port 06a2c2e0 Change-Id: I0901804ce7d403c284f944251e09afe6dd7ad77b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2831162 Auto-Submit: Liu yu <liuyu@loongson.cn> Reviewed-by: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn> Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn> Cr-Commit-Position: refs/heads/master@{#74020}
-
- 18 Apr, 2021 1 commit
-
-
v8-ci-autoroll-builder authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/41fbf5d..cb917e0 TBR=v8-waterfall-sheriff@grotations.appspotmail.com Change-Id: I12fc43b4766ea41e42362368056215b985ddc870 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2833713Reviewed-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@{#74019}
-
- 17 Apr, 2021 2 commits
-
-
v8-ci-autoroll-builder authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/e00ea2a..41fbf5d Rolling v8/third_party/aemu-linux-x64: 9sUPtFCh9UkUuiYa9MoTXIK9ycaDI3CAdFHoa7zIT9cC..RHTOD0RSgoWm-M1jtnmPhZKKrWS0SGcMPzXuBTCbIUYC Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/02b5d39..d628425 Rolling v8/third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools/+log/9ceff71..efd29f6 Rolling v8/tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang/+log/eefe475..d7dd881 Rolling v8/tools/luci-go: git_revision:4b61ac9cadfb8d19a09262c6e6f5342d9324acd0..git_revision:0f913477afc80d5c4b6609834d3bef6b44910e67 Rolling v8/tools/luci-go: git_revision:4b61ac9cadfb8d19a09262c6e6f5342d9324acd0..git_revision:0f913477afc80d5c4b6609834d3bef6b44910e67 Rolling v8/tools/luci-go: git_revision:4b61ac9cadfb8d19a09262c6e6f5342d9324acd0..git_revision:0f913477afc80d5c4b6609834d3bef6b44910e67 TBR=v8-waterfall-sheriff@grotations.appspotmail.com Change-Id: I08ff3660ba06092fdc5d4030dd37a0e8f2046226 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2832753Reviewed-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@{#74018}
-
Ng Zhi An authored
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. Bug: v8:11542,chromium:1199662 Change-Id: I21c175f4707708038710147f64d687d1b14c6ecc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2829986 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#74017}
-
- 16 Apr, 2021 11 commits
-
-
Shu-yu Guo authored
This reverts commit 6124a534. Reason for revert: On suspicion of blocking V8 roll: https://ci.chromium.org/ui/p/chromium/builders/try/win10_chromium_x64_rel_ng/839568/overview 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 Change-Id: Ic99ec616310f0f75800c3dad393b5d2d685b76ab No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2829988 Auto-Submit: Shu-yu Guo <syg@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@{#74016}
-
Hannes Payer authored
Bug: chromium:1198188 Change-Id: I7f4a9e67a435fcb4b564599c5dd27c386bef143b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2831480 Commit-Queue: Hannes Payer <hpayer@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#74015}
-
Toon Verwaest authored
Bug: chromium:1178720 Change-Id: I0431f6d44217019b2370c07d2d11dd086abbcc9f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2831874 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Auto-Submit: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#74014}
-
Toon Verwaest authored
When the enumerability flag is flipped we need to invalidate the prototype info. Bug: chromium:1163499 Change-Id: Iceeaa5fc47eebfe7d333c9eb594bf0763e6cef92 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2831871 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Auto-Submit: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#74013}
-
Leszek Swirski authored
Operands in Arm can be encoded as (8-bit value, 2*N bit left rotate). This encoding is checked for with the FitsShifter function. Previously, this encoding was exhaustively searched for by checking all 16 possible rotations. However, we can simply classify the different possible rotations as shifting away trailing zeros (without rotation), or rotating an 8-bit value split over the beginning and end of the 32-bit value (which, after one rotation, becomes the first case). Hence, we can replace the exhaustive search with a couple of trailing zeros calculations within these classes. Change-Id: Id896539c376f695b54bdf31133b2a103b0cf9736 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2831479 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Patrick Thier <pthier@chromium.org> Cr-Commit-Position: refs/heads/master@{#74012}
-
Yahan Lu authored
Port 06a2c2e0 Change-Id: I23cbeabc14562168b5060f435beb77778dcfccdc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2831171 Commit-Queue: Brice Dobry <brice.dobry@futurewei.com> Reviewed-by: Brice Dobry <brice.dobry@futurewei.com> Cr-Commit-Position: refs/heads/master@{#74011}
-
Leszek Swirski authored
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} TBR=nicohartmann@chromium.org,clemensb@chromium.org,ishell@chromium.org,clemensb@chromium.org Bug: v8:11420 Change-Id: Icd1f6cdb3c178e74460044b1e9623139929ceba8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2831872Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#74010}
-
Benedikt Meurer authored
This change slipped into https://crrev.com/c/2820970 and wasn't intended. We actually need to rule out __proto__ here explicitly, otherwise it starts showing up in previews for embedder objects (i.e. for HTMLAllCollection, etc.). Bug: chromium:1197019 Change-Id: Iadde73747c157c2b5b013b11a6b8a30cc4394a7e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2831481 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Philip Pfaffe <pfaffe@chromium.org> Cr-Commit-Position: refs/heads/master@{#74009}
-
Georg Neis authored
Bug: chromium:1199345 Change-Id: I33bf71b33f43919fec4684054b5bf0a0787930ca Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2831478Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#74008}
-
Santiago Aboy Solanes authored
This is a reland of abe4858b Reason: It was speculatively reverted but it doesn't seem to have been the culprit. TBR=neis@chromium.org Original change's description: > [compiler] Do MapRef::CanBeDeprecated and ::CanTransition concurrently > > CanBeDeprecated looks at the DescriptorArray, and CanTransition at the > instance_type. Both are safe to read concurrently and we just had to > enable them with the macro. > > Bug: v8:7790 > Change-Id: Iafe6470f2d64a9ed38383cb9e4d00dd6f23d05d7 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2826539 > Reviewed-by: Georg Neis <neis@chromium.org> > Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73995} Bug: v8:7790 Change-Id: I51d29d53b208fe9b6b27adc46561a4e1009e8d6f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2831488Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#74007}
-
Yahan Lu authored
Optimize FPUCanonicalizeNaN Float Round reutrn qNan when input is Nan FMaxMin return qNan with Nan inputs Change-Id: I7568be3d27d030e49f292a956b3084b54bdf8577 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2814725 Commit-Queue: Brice Dobry <brice.dobry@futurewei.com> Reviewed-by: Brice Dobry <brice.dobry@futurewei.com> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#74006}
-