- 26 Apr, 2022 1 commit
-
-
Clemens Backes authored
This adds the implementation of the {AssemblerBufferCache} class. PKU-protected memory is allocated via the {WasmCodeManager}, which has access to the actual protection key. R=thibaudm@chromium.org Bug: v8:12809 Change-Id: Id26abd6f98248d5c646ae337ccb903d3e168bed1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3593137Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#80181}
-
- 25 Apr, 2022 2 commits
-
-
Igor Sheludko authored
This CL extends BoundedPageAllocator with PageFreeingMode parameter which controls how pages should be freed: by setting permissions to kNoAccess (preferred) or by discarding pages (Apple Silicon specific behavior for RWX pages). The latter mode allows to ensure that once pages are configured with RWX permissions they are never reconfigured to anything else again. The new mode will be used in a follow-up CL. Bug: v8:12797 Change-Id: I3277f56ea6fee9c9b38b1682e68c22e66e9a02a4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3606228Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#80162}
-
Tobias Tebbi authored
TurboShaft is a new, CFG-based IR for TurboFan. This CL adds the basic IR and bidirectional translation from/to TurboFan's sea-of-nodes-based IR for some common operators (still incomplete even for JS). Bug: v8:12783 Change-Id: I162fdf10d583a9275a9f655f5b44b888faf813f6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3563562Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/main@{#80136}
-
- 22 Apr, 2022 4 commits
-
-
Milad Fa authored
There is currently a bug in docker where fstat may not return the correct device id and as a result a check under `OS::RemapPages, stat_buf.st_dev != enclosing_region.dev` fails, details on the bug: https://github.com/moby/moby/issues/43512 Platform specific page sizes are also defined for kMaxPageSize to fix compilation errors. Change-Id: I026609329aa6432eda4f1880a0f586c0c2162461 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3601211Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Junliang Yan <junyan@redhat.com> Commit-Queue: Milad Farazmand <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/main@{#80111}
-
Tobias Tebbi authored
This reverts commit 267b962d. Reason for revert: Flake turned out to not be reproducible: https://ci.chromium.org/ui/p/v8/builders/try.triggered/v8_flako/b8816185753319345009/overview Original change's description: > Revert "[base/platform] Simplify fast TLS on macOS" > > This reverts commit 9cdee4f4. > > Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Mac64%20-%20debug/38658/overview > > Original change's description: > > [base/platform] Simplify fast TLS on macOS > > > > Since the TLS offset is constant across all supported OS releases, we > > no longer need to adjust it, nor to read it at runtime. This also aligns > > the code in V8 with what is done in Chromium. > > > > Change-Id: I0f3c54da39a776406083c897de888f06c61852b8 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3599481 > > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > > Commit-Queue: Benoit Lize <lizeb@chromium.org> > > Cr-Commit-Position: refs/heads/main@{#80106} > > Change-Id: Ie6371c2ad12ed6f63be51b819083a7c0c4e22751 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3602502 > Auto-Submit: Tobias Tebbi <tebbi@chromium.org> > Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> > Commit-Queue: Tobias Tebbi <tebbi@chromium.org> > Owners-Override: Tobias Tebbi <tebbi@chromium.org> > Cr-Commit-Position: refs/heads/main@{#80108} Change-Id: I6c50a568751a3892b82fe2dce6fe940fce293b3d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3602503 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Owners-Override: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/main@{#80110}
-
Tobias Tebbi authored
This reverts commit 9cdee4f4. Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Mac64%20-%20debug/38658/overview Original change's description: > [base/platform] Simplify fast TLS on macOS > > Since the TLS offset is constant across all supported OS releases, we > no longer need to adjust it, nor to read it at runtime. This also aligns > the code in V8 with what is done in Chromium. > > Change-Id: I0f3c54da39a776406083c897de888f06c61852b8 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3599481 > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Commit-Queue: Benoit Lize <lizeb@chromium.org> > Cr-Commit-Position: refs/heads/main@{#80106} Change-Id: Ie6371c2ad12ed6f63be51b819083a7c0c4e22751 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3602502 Auto-Submit: Tobias Tebbi <tebbi@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Owners-Override: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/main@{#80108}
-
Benoît Lizé authored
Since the TLS offset is constant across all supported OS releases, we no longer need to adjust it, nor to read it at runtime. This also aligns the code in V8 with what is done in Chromium. Change-Id: I0f3c54da39a776406083c897de888f06c61852b8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3599481Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Benoit Lize <lizeb@chromium.org> Cr-Commit-Position: refs/heads/main@{#80106}
-
- 20 Apr, 2022 2 commits
-
-
Benoît Lizé authored
Reason for reland: Fixed Fuchsia build. Original change's description: > [builtins] Remap builtins on Linux > > This is a CL similar to > https://chromium-review.googlesource.com/c/v8/v8/+/3553006, but on Linux > rather than macOS. The goal is to allow builtins to use short builtin > calls without paying a memory cost, by remapping rather than copying > them. > > However, while macOS has a system call making this easier, on Linux we > don't have one on most kernels. There is the recently-introduced > mremap(MREMAP_DONTUNMMAP), which is available in 5.7, but only works on > anonymous mappings until 5.13, which is too recent for most Android > devices. > > Instead, we open() the file containing the builtins, and mmap() it at > the desired location. > > Change-Id: I4524f349948b8f48c4536cf392a1cd179662a6cc > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3570426 > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Jakob Linke <jgruber@chromium.org> > Commit-Queue: Benoit Lize <lizeb@chromium.org> > Cr-Commit-Position: refs/heads/main@{#80022} Change-Id: I0cc8cf510bd2cb8621130bea8406d79aa209948c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3596164Reviewed-by:
Jakob Linke <jgruber@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Benoit Lize <lizeb@chromium.org> Cr-Commit-Position: refs/heads/main@{#80049}
-
Victor Gomes authored
Since next() comes from ThreadedListTraits, the users of this class can modify the list by modifying the next pointer. This however breaks the invariant that `tail_` points to the last element of the list. We ensure this invariant lazily. This should be _almost_ no effect for users that do not manually modify the next pointer. Change-Id: If46283ab4fc5036a81f353b25823b0fd39b3e232 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3578803Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Victor Gomes <victorgomes@chromium.org> Cr-Commit-Position: refs/heads/main@{#80042}
-
- 19 Apr, 2022 3 commits
-
-
Shu-yu Guo authored
This reverts commit b1dd8287. Reason for revert: Breaking fuschia build https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Fuchsia%20-%20builder/13592/overview Original change's description: > [builtins] Remap builtins on Linux > > This is a CL similar to > https://chromium-review.googlesource.com/c/v8/v8/+/3553006, but on Linux > rather than macOS. The goal is to allow builtins to use short builtin > calls without paying a memory cost, by remapping rather than copying > them. > > However, while macOS has a system call making this easier, on Linux we > don't have one on most kernels. There is the recently-introduced > mremap(MREMAP_DONTUNMMAP), which is available in 5.7, but only works on > anonymous mappings until 5.13, which is too recent for most Android > devices. > > Instead, we open() the file containing the builtins, and mmap() it at > the desired location. > > Change-Id: I4524f349948b8f48c4536cf392a1cd179662a6cc > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3570426 > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Jakob Linke <jgruber@chromium.org> > Commit-Queue: Benoit Lize <lizeb@chromium.org> > Cr-Commit-Position: refs/heads/main@{#80022} Change-Id: I0093fe84216f8c8fd1a8691c53817e578d92fa40 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3594009 Auto-Submit: Shu-yu Guo <syg@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Shu-yu Guo <syg@chromium.org> Owners-Override: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/main@{#80028}
-
Benoît Lizé authored
This is a CL similar to https://chromium-review.googlesource.com/c/v8/v8/+/3553006, but on Linux rather than macOS. The goal is to allow builtins to use short builtin calls without paying a memory cost, by remapping rather than copying them. However, while macOS has a system call making this easier, on Linux we don't have one on most kernels. There is the recently-introduced mremap(MREMAP_DONTUNMMAP), which is available in 5.7, but only works on anonymous mappings until 5.13, which is too recent for most Android devices. Instead, we open() the file containing the builtins, and mmap() it at the desired location. Change-Id: I4524f349948b8f48c4536cf392a1cd179662a6cc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3570426Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Jakob Linke <jgruber@chromium.org> Commit-Queue: Benoit Lize <lizeb@chromium.org> Cr-Commit-Position: refs/heads/main@{#80022}
-
Clemens Backes authored
AtomicWord will either alias Atomic32 or Atomic64, depending on the platform. By slightly changing the definition to encode this directly instead of relying on intptr_t, we can get rid of a number of compatibility helpers that cast between pointers to equally sized atomics. R=mlippautz@chromium.org Bug: v8:12425 Change-Id: I04e8433cba5af8cf398d75d7832b84680109cf8b Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3586988Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#80017}
-
- 12 Apr, 2022 1 commit
-
-
Victor Gomes authored
We track untagged values through the InterpreterFrameState, that allows us to re-use already emitted CheckedSmiUntag and elide CheckedSmiTag whenever the next node wants the untagged value as input. It uses LoadRegisterTaggedValue, LoadRegisterSmiUntaggedValue and accumulator variants as helper in the graph builder. Spilled values can now be untagged, since we currently do not support stack slot re-use, we use a ZoneVector to keep track of the stack slot representation. We tag (lazily) any value that will be passed as input to a Phi node. Bug: v8:7700 Change-Id: I34cb69c8f1fbeb6a8158a251a4dd2e114e894ea0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3574559Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Victor Gomes <victorgomes@chromium.org> Cr-Commit-Position: refs/heads/main@{#79939}
-
- 11 Apr, 2022 1 commit
-
-
Jakob Gruber authored
This is a reland of commit 51b99213 Fixed in reland: - bytecode_age was incorrectly still accessed as an int8 (instead of int16). - age and osr state were incorrectly reset on ia32 (16-bit write instead of 32-bit). Original change's description: > [osr] Add an install-by-offset mechanism > > .. for concurrent OSR. There, the challenge is to hit the correct > JumpLoop bytecode once compilation completes, since execution has > moved on in the meantime. > > This CL adds a new mechanism to request installation at a specific > bytecode offset. We add a new `osr_install_target` field to the > BytecodeArray: > > bitfield struct OSRUrgencyAndInstallTarget extends uint16 { > osr_urgency: uint32: 3 bit; > osr_install_target: uint32: 13 bit; > } > > // [...] > osr_urgency_and_install_target: OSRUrgencyAndInstallTarget; > bytecode_age: uint16; // Only 3 bits used. > // [...] > > Note urgency and install target are packed into one 16 bit field, > we can thus merge both checks into one comparison within JumpLoop. > Note also that these fields are adjacent to the bytecode age; we > still reset both OSR state and age with a single (now 32-bit) > store. > > The install target is the lowest 13 bits of the bytecode offset. > When set, every reached JumpLoop will check `is this my offset?`, > and if yes, jump into runtime to tier up. > > Drive-by: Rename BaselineAssembler::LoadByteField to LoadWord8Field. > > Bug: v8:12161 > Change-Id: I275d468b19df3a4816392a2fec0713a8d211ef80 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3571812 > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Commit-Queue: Jakob Linke <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/main@{#79853} Bug: v8:12161 Change-Id: I7c59b2a2aacb1d7d40fdf39396ec9d8d48b0b9ac Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3578543Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Jakob Linke <jgruber@chromium.org> Cr-Commit-Position: refs/heads/main@{#79911}
-
- 08 Apr, 2022 1 commit
-
-
Clemens Backes authored
Replace by a unary right fold using the comma operator. This also evaluates from left to right, so has the same semantics but uses standard C++17 syntax. R=tebbi@chromium.org Bug: v8:12425 Change-Id: I680800ba07b048ee85d9da4ae32c12825df14e54 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3576131Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#79877}
-
- 07 Apr, 2022 2 commits
-
-
Clemens Backes authored
Use C++17's std::conjunction together with std::is_same instead. R=leszeks@chromium.org Bug: v8:12425 Change-Id: I75a973f14f0642b00d390aa6ab4eb1ce0208c074 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3568478Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#79848}
-
Clemens Backes authored
They can be replaced by std::conjunction and c++17 folding expressions. R=tebbi@chromium.org Bug: v8:12425 Change-Id: I109ac904245aab431f11752eff5129fd4361de8a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3570428Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#79843}
-
- 06 Apr, 2022 2 commits
-
-
Clemens Backes authored
Replace by std types defined in <type-traits> since C++17. R=mslekova@chromium.org Bug: v8:12425 Change-Id: I7ec8454634ecb63a3da4f93412d7a6c5002bb7c6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3572045Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#79818}
-
Clemens Backes authored
Use C++17's std::conjunction instead. R=leszeks@chromium.org Bug: v8:12425 Change-Id: I004a1bb4fe1b09f441f8822075a72fd20fc90fec Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3570429Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#79803}
-
- 05 Apr, 2022 1 commit
-
-
Clemens Backes authored
Use C++17's std::void_t instead. R=leszeks@chromium.org Bug: v8:12425 Change-Id: I1367af170505ed97a725e22f6b60cce056f72cb1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3568476Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#79783}
-
- 04 Apr, 2022 1 commit
-
-
jameslahm authored
- Add ConvertUtf8StringToUtf16 to convert utf8 encoded file path to utf16 encoded path on windows. - Add unicode filename support in OS::FOpen, OS::MemoryMappedFile::open and OS::MemoryMappedFile::create on windows. Bug: v8:12541 Change-Id: I65396c3211355e41e8952bc0587ff01bbb720f9e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3538284Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#79742}
-
- 01 Apr, 2022 2 commits
-
-
Benoit Lize authored
For short builtin calls, the builtins are copied on the heap when they cannot be put close enough to be in range of relative calls. This costs memory, as the embedded builtins are part of the binary, and mapped from the binary, and as a consequence shared with all running processes. Rather than copying the memory, we can remap it at a different address, avoiding the memory cost. This CL does that, on ARM64 macOS only for now. This saves at least ~1.4MiB of memory per V8 process. See below the output of vmmap <PID>: [...] Memory Tag 255 7408308000-740833c000 [ 208K 144K 144K 0K] r-x/rwx SM=ZER Memory Tag 255 740833c000-7408340000 [ 16K 0K 0K 0K] ---/rwx SM=ZER Memory Tag 255 7408344000-7408348000 [ 16K 0K 0K 0K] ---/rwx SM=ZER Memory Tag 255 7408348000-740837c000 [ 208K 144K 144K 0K] r-x/rwx SM=ZER Memory Tag 255 740837c000-740fe80000 [123.0M 0K 0K 0K] ---/rwx SM=ZER mapped file 740fe80000-740ffe4000 [ 1424K 1328K 0K 0K] r-x/rwx SM=COW ...pp/Contents/Frameworks/Chromium Framework.framework/Versions/102.0.4958.0/Chromium Framework Memory Tag 255 740ffe4000-7410000000 [ 112K 0K 0K 0K] ---/rwx SM=ZER The "208K" regions are 256kiB code pages, minus the header and guard pages, meaning that they are code chunks. The mapped file are the remapped builtins, showing that they aren't copied, but remapped from the binary. Bug: chromium:1298417 Change-Id: Ia30a43e671726d01450a7db0ecb7777b34763053 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3553006Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Benoit Lize <lizeb@chromium.org> Cr-Commit-Position: refs/heads/main@{#79716}
-
Yuly Novikov authored
Bug: chromium:1292528 Change-Id: If4da2ec92afb7b4fe9942778eca385344b9b6409 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3563539 Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#79709}
-
- 21 Mar, 2022 1 commit
-
-
Tobias Tebbi authored
Bug: chromium:1305925 Change-Id: I95dab2250ae60739a70c0d1f6ec30121d0ddcf8f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3537007Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/main@{#79554}
-
- 18 Mar, 2022 1 commit
-
-
Michael Lippautz authored
This reverts commit cf25b3bc. Reason for revert: https://crbug.com/1307471. TraceTrait must only be used during marking. Original change's description: > cppgc: Rework prefinalizers > > Move the check for whether an object is live or dead out of the > prefinalizer trampoline. Moving it into the backend allows for > inlining the check which avoids a call to the trampoline for live > objects. > > On catapult benchmarks (e.g. cnn:2021, nytimes:2020), there's often > ~2k finalizers registered. In order to avoid memory overhead in the > range of a few KB, we store the fact whether the object points to the > base object payload in the LSB of the pointer. For caged builds this > is replaced with just storing the index into the cage for both object > and base object payload. > > Locally saves around ~10% of atomic sweeping processing time which is > in the order of .05ms. > > Bug: v8:12698 > Change-Id: I198205a6b1d57fc2df821ee4e73e53dc6f825ff5 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3497764 > Reviewed-by: Omer Katz <omerkatz@chromium.org> > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/main@{#79442} Bug: v8:12698, chromium:1307471 Change-Id: I5c4e70d46cb99af66c77f0c013625b6af6c6eb8e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3535781 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#79527}
-
- 17 Mar, 2022 1 commit
-
-
Shu-yu Guo authored
Bug: v8:12547 Change-Id: Ie27831b793f214368a003adac24b7c92f1a5fc11 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3518426Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/main@{#79504}
-
- 16 Mar, 2022 1 commit
-
-
Vasili Skurydzin authored
Change-Id: I2ff012f0da2c536d78e12c7b8f02fe2d28b7b7ea Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3526338Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Milad Farazmand <mfarazma@redhat.com> Commit-Queue: Vasili Skurydzin <vasili.skurydzin@ibm.com> Cr-Commit-Position: refs/heads/main@{#79501}
-
- 15 Mar, 2022 2 commits
-
-
Samuel Groß authored
This is necessary due to the indirect call to memfd_create. The function is only used for testing though. Bug: v8:12682 Change-Id: Ifb9fd855213064165fa4c2125846ff592368b625 No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3525534Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Samuel Groß <saelo@chromium.org> Auto-Submit: Samuel Groß <saelo@chromium.org> Cr-Commit-Position: refs/heads/main@{#79487}
-
Samuel Groß authored
The use of memfd_create causes V8 to require glibc 2.27 which wasn't previously needed. This CL rewrites the affected code to check at runtime whether memfd_create is available and otherwise use mkstemp. Bug: v8:12682 Change-Id: I84dc3f5ab7504cec2b599bc92501ddecc2ae22cf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3516870Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Samuel Groß <saelo@chromium.org> Cr-Commit-Position: refs/heads/main@{#79486}
-
- 14 Mar, 2022 1 commit
-
-
Milad Fa authored
Running `OS::AllocatePageSize()` on PPC simulator (which runs on x64 Linux) will make a `sysconf(_SC_PAGESIZE)` call which returns the native x64 Linux page size and not the PPC specific page size. This can cause a problem if used along side the current value of `kPageSizeBits` which is set to use PPC value even on Sim. As an example a newly added DHCECK under https://crrev.com/c/3497363 was failing on PPC Sim as a call to `AllocatableMemoryInDataPage` was being made which used kPageSizeBits on Sim. Meanwhile another function was using the `page_size_bits` value which gets set by _SC_PAGESIZE. The mismatch caused an incorrect final value being generated which failed the DCHECK. Change-Id: Iaf2d9cff16bbe5f6be5f3ec6a13b99be94776f48 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3519758Reviewed-by:
Junliang Yan <junyan@redhat.com> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Milad Farazmand <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/main@{#79465}
-
- 10 Mar, 2022 4 commits
-
-
Michael Lippautz authored
Move the check for whether an object is live or dead out of the prefinalizer trampoline. Moving it into the backend allows for inlining the check which avoids a call to the trampoline for live objects. On catapult benchmarks (e.g. cnn:2021, nytimes:2020), there's often ~2k finalizers registered. In order to avoid memory overhead in the range of a few KB, we store the fact whether the object points to the base object payload in the LSB of the pointer. For caged builds this is replaced with just storing the index into the cage for both object and base object payload. Locally saves around ~10% of atomic sweeping processing time which is in the order of .05ms. Bug: v8:12698 Change-Id: I198205a6b1d57fc2df821ee4e73e53dc6f825ff5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3497764Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#79442}
-
Igor Sheludko authored
... for 32-bit Windows. When the TLS value is not set the TlsExpansionSlots field of the TEB struct might be NULL in which case the InternalGetExistingThreadLocal should return NULL too. Bug: v8:12653 Change-Id: Ic6c6d8e51e2447551c372720fad0967e9201f3dc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3513835 Auto-Submit: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#79437}
-
Dmitrii Tsykunov authored
When compiled with `target_cpu = "x86"` several VirtualAddressSpaceTest's crashed with segmentation fault when calling VirtualAlloc2. Explicitly specifying calling convention fixed the issue. Change-Id: Ie505006be0d44525c935c89b84caa2c373cea566 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3501836Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Auto-Submit: Dmitrii Tsykunov <dtsykunov1@yandex-team.ru> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#79436}
-
Shu-yu Guo authored
Atomics.load and Atomics.store now accept string field names as the 2nd argument when the 1st argument is a shared struct. Currently these are implemented in C++ and not yet in CSA. Bug: v8:12547 Change-Id: Ideeafc13fb6a925540edf3dc17428c8e50bcee79 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3510837 Commit-Queue: Shu-yu Guo <syg@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#79431}
-
- 07 Mar, 2022 1 commit
-
-
Samuel Groß authored
Instead of returning a boolean success/failure value, the Free* methods of the VirtualAddressSpace API now terminate the process on failure, as this implies a bug in the caller. This is simpler than CHECKing for success in all callers and also provides more details about the possible cause of the failure. Bug: v8:12656 Change-Id: I5b469ae2c564068cff74e60b7e98f6a4776a239d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3506992Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Samuel Groß <saelo@chromium.org> Cr-Commit-Position: refs/heads/main@{#79388}
-
- 03 Mar, 2022 1 commit
-
-
Michael Lippautz authored
The utility type is independent of V8 and useful for cppgc as well. Move to base/ to allow reusing. Change-Id: I9de9b4a87bb113fb4c2232d90253afb0f38faa68 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3497336Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#79346}
-
- 25 Feb, 2022 1 commit
-
-
Clemens Backes authored
Instead of returning false and failing in the caller, do fail inside the PageAllocator directly. Failure to free pages should never happen, and handling this case in the PageAllocator directly gives us better options to surface more detailed information in follow-up patches. R=mlippautz@chromium.org Bug: v8:12656, chromium:1299735 Change-Id: I6d2aa3a5613c0f1102210fccbccc6ad0e522a6ed Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3484323Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#79276}
-
- 24 Feb, 2022 2 commits
-
-
Clemens Backes authored
Instead of returning a boolean value, and then failing in the caller via a CHECK, do fail directly inside OS::Free, OS::Release and similar functions. The PageAllocator methods still return a bool (which is always true) to avoid changing the public API. R=mlippautz@chromium.org Bug: v8:12656, chromium:1299735 Cq-Include-Trybots: luci.v8.try:v8_fuchsia_compile_rel Change-Id: Ide02e7d893e1603326c629797a7defac8bf258ef Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3483671Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#79258}
-
Leszek Swirski authored
Maglev is mid-tier optimising compiler designed mainly for compilation speed that can still generate good code for straightforward JS. This initial commit is an MVP for Maglev which can compile and run some very simple code, and sets up a framework that we can build upon. Design: https://docs.google.com/document/d/13CwgSL4yawxuYg3iNlM-4ZPCB8RgJya6b8H_E2F-Aek/edit# Bug: v8:7700 Change-Id: I5ae074ae099126c2c0d50864ac9b3d6fa5c9e85a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3483664Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#79247}
-
- 22 Feb, 2022 1 commit
-
-
Hans Wennborg authored
Found by v8_check_header_includes=true use_custom_libcxx=false is_clang=false Bug: chromium:1298421 Change-Id: Ia4e40d1abcc7075d2487aa6487db871b5a75b5a1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3478214Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Hans Wennborg <hans@chromium.org> Cr-Commit-Position: refs/heads/main@{#79204}
-