- 20 Oct, 2020 1 commit
-
-
Edward Lesmes authored
Generate DIR_METADATA files and remove metadata from OWNERS files for v8. R=jkummerow@chromium.org, ochang@chromium.org, yangguo@chromium.org Bug: chromium:1113033 Change-Id: I82cbb62e438d82dbbc408e87120af39fa9da0afa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2476680Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org> Auto-Submit: Edward Lesmes <ehmaldonado@chromium.org> Cr-Commit-Position: refs/heads/master@{#70669}
-
- 16 Oct, 2020 1 commit
-
-
Pierre Langlois authored
Executable V8 pages include 3 reserved OS pages: one for the writable header and two as guards. On systems with 64k OS pages, the amount of allocatable space left for objects can then be quite smaller than the page size, only 64k for each 256k page. This means regular code objects cannot be larger than 64k, while the maximum regular object size is fixed to 128k, half of the page size. As a result code object never reach this limit and we can end up filling regular pages with few large code objects. To fix this, we change the maximum code object size to be runtime value, set to half of the allocatable space per page. On systems with 64k OS pages, the limit will be 32k. Alternatively, we could increase the V8 page size to 512k on Arm64 linux so we wouldn't waste code space. However, systems with 4k OS pages are more common, and those with 64k pages tend to have more memory available so we should be able to live with it. Bug: v8:10808 Change-Id: I5d807e7a3df89f1e9c648899e9ba2f8e2648264c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2460809Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Pierre Langlois <pierre.langlois@arm.com> Cr-Commit-Position: refs/heads/master@{#70569}
-
- 12 Oct, 2020 1 commit
-
-
Ng Zhi An authored
Manual copy and paste of all code found in the namespace base. I didn't change any of the implementation code. Pull in a new file for optimized ARM implementation. Added a list of adaptions made to document what is different from chromium. Change-Id: I88b4af45437506cf57755e48fdfc88027a5aed33 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2436610 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#70452}
-
- 07 Oct, 2020 1 commit
-
-
Jakob Kummerow authored
This is a "minimal" change to achieve the required goal: seeing that there is only one place where we need to indicate that memory should be reserved with MAP_JIT, we can add a value to the Permissions enum instead of adding a second, orthogonal parameter. That way we avoid changing public API functions, which makes this CL easier to undo once we have platform-independent w^x in Wasm. Bug: chromium:1117591 Change-Id: I6333d69ab29d5900c689f08dcc892a5f1c1159b8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2435365 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#70379}
-
- 22 Sep, 2020 2 commits
-
-
Jakob Kummerow authored
Choose the page size based on V8_HOST_ARCH_ARM64 (i.e. we're building an arm64 binary) instead of V8_TARGET_ARCH_ARM64 (i.e. V8's compilers are emitting arm64 instructions, which is the case in simulator builds as well). Drive-by: - use V8_TARGET_OS_MACOSX instead of __APPLE__ - drop implementation difference between AllocatePageSize and CommitPageSize on POSIX (they must return the same value anyway) This continues and obsoletes the work at https://chromium-review.googlesource.com/c/v8/v8/+/2314102 . Bug: chromium:1107945, chromium:1128932 Change-Id: Iaaa509dd496ff581ddda4d957bc3d35d806cf81e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2421817 Auto-Submit: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#70047}
-
johnx authored
See b/169093796 for details Change-Id: Icdb6fac9d3063cc0dedd68e318805b88f4c06bc6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2421982 Auto-Submit: John Xu <johnx@google.com> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#70040}
-
- 09 Sep, 2020 4 commits
-
-
Jakob Kummerow authored
Apple's upcoming arm64 devices will prevent rwx access to memory, but in turn provide a new per-thread way to switch between write and execute permissions. This patch puts that system to use for the WebAssembly subsystem. The approach relies on CodeSpaceWriteScope objects for now. That isn't optimal for background threads (which could stay in "write" mode permanently instead of toggling), but its simplicity makes it a good first step. Background: https://developer.apple.com/documentation/apple_silicon/porting_just-in-time_compilers_to_apple_silicon Bug: chromium:1117591 Change-Id: I3b60f0efd34c0fed924dfc71ee2c7805801c5d42 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2378307 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#69791}
-
Camillo Bruni authored
For testing log file parsing from JavaScript we need to be able to read open log files directly. This makes the default log file mode consistent with the temporary one. Bug: v8:1064 Change-Id: Ic77ba6864efe633e54792fc683edc2fe07af4cd5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2400993Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#69783}
-
Sathya Gunasekaran authored
This reverts commit 23531d82. Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/33007? Original change's description: > Reland "[test][d8] Add d8.log.getAndStop helper" > > This is a reland of 95aa697b > > Original change's description: > > [test][d8] Add d8.log.getAndStop helper > > > > The new helper function allows us to write tests for log parsing > > without the need to first generating a log file. This makes it easier > > to spot errors when the log format changes. > > > > - Add d8 global variable > > - Add file_name accessor to Logger and Log classes > > - Change OS::LogFileOpenMode to w+ / wb+ > > - Use separate Log::WriteLogHeader method > > - Remove unused logger_ instance variable from Log > > > > Bug: v8:10644 > > Change-Id: Ifc7e35aa4e91b3f01f0847843263946e085944c3 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2387563 > > Commit-Queue: Camillo Bruni <cbruni@chromium.org> > > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > > Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#69715} > > Bug: v8:10644 > > TBR=verwaest@chromium.org > > Change-Id: I54741344834d88a376b74e2e3a2047e880a94624 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2396081 > Commit-Queue: Camillo Bruni <cbruni@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69769} TBR=mlippautz@chromium.org,cbruni@chromium.org,gsathya@chromium.org,verwaest@chromium.org Change-Id: I493315e0d6498f0fa9bed3409725bb52d554b53a No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:10644 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2400982Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#69770}
-
Camillo Bruni authored
This is a reland of 95aa697b Original change's description: > [test][d8] Add d8.log.getAndStop helper > > The new helper function allows us to write tests for log parsing > without the need to first generating a log file. This makes it easier > to spot errors when the log format changes. > > - Add d8 global variable > - Add file_name accessor to Logger and Log classes > - Change OS::LogFileOpenMode to w+ / wb+ > - Use separate Log::WriteLogHeader method > - Remove unused logger_ instance variable from Log > > Bug: v8:10644 > Change-Id: Ifc7e35aa4e91b3f01f0847843263946e085944c3 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2387563 > Commit-Queue: Camillo Bruni <cbruni@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69715} Bug: v8:10644 TBR=verwaest@chromium.org Change-Id: I54741344834d88a376b74e2e3a2047e880a94624 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2396081 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#69769}
-
- 07 Sep, 2020 2 commits
-
-
Camillo Bruni authored
This reverts commit 95aa697b. Reason for revert: breaks under tsan Original change's description: > [test][d8] Add d8.log.getAndStop helper > > The new helper function allows us to write tests for log parsing > without the need to first generating a log file. This makes it easier > to spot errors when the log format changes. > > - Add d8 global variable > - Add file_name accessor to Logger and Log classes > - Change OS::LogFileOpenMode to w+ / wb+ > - Use separate Log::WriteLogHeader method > - Remove unused logger_ instance variable from Log > > Bug: v8:10644 > Change-Id: Ifc7e35aa4e91b3f01f0847843263946e085944c3 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2387563 > Commit-Queue: Camillo Bruni <cbruni@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69715} TBR=mlippautz@chromium.org,cbruni@chromium.org,gsathya@chromium.org,verwaest@chromium.org Change-Id: Iad47d2f1e3391cae3c2f8c9e6c904c43925e1671 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:10644 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2396080Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#69717}
-
Camillo Bruni authored
The new helper function allows us to write tests for log parsing without the need to first generating a log file. This makes it easier to spot errors when the log format changes. - Add d8 global variable - Add file_name accessor to Logger and Log classes - Change OS::LogFileOpenMode to w+ / wb+ - Use separate Log::WriteLogHeader method - Remove unused logger_ instance variable from Log Bug: v8:10644 Change-Id: Ifc7e35aa4e91b3f01f0847843263946e085944c3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2387563 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#69715}
-
- 02 Sep, 2020 1 commit
-
-
Zequan Wu authored
The type of m is long in 64 bits build, and results implicit conversion loses integer precision, which was found by improved clang warning (-Wshorten-64-to-32) Bug: chromium:1124085 Change-Id: Ic9f22508bd817a06d5c90162b1ac3554a7171529 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2391323 Commit-Queue: Zequan Wu <zequanwu@google.com> Auto-Submit: Zequan Wu <zequanwu@google.com> Reviewed-by:
Nico Weber <thakis@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#69686}
-
- 31 Aug, 2020 1 commit
-
-
Brendan Shanks authored
When running 64-bit Windows binaries on macOS using Wine, there is a conflict between macOS's use of GS to point to pthread thread-specific data, and Windows' use of GS to point to the TEB. Apple has reserved some TSD slots for use by Wine to store commonly-used TEB members (such as 0x30, the 'Self' pointer to the TEB). But, other direct GS accesses by Windows programs (such as to 'StackBase') will return macOS pthread data rather than the TEB member. This was causing a V8 unit test to crash on macOS under Wine. Using NtCurrentTeb() gets the 'Self' pointer first, then dereferences it to access the correct 'StackBase', fixing the crash. This turns GetStackStart() from one instruction into two. Chrome (http://crrev.com/c/2380425) and Crashpad also use NtCurrentTeb(). The 32-bit change isn't needed, but is just for consistency. Bug: chromium:1121842 Change-Id: I824f893aa451d8570142226be91840c964426f38 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2381941Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#69627}
-
- 25 Aug, 2020 1 commit
-
-
Pierre Langlois authored
We already make sure hints are 16K aligned on the Mac. On linux, it's possible to run with 64K pages enabled so we also need to align the hint there. Bug: v8:10808 Change-Id: I4ae7a56828135f6aa2980f164f25e2eb932b3cc0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2369176Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Pierre Langlois <pierre.langlois@arm.com> Cr-Commit-Position: refs/heads/master@{#69554}
-
- 24 Aug, 2020 1 commit
-
-
johnx authored
Starboard is the platform abstraction for Cobalt. This CL introduces all Cobalt changes in src/base/platform. The review was conducted mostly on: https://chromium-review.googlesource.com/c/v8/v8/+/2247918 See b/156155426 for background Tbr: mlippautz@chromium.org Change-Id: I6cd092304ba6485acd38e82aa2dc4505d7dfb0aa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2346090 Commit-Queue: John Xu <johnx@google.com> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#69530}
-
- 19 Aug, 2020 3 commits
-
-
Omer Katz authored
This CL adds a basic implementation of incremental marking for standalone GC. Followup CLs include: * Use bytes instead of time as deadline * Port incremental marking schedule from blink * Mark on allocation * Guarantees for progres/termination for standalone GC * etc... Calling StartIncrementalGarbageCollection triggers StartMarking which schedules incremental marking as non-nestable tasks. For unified heap, marking will continue running until it runs out of work but it won't finalize independently. For standalone, when incremental runs out of work it will schedule a new task in which it will finalize marking and trigger the rest of the GC. Users of standalone can also force finalization before incremental marking as finished using FinalizeIncrementalGarbageCollectionIfRunning. Calling CollectGarbage would also finalize an on-going incremental GC if one exists. Otherwise it will trigger an atomic GC. See the following doc for explanation of the various methods: https://docs.google.com/document/d/1ZhJY2fOoD8sH53ZxMh2927Zl8sXqA7azJgcQTWx-YKs/edit?usp=sharing Bug: chromium:1056170 Change-Id: I75ead414eb9da9f8b7f71c4638b9830fce7708ca Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2298009 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#69480}
-
Anton Bikineev authored
The issue popped up while implementing conservative stack scanning in V8. Bug: v8:10614 Change-Id: I7edc6ca1f248f45b10be0fa45e28a98fd2b03840 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2362651 Auto-Submit: Anton Bikineev <bikineev@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#69476}
-
Jakob Gruber authored
... to avoid the repeated pattern of calculating it. Bug: v8:8888 Change-Id: I4af5264aae6cfb8b6232b5aaf9ceb2cb568c29d0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2362692 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Auto-Submit: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#69469}
-
- 17 Aug, 2020 1 commit
-
-
Jakob Kummerow authored
This is a comment-only CL. Change-Id: I002b1765bfa839982ab11c22f744734fdd34d4ce Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2352788Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#69417}
-
- 11 Aug, 2020 1 commit
-
-
Jakob Gruber authored
This CL adds more systematic predicates to JSFunction to reason about available code kinds. Introduced terminology: - Attached code kinds are accessible directly from the JSFunction itself. - Available code kinds are either attached or accessible indirectly. - The Active code kind is the one that would be executed on the next function execution. Bug: v8:8888 Change-Id: I9468884dfe97a6cb73f8329b2b6cb62b622d3e7a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2345966 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Auto-Submit: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#69325}
-
- 03 Aug, 2020 1 commit
-
-
Clemens Backes authored
After allocating a new code space, we do some initial allocations in the new space (e.g. for the jump table). These allocations are not allowed to fail. If this in indeed what's happening in the linked bug, this CHECK will give fuzzers a chance to find us a reproducer. Drive-by: Introduce {WasmCodeAllocator::kUnrestrictedRegion} to remove magic constants. R=ahaas@chromium.org Bug: v8:1111266 Change-Id: Ia76721653226bd4aa346b89ffab0c80f67892794 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2333250 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#69204}
-
- 31 Jul, 2020 3 commits
-
-
Avi Drissman authored
Two of them were in comments; updated them to V8_OS_MACOSX. Two of them were incorrectly in #if statements. Updated them to V8_OS_MACOSX. Bug: chromium:823915, chromium:1105907 Change-Id: Ibfc0f8936dbc8cbf3b05a674e882bbc480d0b4c4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2331736Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Avi Drissman <avi@chromium.org> Cr-Commit-Position: refs/heads/master@{#69178}
-
Dan Elphick authored
This allows the configuration v8_enable_shared_ro_heap and v8_enable_pointer_compression on Linux and Android, although it still defaults to off. When pointer compression and read-only heap sharing are enabled, sharing is achieved by allocating ReadOnlyPages in shared memory that are retained in the shared ReadOnlyArtifacts object. These ReadOnlyPages are then remapped into the address space of the Isolate ultimately using mremap. To simplify the creation process the ReadOnlySpace memory for the first Isolate is created as before without any sharing. It is only when the ReadOnlySpace memory has been finalized that the shared memory is allocated and has its contents copied into it. The original memory is then released (with PC this means it's just released back to the BoundedPageAllocator) and immediately re-allocated as a shared mapping. Because we would like to make v8_enable_shared_ro_heap default to true at some point but can't make this conditional on the value returned by a method in the code we are yet to compile, the code required for sharing has been mostly changed to use ifs with ReadOnlyHeap::IsReadOnlySpaceShared() instead of #ifdefs except where a compile error would result due to the absence of a class members without sharing. IsReadOnlySpaceShared() will evaluate CanAllocateSharedPages in the platform PageAllocator (with pointer compression and sharing enabled) once and cache that value so sharing cannot be toggled during the lifetime of the process. Bug: v8:10454 Change-Id: I0236d752047ecce71bd64c159430517a712bc1e2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2267300 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#69174}
-
Dan Elphick authored
Excluded regions are no longer available to the RegionAllocator, so should not be freeable so actually enforce that and aAdd a test. Bug: v8:10454 Change-Id: I51c41cf0bf3d2eeb699b10b1fa02f5465d93b6aa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2330026Reviewed-by:
Igor Sheludko (OOO Aug 3-17) <ishell@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#69163}
-
- 30 Jul, 2020 1 commit
-
-
Dan Elphick authored
This adds new methods AllocateSharedPages, ReserveForSharedMemoryMapping and CanAllocateSharedPages to v8::PageAllocator, which if overridden allows the platform to declare that it supports allocation and remapping of shared memory. This interface is currently a work in progress so the new methods are marked "INTERNAL ONLY" and they may change without being first deprecated. An implementation of PageAllocator is provided that can allocate and map shared memory on Linux and Android, but no other platforms are yet supported. While Windows is not supported the interface has been designed to make this possible as AllocateSharedPages returns a SharedMemory object that wraps the shared memory and provides its own remap function. This should allow the SharedMemory object on windows to contain a mapping a to hFileMappingObject as required by MapViewOfFileEx. Bug: v8:10454 Change-Id: I2e601d49ea14da44867a102c823fa4e341cf0dab Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2306789Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#69154}
-
- 24 Jul, 2020 2 commits
-
-
Ng Zhi An authored
Using uint8_t[] causes decay to pointer issue, which manifests in copying garbage values in the call to WriteLittleEndianValue. Change it to use a std::array, which doesn't have the decaying behavior. Also add a regression test from comment#6 of the linked bug. Bug: v8:10731 Change-Id: I4a1ca69fe99806642e9931625ca7aeab6663f955 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2316465Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Bill Budge <bbudge@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#69052}
-
Ross McIlroy authored
This is a reland of ab7e89f1 Original change's description: > [TurboProp] Add PendingOperand for use by fast register allocator. > > Adds a pending operand type for use with the fast register allocator. > These operands chain together multiple operands together, enabling > the allocator to keep track of multiple pending operands, then > replace them all with the allocated operand in one go. > > BUG=v8:9684 > > Change-Id: I5d8150f3f26549a747a2e89e32e31135e89dff9c > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2292302 > Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69019} Bug: v8:9684 Change-Id: I60b902be82b766d98c0f08c9394fcac72d3b914a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2315994Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Auto-Submit: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#69042}
-
- 22 Jul, 2020 1 commit
-
-
Nico Weber authored
Bug: chromium:1107945 Change-Id: I0f721ccaf06c7ddaf0213448c29f48f5c57ccc6e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2310575 Auto-Submit: Nico Weber <thakis@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Nico Weber <thakis@chromium.org> Cr-Commit-Position: refs/heads/master@{#69000}
-
- 20 Jul, 2020 2 commits
-
-
Clemens Backes authored
Replace by inline constants with separators (single quotes) for better readability. R=mlippautz@chromium.org Bug: v8:10506 Change-Id: Iae7c72eeb9d463c63c2d135f6236edc6821d1e63 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2297379 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#68939}
-
Igor Sheludko authored
Change-Id: Ic7c829233668c0592c027d351f02890091d7acbd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2300479Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#68938}
-
- 16 Jul, 2020 2 commits
-
-
Igor Sheludko authored
1) turn static methods to instance ones. 2) change New/Delete to NewArray/DeleteArray getting array length as argument instead of raw size. 3) propagate type tags through allocate/delete methods of existing AllocationPolicy classes. This will allow implementing accounting of deallocated zone memory. Bug: v8:10572 Change-Id: Ib41c646044814ac6d75d50b2847bbb8964ce25d3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2300489Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#68904}
-
Igor Sheludko authored
... this reduces the size of VariableMap object by one word which in turn reduces zone memory pressure. The Scope class which contains VariableMap as a field is usually in top 5 of all allocated objects in zone memory. Bug: v8:9923 Change-Id: I79c6bd9ae97db72f24b831fd5e3733d8d7e4c0fd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2300486 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#68896}
-
- 15 Jul, 2020 2 commits
-
-
Igor Sheludko authored
... which gets the zone from its ZoneAllocationPolicy instance. This recovers memory regression caused by adding an AllocationPolicy instance into TemplateHashMapImpl and therefore to VariableMap. Bug: v8:10572 Change-Id: I7962b49e5f2669307e58b3ed7b1f29bab1c42cad Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2298002Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#68879}
-
Igor Sheludko authored
... this will avoid the need to pass AllocationPolicy to every method that can allocate/deallocate and allows to make deallocation method implementation stateful. The latter will also allow implementing accounting of deallocated zone memory. Adding one more field is generally fine because usually these hashmap objects are allocated on the stack or inside other rarely-allocated long-lived objects. The only exception is Scope class. The Scope objects are created very often during parsing and each of them has a VariableMap field. The Scope object size issue will be addressed in a follow-up CL. Bug: v8:10572 Change-Id: I63fbd41246cf2e568c8ba80c213d3e9caffc2c87 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2284992Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#68877}
-
- 14 Jul, 2020 1 commit
-
-
Ng Zhi An authored
There is a sign-extension bug happening when packing 2 32-bit ints into a 64-bit int. We are OR-ing int32_t with a uint64_t, so an integral conversion converts int32_t to uint64_t, which is a sign extension, and this gives unexpected results for a negative value: 0x80000000 | uint64_t{0} -> 0xffffffff80000000 What we want is 0x0000000080000000. Created a helper function to do this work of combining two uint32_t into one uint64_t. The use of this function will also ensure that if callers passed a int32_t, it would first be converted to a uint32_t, and will not have this sign extension bug. Sneaked a small regression test into the existing v128.const cctest, and also cleanup the loop to reset `expected` array to 0. Bug: chromium:1104033 Change-Id: Icaca4c5ba42077dd4463697b9220cdbca9974b5e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2293044 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#68850}
-
- 08 Jul, 2020 1 commit
-
-
Clemens Backes authored
Instead of having one method with a big switch, and specializing that method for each single opcode, we now have one proper method per opcode. This makes the code way more readable, and also reduces the compile time of liftoff-compiler.cc significantly. Unfortunately, we cannot use template specializations for this, since GCC does not support specializing the methods within an unspecialized templated class. Hence, we need to have another dispatch per opcode when generating the opcode handler table. I left a comment explaining why we do it this way. The upside of this is that we get nicer method names. R=thibaudm@chromium.org Bug: v8:10576 Change-Id: I8c7026177490893711c999217eeb1e4f2fbb5e36 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2282533 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#68732}
-
- 30 Jun, 2020 2 commits
-
-
Dominik Inführ authored
Release operation uses more expensive operations on some architectures. Change-Id: Iab84d92c84c791d429b6635641daadb2d608f791 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2276039Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#68622}
-
Zhi An Ng authored
This reverts commit fa9c6e17. Reason for revert: Didn't fix the build. Original change's description: > Revert "Add support for __declspec(nocf)." > > This reverts commit 0c58583b. > > Reason for revert: https://crbug.com/v8/10656 and failures in https://ci.chromium.org/p/v8/builders/ci/V8%20Win64%20-%20msvc/14135 > > Original change's description: > > Add support for __declspec(nocf). > > > > __declspec(nocf) syntax was added in https://reviews.llvm.org/D72167 > > and annotates that checks should not be added on indirect calls > > within that function. > > > > BUG=chromium:584575 > > > > Change-Id: Ib2e2d2a827186a9c1fd3de15356b2b04d6a69e49 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2270707 > > Reviewed-by: Clemens Backes <clemensb@chromium.org> > > Commit-Queue: Will Harris <wfh@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#68590} > > TBR=wfh@chromium.org,clemensb@chromium.org > > Change-Id: Icec64feb44715a65e905a93e0c47fb37d4f11a09 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: chromium:584575 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2274736 > Reviewed-by: Zhi An Ng <zhin@chromium.org> > Commit-Queue: Zhi An Ng <zhin@chromium.org> > Cr-Commit-Position: refs/heads/master@{#68598} TBR=wfh@chromium.org,clemensb@chromium.org,zhin@chromium.org Bug: chromium:584575 Change-Id: I0e305374c8325d87e4b18963da4e90802f136187 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2274356 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by:
Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#68599}
-
- 29 Jun, 2020 1 commit
-
-
Zhi An Ng authored
This reverts commit 0c58583b. Reason for revert: https://crbug.com/v8/10656 and failures in https://ci.chromium.org/p/v8/builders/ci/V8%20Win64%20-%20msvc/14135 Original change's description: > Add support for __declspec(nocf). > > __declspec(nocf) syntax was added in https://reviews.llvm.org/D72167 > and annotates that checks should not be added on indirect calls > within that function. > > BUG=chromium:584575 > > Change-Id: Ib2e2d2a827186a9c1fd3de15356b2b04d6a69e49 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2270707 > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Commit-Queue: Will Harris <wfh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#68590} TBR=wfh@chromium.org,clemensb@chromium.org Change-Id: Icec64feb44715a65e905a93e0c47fb37d4f11a09 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:584575 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2274736Reviewed-by:
Zhi An Ng <zhin@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#68598}
-