- 23 Jan, 2019 1 commit
-
-
Jakob Gruber authored
For jitless mode, we must be able to switch between the native regexp engine and interpreted regexps at runtime since --jitless is itself a runtime flag. This CL unconditionally compiles in the regexp interpreter in all builds. It can be toggled through the --regexp-interpret-all flag. Bug: v8:7777, v8:8678 Change-Id: Iadd21a152de7c07586d5af32bee5fdf9931f1a01 Reviewed-on: https://chromium-review.googlesource.com/c/1408929 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#59041}
-
- 22 Jan, 2019 1 commit
-
-
Ulan Degenbaev authored
The main fix is to ensure that the recently allocated object is marked black in StressMarkingObserver::Step. Otherwise, the concurrent marker can observe an uninitialized white object in the old generation. This patch also removes the --black-allocation flag. Bug: v8:8676 Change-Id: Iba8f00330eabc4847eaef2cd3dfb2884d62a48b4 Reviewed-on: https://chromium-review.googlesource.com/c/1425915 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#59002}
-
- 18 Jan, 2019 1 commit
-
-
Ross McIlroy authored
BUG=v8:8395,v8:8510 Change-Id: I1571877d709d6cc37966ace9014fa327e0820a80 Reviewed-on: https://chromium-review.googlesource.com/c/1417634 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#58919}
-
- 15 Jan, 2019 1 commit
-
-
Jakob Kummerow authored
It is slightly faster than Page::FromAddress(o->address()) (saves one instruction), and more concise than Page::FromAddress(o->ptr()). Same for MemoryChunk::FromHeapObject(). Bug: v8:8562 Change-Id: I9dc2b787aed5cad2d4087850dfa2e8eb157ad225 Reviewed-on: https://chromium-review.googlesource.com/c/1405031 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#58806}
-
- 14 Jan, 2019 2 commits
-
-
Leszek Swirski authored
This removes the iteration protocol from the parser entirely, and opens up future possibilities for more bytecodes implementing the various functions of the protocol. Change-Id: I316b8a92434d3b5f47927408a235ddaecd65d5bb Reviewed-on: https://chromium-review.googlesource.com/c/1403125 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#58795}
-
Yang Guo authored
R=jgruber@chromium.org Bug: v8:8669 Change-Id: I3c3995fa2e5661fa267a11649bdef1991b87c722 Reviewed-on: https://chromium-review.googlesource.com/c/1407064 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#58784}
-
- 11 Jan, 2019 2 commits
-
-
Jakob Gruber authored
The JSRegExp's data fixed array is variable size depending on the regexp kind. Bug: v8:8572 Change-Id: I8f07b8e8d2a9a81e0905563fb701e1e3687cafb5 Reviewed-on: https://chromium-review.googlesource.com/c/1405034Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#58741}
-
Yang Guo authored
R=jarin@chromium.org Bug: v8:8671, v8:8674 Change-Id: I5cdcd49d05f08206aa32426f2fe0560568291f2e Reviewed-on: https://chromium-review.googlesource.com/c/1405852 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#58739}
-
- 03 Jan, 2019 1 commit
-
-
Clemens Hammacher authored
Templates are nicer than macros, and in this case it's not more complex. R=tebbi@chromium.org Bug: v8:8562 Change-Id: I3aea7b4138f144166418c0827dd7c58ea459c670 Reviewed-on: https://chromium-review.googlesource.com/c/1392200Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58518}
-
- 20 Dec, 2018 1 commit
-
-
Jakob Kummerow authored
Merging the temporary HeapObjectPtr back into HeapObject. Bug: v8:3770 Change-Id: I5bcd23ca2f5ba862cf5b52955dca143e531c637b Reviewed-on: https://chromium-review.googlesource.com/c/1386492 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#58410}
-
- 19 Dec, 2018 3 commits
-
-
Mythri authored
Don't allocate feedback vectors and feedback metadata in lite mode. Also updates to skip tests that require feedback vectors. This is a reland of https://chromium-review.googlesource.com/c/v8/v8/+/1384087 after skipping the failing tests. Bug: v8:8394 Change-Id: I7766533b85a144e62996ceed8d542cdc534feeb5 Reviewed-on: https://chromium-review.googlesource.com/c/1384307Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#58363}
-
Clemens Hammacher authored
This reverts commit 62e86b88. Reason for revert: Fails on arm sim lite debug: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20arm%20-%20sim%20-%20lite%20-%20debug/1075 Original change's description: > Do not allocate feedback vectors and feedback metadata in lite mode > > Don't allocate feedback vectors and feedback metadata in lite mode. > Also updates to skip tests that require feedback vectors. > > Bug: v8:8394 > Change-Id: I22c64a32c44bb8f25fb09003d6e9fc5a04e84f8a > Reviewed-on: https://chromium-review.googlesource.com/c/1378173 > Commit-Queue: Mythri Alle <mythria@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58351} TBR=rmcilroy@chromium.org,yangguo@chromium.org,mlippautz@chromium.org,mythria@chromium.org Change-Id: I88fd37ea4e21aa2cc81eceb87ddb35c23224beae No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8394 Reviewed-on: https://chromium-review.googlesource.com/c/1384087Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58355}
-
Mythri authored
Don't allocate feedback vectors and feedback metadata in lite mode. Also updates to skip tests that require feedback vectors. Bug: v8:8394 Change-Id: I22c64a32c44bb8f25fb09003d6e9fc5a04e84f8a Reviewed-on: https://chromium-review.googlesource.com/c/1378173 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#58351}
-
- 18 Dec, 2018 1 commit
-
-
Jakob Gruber authored
This is a reland of 1efe6259 Original change's description: > [snapshot] Clear irregexp code prior to serialization > > Compiled irregexp code should be cleared unless > FunctionCodeHandling::kKeep is passed. > > Bug: v8:8572 > Change-Id: Icb74cc6e0f39a69f8383b05f1638cf0e3be1807c > Reviewed-on: https://chromium-review.googlesource.com/c/1373773 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58272} Bug: v8:8572 Change-Id: I2dfe0c1b4419c47fe2a1916c3bc16800a30309c5 Reviewed-on: https://chromium-review.googlesource.com/c/1379937 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#58308}
-
- 17 Dec, 2018 2 commits
-
-
Maya Lekova authored
This reverts commit 1efe6259. Reason for revert: Broken V8 Linux - arm - sim - lite build - https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20arm%20-%20sim%20-%20lite/1259 Original change's description: > [snapshot] Clear irregexp code prior to serialization > > Compiled irregexp code should be cleared unless > FunctionCodeHandling::kKeep is passed. > > Bug: v8:8572 > Change-Id: Icb74cc6e0f39a69f8383b05f1638cf0e3be1807c > Reviewed-on: https://chromium-review.googlesource.com/c/1373773 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58272} TBR=yangguo@chromium.org,jgruber@chromium.org Change-Id: I7a8c7f5c1500714bccee5c11224fbdf0132c6d78 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8572 Reviewed-on: https://chromium-review.googlesource.com/c/1379874Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#58273}
-
Jakob Gruber authored
Compiled irregexp code should be cleared unless FunctionCodeHandling::kKeep is passed. Bug: v8:8572 Change-Id: Icb74cc6e0f39a69f8383b05f1638cf0e3be1807c Reviewed-on: https://chromium-review.googlesource.com/c/1373773 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#58272}
-
- 12 Dec, 2018 1 commit
-
-
Jakob Gruber authored
There's no reason to restrict off-heap targets to builtin host Code objects during serialization. They can also occur e.g. in irregexp code created by embedded scripts. Drive-by: unify the list of reloc modes that have a target_address_address. Bug: v8:8572,v8:6666 Change-Id: I26dce735463b79677a7b7dcfdb604c5234b5f10b Reviewed-on: https://chromium-review.googlesource.com/c/1371568Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#58194}
-
- 11 Dec, 2018 1 commit
-
-
Ben L. Titzer authored
This is purely a renaming change. The ES spec uses the term 'detach' for the process of removing the backing store of a typed array, while V8 uses the historical term 'neuter'. Update our internal implementation, including method names and flag names, to match the spec. Note that some error messages still use the term 'neuter' since error messages are asserted by some embedder tests, like layout tests. R=bmeurer@chromium.org, yangguo@chromium.org, mstarzinger@chromium.org, mlippautz@chromium.org BUG=chromium:913887 Change-Id: I62f1c3ac9ae67ba01d612a5221afa3d92deae272 Reviewed-on: https://chromium-review.googlesource.com/c/1370036 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#58149}
-
- 10 Dec, 2018 1 commit
-
-
Dan Elphick authored
Bug: chromium:911416 Change-Id: I04d3faa5ee042c99a400294e2a6dbed99c8d7020 Reviewed-on: https://chromium-review.googlesource.com/c/1366616 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#58126}
-
- 03 Dec, 2018 1 commit
-
-
Junliang Yan authored
This is to address the first issue reported on v8:8453 Page::kPageSize is 524288 MemoryAllocator::GetCommitPageSize() returns 65536 on ppc ObjectEndOffsetInCodePage() returns 458752 ObjectStartOffsetInCodePage() returns (65536 + 65536) => 131072 Therefore, memory = 327680, which is less than kMaxRegularHeapObjectSize(507136), which causes the DCHECK to fail. Bug: v8:8453 Change-Id: I6048192ded4234a6987371ec4d4b2a8553756c25 Reviewed-on: https://chromium-review.googlesource.com/c/1355422 Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#58001}
-
- 29 Nov, 2018 1 commit
-
-
Jakob Kummerow authored
TransitionArray, NormalizedMapCache, DependentCode to the new design. Bug: v8:3770 Change-Id: I8bd56f231fb62b146e0fb05989418aedb62a628b Reviewed-on: https://chromium-review.googlesource.com/c/1350287 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#57921}
-
- 28 Nov, 2018 1 commit
-
-
Jakob Kummerow authored
Bug: v8:3770 Change-Id: If405611d359d29ae1958beebd9202e068434a621 Reviewed-on: https://chromium-review.googlesource.com/c/1350286 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#57918}
-
- 27 Nov, 2018 1 commit
-
-
Yang Guo authored
This is an attempt to reland https://crrev.com/1d726111ab7087a5, that was reverted at https://crrev.com/0a820125230bec24. Tbr: bmeurer@chromium.org Bug: chromium:887920, v8:7253 Change-Id: I785417de7d0560b93bda5ade623fa5be3647d7dd Reviewed-on: https://chromium-review.googlesource.com/c/1350530 Commit-Queue: Taiju Tsuiki <tzik@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#57865}
-
- 24 Nov, 2018 1 commit
-
-
Jakob Kummerow authored
Bug: v8:3770 Change-Id: If5328a4c63d8efe0ce7a0c5a744666c79c02e1ee Reviewed-on: https://chromium-review.googlesource.com/c/1345912 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#57804}
-
- 23 Nov, 2018 1 commit
-
-
Jakob Kummerow authored
Bug: v8:3770 Change-Id: I07f48b1ee8814a006e6787ad8261fa8388b4298d Reviewed-on: https://chromium-review.googlesource.com/c/1345327 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#57771}
-
- 22 Nov, 2018 1 commit
-
-
Yang Guo authored
This reverts commit 1d726111. Reason for revert: This breaks a layout test, and blocks V8 roll https://ci.chromium.org/p/chromium/builders/luci.chromium.try/win7_chromium_rel_ng/135831 Original change's description: > Implement Faster MicrotaskQueue Step 2 > > This is an implementation of https://bit.ly/v8-faster-microtask-queues > step 2. > > This CL overhauls MicrotaskQueue class, the previous one is on V8 heap, > and the new one is on C++ heap. > > Benchmark: > This CL improves a benchmark score around promise by 5~23%. > https://github.com/v8/promise-performance-tests > https://docs.google.com/spreadsheets/d/1HtwZGzUAGJYg87VmYhV9hLdvfddlCtC6Oz0iOj-WwQA/edit#gid=1952666737 > > Bug: chromium:887920, v8:7253 > Change-Id: I1f26e02c45ae60ae39d1ccc168daa98bca4663d9 > Reviewed-on: https://chromium-review.googlesource.com/c/1290751 > Commit-Queue: Taiju Tsuiki <tzik@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Adam Klein <adamk@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57681} TBR=ulan@chromium.org,adamk@chromium.org,yangguo@chromium.org,ishell@chromium.org,bmeurer@chromium.org,tzik@chromium.org Change-Id: I639882a95fe63c029a2e53d610dc4133d1ac48f2 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:887920, v8:7253 Reviewed-on: https://chromium-review.googlesource.com/c/1347473 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#57711}
-
- 21 Nov, 2018 1 commit
-
-
tzik authored
This is an implementation of https://bit.ly/v8-faster-microtask-queues step 2. This CL overhauls MicrotaskQueue class, the previous one is on V8 heap, and the new one is on C++ heap. Benchmark: This CL improves a benchmark score around promise by 5~23%. https://github.com/v8/promise-performance-tests https://docs.google.com/spreadsheets/d/1HtwZGzUAGJYg87VmYhV9hLdvfddlCtC6Oz0iOj-WwQA/edit#gid=1952666737 Bug: chromium:887920, v8:7253 Change-Id: I1f26e02c45ae60ae39d1ccc168daa98bca4663d9 Reviewed-on: https://chromium-review.googlesource.com/c/1290751 Commit-Queue: Taiju Tsuiki <tzik@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#57681}
-
- 15 Nov, 2018 3 commits
-
-
Jakob Gruber authored
This is a reland of bf2f0a02 Original change's description: > [builtins] Support embedded builtins in nosnapshot builds > > This CL adds support for embedded builtins in nosnap builds by creating > and setting an 'embedded blob' after builtin generation. Unlike > snapshot builds, the blob is not embedded into the .text section but > located on the C++ heap. > > This makes nosnap builds more consistent with mksnapshot, and allows us > to simplify there and in serializer cctests. > > Complications arise from the different workflows we need to support: > > 1. the standard mksnapshot build process, > 2. nosnap builds (which reuse the blob created by the first Isolate), > 2. and tests with various complicated serialization workflows. > > To cover all of these cases, this CL introduces two knobs to twiddle: > > 1. A 'sticky' embedded blob which overrides compiled-in default > embedded blobs at Isolate setup. > 2. The blob lifecycle can be managed manually or through refcounting. > > These are described in more detail in isolate.cc. > > Tbr: ulan@chromium.org > Bug: v8:6666, v8:8350 > Change-Id: I3842e40cdaf45d2cadd05c6eb1ec2f5e3d83568d > Reviewed-on: https://chromium-review.googlesource.com/c/1310195 > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57523} Tbr: ulan@chromium.org,yangguo@chromium.org Bug: v8:6666, v8:8350 Change-Id: I13b523c9e7406b39a3cd28465c06f17f1744a738 Reviewed-on: https://chromium-review.googlesource.com/c/1337578 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#57540}
-
Jakob Gruber authored
This reverts commit bf2f0a02. Reason for revert: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20nosnap%20-%20debug/21753 Original change's description: > [builtins] Support embedded builtins in nosnapshot builds > > This CL adds support for embedded builtins in nosnap builds by creating > and setting an 'embedded blob' after builtin generation. Unlike > snapshot builds, the blob is not embedded into the .text section but > located on the C++ heap. > > This makes nosnap builds more consistent with mksnapshot, and allows us > to simplify there and in serializer cctests. > > Complications arise from the different workflows we need to support: > > 1. the standard mksnapshot build process, > 2. nosnap builds (which reuse the blob created by the first Isolate), > 2. and tests with various complicated serialization workflows. > > To cover all of these cases, this CL introduces two knobs to twiddle: > > 1. A 'sticky' embedded blob which overrides compiled-in default > embedded blobs at Isolate setup. > 2. The blob lifecycle can be managed manually or through refcounting. > > These are described in more detail in isolate.cc. > > Tbr: ulan@chromium.org > Bug: v8:6666, v8:8350 > Change-Id: I3842e40cdaf45d2cadd05c6eb1ec2f5e3d83568d > Reviewed-on: https://chromium-review.googlesource.com/c/1310195 > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57523} TBR=ulan@chromium.org,yangguo@chromium.org,jgruber@chromium.org Change-Id: I6e35a0cb7186fb50f1012f5c618fb8b48b24a813 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6666, v8:8350 Reviewed-on: https://chromium-review.googlesource.com/c/1337577Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#57529}
-
Jakob Gruber authored
This CL adds support for embedded builtins in nosnap builds by creating and setting an 'embedded blob' after builtin generation. Unlike snapshot builds, the blob is not embedded into the .text section but located on the C++ heap. This makes nosnap builds more consistent with mksnapshot, and allows us to simplify there and in serializer cctests. Complications arise from the different workflows we need to support: 1. the standard mksnapshot build process, 2. nosnap builds (which reuse the blob created by the first Isolate), 2. and tests with various complicated serialization workflows. To cover all of these cases, this CL introduces two knobs to twiddle: 1. A 'sticky' embedded blob which overrides compiled-in default embedded blobs at Isolate setup. 2. The blob lifecycle can be managed manually or through refcounting. These are described in more detail in isolate.cc. Tbr: ulan@chromium.org Bug: v8:6666, v8:8350 Change-Id: I3842e40cdaf45d2cadd05c6eb1ec2f5e3d83568d Reviewed-on: https://chromium-review.googlesource.com/c/1310195Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#57523}
-
- 09 Nov, 2018 1 commit
-
-
Mythri authored
After adding an explicit API to create code caches the compile options related to producing code caches are no longer supported. Parser caches are also no longer supported. Bug: v8:8015 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I6eb5d7cf6b03437834eb1a1d326374f09fbce5a9 Reviewed-on: https://chromium-review.googlesource.com/c/1238493 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#57399}
-
- 06 Nov, 2018 1 commit
-
-
Yang Guo authored
This is to ensure the snapshot is deterministic. Internal fields can contain: - reference to heap object - embedder-defined aligned pointer - a smi The latter two are not distinguishable by V8, so if the serializer callback returns non-zero value, we consider it to be an aligned pointer and clear it to ensure that the snapshot does not contain memory addresses that may not be deterministic. If the callback returns { nullptr, 0 } as result, we consider it to be a smi or some in-place data that we then serialize verbatim. R=jgruber@chromium.org Bug: chromium:870584 Change-Id: I3cf9abf135ffd28d8138fa32636b12596b076e13 Reviewed-on: https://chromium-review.googlesource.com/c/1304441 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#57272}
-
- 31 Oct, 2018 1 commit
-
-
Jakob Gruber authored
Now that lazy deserialization has been removed, we can roll back all the mechanisms we introduced to support lazy single-builtin deserialization. This CL moves serialized builtin code objects (i.e. off-heap-trampolines in most cases) back into the startup snapshot. Support classes for builtin serialization and deserialization, as well as the builtins snapshot itself are removed. Templatization on the allocator class is removed as well. Tbr: delphick@chromium.org Bug: v8:6666, v8:7990 Change-Id: I2a910f8d3278b7e27b5f18ad408361ebd18871cc Reviewed-on: https://chromium-review.googlesource.com/c/1304539Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#57160}
-
- 29 Oct, 2018 1 commit
-
-
Jakob Gruber authored
Now that embedded builtins are enabled everywhere*, lazy deserialization can be turned off and removed. * Except nosnap builds, on aix and in msvc builds. Bug: v8:6666, v8:6624, v8:7990 Change-Id: Ib5fefe10e7ff35b13a1eb803fbc3736b8851b22b Reviewed-on: https://chromium-review.googlesource.com/c/1288638Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#57064}
-
- 26 Oct, 2018 2 commits
-
-
Igor Sheludko authored
In order to ensure that Isolate::New()/Isolate::Delete() are the bottlenecks this CL also makes the Isolate class final. Bug: v8:8182 Change-Id: I6bb170363a1210f66d63f4bcc46ea06fb5000d50 Reviewed-on: https://chromium-review.googlesource.com/c/1301481 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#57041}
-
Jakob Kummerow authored
This CL applies the equivalent of the Object -> ObjectPtr transformation to MaybeObject and HeapObjectReference. We need no renaming in this case because we can just migrate them both in one go. Bug: v8:3770 Change-Id: Ie1259c3e8c556eff00f8bcf534d7270ca9fe00e1 Reviewed-on: https://chromium-review.googlesource.com/c/1298386 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#57010}
-
- 22 Oct, 2018 1 commit
-
-
Ross McIlroy authored
BUG=v8:8293 Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel Change-Id: Ic0e12cbcea76f76fce543714dee972c784095143 Reviewed-on: https://chromium-review.googlesource.com/c/1290795 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#56852}
-
- 19 Oct, 2018 1 commit
-
-
Jakob Kummerow authored
This reverts commit 5847574e. Reason for revert: Break mjsunit tests in Lite mode. You'll have to find a solution for tests using assertOptimized(). Original change's description: > [Lite] Disable optimization for Lite mode. > > BUG=v8:8293 > > Change-Id: I6b2e02420ab69fb1d2e24945d48b08d2bc24b0d0 > Reviewed-on: https://chromium-review.googlesource.com/c/1280526 > Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Dan Elphick <delphick@chromium.org> > Cr-Commit-Position: refs/heads/master@{#56795} TBR=rmcilroy@chromium.org,delphick@chromium.org Change-Id: I09f6c17cc325f50560329c46f06ad847f0bb021d No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8293 Reviewed-on: https://chromium-review.googlesource.com/c/1290111Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#56796}
-
- 18 Oct, 2018 1 commit
-
-
Ross McIlroy authored
BUG=v8:8293 Change-Id: I6b2e02420ab69fb1d2e24945d48b08d2bc24b0d0 Reviewed-on: https://chromium-review.googlesource.com/c/1280526 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#56795}
-
- 16 Oct, 2018 1 commit
-
-
Dan Elphick authored
In preparation for sharing RO_SPACE between all Isolates within a process, this first pulls RO_SPACE out of the Startup snapshot and puts it in its own ReadOnly snapshot. The snapshot is first populated with the read-only roots. After that the StartupSerializer serializes as before but starting from the first mutable root. References to objects in the ReadOnly snapshot that aren't themselves roots are added to a new cache called ReadOnlyObjectCache which functions like the PartialSnapshotCache but lives in the ReadOnlySerializer rather than the StartupSerializer. These cache entries are referenced using a new bytecode: ReadOnlyObjectCache. (To make room for this, the ApiReference bytecode has been moved). To reduce code duplication, the StartupSerializer has been refactored to create a new base class RootSerializer, which ReadOnlySerializer also subclasses. The base class is responsible primarily for keeping track of already serialized roots and visiting the roots. Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: Iff26042886130ae22eccf2e11b35f6f226f4a792 Bug: v8:8191 Reviewed-on: https://chromium-review.googlesource.com/c/1244676 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#56681}
-