VV8 LUCI CQ[hole] Remove unneeded hole value checks
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[fuzzer][arm64][wasm] Enable experimental SIMD optimizations in libfuzzers Change-Id: I18c11e43c8f424bfa2b01c91b5fb7b79e3a73939 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7169185 Reviewed-by: Sam Parker-Haynes <sam.parker@arm.com> Commit-Queue: Matthias Liedtke <mliedtke@chromium.org> Cr-Commit-Position: refs/heads/main@{#103810} | 7 个月前 | |
[wasm][fuzzer] compare global and memory traces for differential fuzzing Compare and print the differences in the memory and global traces. The purpose is to assist in finding the specific instructions that caused the differences that were detected by the differential fuzzing. Bug: 436219201 Change-Id: If162278462d2a509864e7f2643f71a57a49b755b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6943430 Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Matthias Liedtke <mliedtke@chromium.org> Commit-Queue: Nikolas Kaipel <nikolaskaipel@google.com> Cr-Commit-Position: refs/heads/main@{#102746} | 9 个月前 | |
[heap] Add optional "may grow" hint for heap allocations This CL adds the capability to pass optional hints to heap allocations. In particular this CL adds a "may grow" hint but we can use this for other features in the future. The motivation behind "may grow" is the resizing of large objects that we now support using TryResizeLargeObject(). With out current "first fit" allocation strategy in the region allocation, we simply allocate a large object in the first free region large enough for the allocation. However, this might not work well with resizing because usually we start with a small allocation which we grow later if necessary. We can now run into situations were resizing often fails because we allocated in a small region initially with no room left for growing. The "may grow" hint should solve this by instead allocating in the largest free region instead which should enable us to grow the object to its final size successfully. Since we only grow the last allocation this should only fail if the the largest free region is not large enough for the final objects anyways and a GC needs to happen. In order to implement this, the allocation hint needs to be passed down all the way from the factory allocation method to RegionAllocator. This CL solves this by introducing a V8-internal AllocationHint class that we pass down from the factory method to the MemoryAllocator. In the MemoryAllocator we then need to pass the allocation hint through the V8 API-exposed v8::PageAllocator method. So we can't use our internal AllocationHint type for this. That's why this CL also adds a new v8::PageAllocator::AllocationHint class and a new method v8::PageAllocator::AllocatePages() on the API. This new method receives the allocation hint as an additional argument. The BoundedPageAllocator can then use the allocation hint to change the allocation strategy for RegionAllocator's AllocateRegion(). Bug: 409069381 Change-Id: I60ad4c6da56b2555d86a2f33b7d5f1640329d776 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6495193 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#100119} | 1 年前 | |
[cleanup] Modernize std::*::value and ::type Mechanically replacing std::foo<X>::value with std::foo_v<X>, and the same for ::type -> _t. Change-Id: I543dda07ba4c95534cdcd51f1f438f2626be8273 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6491388 Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#99940} | 1 年前 | |
[sandbox] Activate sandbox hardware support in cctests Similar to crrev.com/c/6718196 with this CL we now activate sandbox hardware support (if available) for cctests. As there are now a lot more thread entrypoints that need to perform the per-thread initialization of sandbox hardware support, with this CL we now also introduce a convenience function for that purpose: v8::SandboxHardwareSupport::PrepareCurrentThreadForHardwareSandboxing. Bug: 350324877, 431949927 Cq-Include-Trybots: luci.v8.try:v8_linux64_pku_dbg,v8_linux64_pku_rel Change-Id: Ic693a71736785215503f7125a1cec908fe7d3905 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6734245 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Samuel Groß <saelo@chromium.org> Cr-Commit-Position: refs/heads/main@{#101421} | 11 个月前 | |
[sandbox] Remove kDefaultCodeEntrypointTag, pt.1 This is a step towards making code entrypoint tag verification strict. This CL - introduces kCodeEntrypointTagForTesting, - introduces CodeKind::FOR_TESTING_JS in addition to existing CodeKind::FOR_TESTING in order to assign them different code entrypoint tags (kJSEntrypointTag for the former and kCodeEntrypointTagForTesting for the latter), - add SBXCHECK for Code object's entrypoint tags when generating calls and tail calls to compile-time known Code objects, - introduce Linkage::GetCPPBuiltinCallDescriptor() - a CEntry call descriptor customized for CPP builtins, - replaces some of the kDefaultCodeEntrypointTag usages with correct tags, - fixes usages of entrypoint tags in various code generation unit tests. Drive-by: - assign proper descriptor for GenericJSToWasmInterpreterWrapper builtin, - make Builtins::CallInterfaceDescriptorFor() work for bytecode handlers, - make switches over CodeKind values case-complete. Bug: 435630464 Change-Id: I2e34666df5314b0cd4e604a4deaf74e2f0de6f1a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6976541 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Darius Mercadier <dmercadier@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#102733} | 9 个月前 | |
[flags] Let FLAG_VALUE_SCOPE support multiple flag types Exposes the underlying flag type as FlagValue::underlying_type. The FLAG_VALUE_SCOPE() macro then uses this underlying_type as the template parameter for FlagScope<T>, instead of hardcoding bool. This permits using the FLAG_VALUE_SCOPE() macro for non-bool flags. Change-Id: I84b79b059c1dbb29238d5579cc3706e70adae8b8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5474003 Reviewed-by: Nikolaos Papaspyrou <nikolaos@chromium.org> Commit-Queue: Caitlin Potter <caitp@igalia.com> Cr-Commit-Position: refs/heads/main@{#93530} | 2 年前 | |
[test] Migrate cctest/test-sloppy-equality to unittests/ Bug: v8:12781 Change-Id: I1b0be6803d6a9f4ab7071bc3ae5abeb8f29ce9c9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3829753 Commit-Queue: Emanuel Ziegler <ecmziegler@chromium.org> Reviewed-by: Emanuel Ziegler <ecmziegler@chromium.org> Cr-Commit-Position: refs/heads/main@{#82680} | 3 年前 | |
[compile hints] Add compile hints to the streaming API Bug: chromium:1406506 Change-Id: I26d804f928eb34ea1bf5be191016fa13c7993fec Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4590332 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/main@{#88105} | 3 年前 | |
[hole] Remove unneeded hole value checks Undo a bunch of work which added by-value hole checks. Originally we wanted to make holes fully unmapped, including their map pointer, so that potential hole values would have to be checked by pointer value rather than map checks. This turned out to be tricky, partially because the optimizing compiler could hoist map reads above hole checks, and partially because the extra hole value checks ended up with performance regressions. In https://crrev.com/c/7156717 we switched to keeping the holes' maps mapped with an unmapped payload after the map (very similar approach to the WasmNull). This means that all those hole checks we added are now unnecessary, since they were already covered by the existing map-based checks. We can also remove the --assert-hole-checked-by-value flag and fuzzing, since this is no longer an invariant we want to preserve. Bug: 434179415 Change-Id: I9399498d89592127e4291b8acffee83a3ba70052 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7206087 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#103982} | 7 个月前 | |
[test] Migrate cctest/compiler/test-codegen to unittests/ This changeset include: 1. [prepare for migrate] move cctest/compiler/value-helper.h, cctest/compiler/c-signature.h, and cctest/compiler/call-tester.h to test/common directory because both test-codegen and a lot of cctest file include it. 2. [prepare for migrate] separate the tester helper part of test-codegen into a new codegen-tester file. 3. finally, migrate test-codegen.cc to codegen-unittest.cc Bug: v8:12781 Change-Id: Ia2f52c1d3b6b62501066dc1c4308a2c09d699e92 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3831146 Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#82630} | 3 年前 | |
Fix nan/inf values under under the value-helper Some of the uint32_array values are not currently set correctly. This CL introduces a series of SNaN, QNaN and Inf values as discussed under https://crrev.com/c/6617247. This CL also adds Inf checking to turboshaft constant folding as a continuation of https://crrev.com/c/6592451. Dealing with "inf + -inf" as inputs is platform specific. Change-Id: Ib1615f80731b714b47d7d91330de5b13157c5a4f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6621057 Commit-Queue: Milad Farazmand <mfarazma@redhat.com> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/main@{#100765} | 1 年前 |