- 31 May, 2017 1 commit
-
-
jgruber authored
BUG=v8:5737 Review-Url: https://codereview.chromium.org/2913783002 Cr-Commit-Position: refs/heads/master@{#45629}
-
- 24 Apr, 2017 1 commit
-
-
Caitlin Potter authored
The AsyncGeneratorYield builtin just invoked the AsyncGeneratorResolve() stub anyways, so this removes the middle-man. Really minor refactoring, but clears out a bit of snapshot size and another context index. BUG=v8:5855 R=rmcilroy@chromium.org, bmeurer@chromium.org Change-Id: I3385a5c5412e8d58493601874c2ad6b60e613012 Reviewed-on: https://chromium-review.googlesource.com/471913 Commit-Queue: Caitlin Potter <caitp@igalia.com> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#44820}
-
- 13 Apr, 2017 1 commit
-
-
Caitlin Potter authored
https://github.com/tc39/proposal-async-iteration/commit/e3246ad69cc6f83b34bdd3451c3c6abce37fd1f3 removed some redundancies in yield and yield*. In particular: - AsyncGeneratorRawYield becomes unnecessary, and is deleted in this CL - Parser::RewriteYieldStar() is updated to perform the IteratorValue() algorithm as appropriate BUG=v8:6187, v8:5855 R=rmcilroy@chromium.org, adamk@chromium.org, littledan@chromium.org, vogelheim@chromium.org Change-Id: I05e8429b9cbd4531c330ee53a05656b90162064c Reviewed-on: https://chromium-review.googlesource.com/471806Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Commit-Queue: Caitlin Potter <caitp@igalia.com> Cr-Commit-Position: refs/heads/master@{#44649}
-
- 07 Apr, 2017 3 commits
-
-
jgruber authored
Split TFS builtins into * TFC: TF builtins with stub linkage that use a custom interface descriptor (e.g. because of a non-standard return size or untagged arguments) * TFS: the rest. Automatically generate interface descriptors for TFS builtins to reduce boilerplate involved in setting up stub calls. These are now as simple as creating the TFS stub and using CSA::CallBuiltin, no extra work required. BUG=v8:6116 Review-Url: https://codereview.chromium.org/2777203007 Cr-Commit-Position: refs/heads/master@{#44490}
-
Caitlin Potter authored
InternalResolvePromise, InternalPromiseReject and InternalPerformPromiseThen generate quite a lot of code. This change adds 3 new TF stubs which inline calls to these builtins. These stubs are invoked rather than inlining those operations listed above directly. This is done for Async Iteration builtins, as well as Async Function builtins. Promise builtins are left as they were, and continue to inline these calls. This results in a roughly 99kb reduction in snapshot_blob.bin on an x64 release build. BUG=v8:5855 R=gsathya@chromium.org, jgruber@chromium.org Change-Id: I83e2f096782db685fe316dd071980cd8d696fe53 Reviewed-on: https://chromium-review.googlesource.com/469927Reviewed-by:
Franziska Hinkelmann <franzih@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#44483}
-
Camillo Bruni authored
Change-Id: If074bb297201470d688ecd7b01e5e9ce9bab464e Reviewed-on: https://chromium-review.googlesource.com/469730 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#44473}
-
- 06 Apr, 2017 3 commits
-
-
Franziska Hinkelmann authored
This reverts commit 9461fe24. Reason for revert: Breaks a test in Node.js: parallel/test-util-inspect === release test-util-inspect === Path: parallel/test-util-inspect # # Fatal error in , line 0 # unreachable code # ==== C stack trace =============================== Original change's description: > [builtins] don't inline calls for common Promise ops in async builtins > > InternalResolvePromise, InternalPromiseReject and > InternalPerformPromiseThen generate quite a lot of code. > > This change adds 3 new TF stubs which inline calls to these builtins. > These stubs are invoked rather than inlining those operations listed > above directly. This is done for Async Iteration builtins, as well as > Async Function builtins. Promise builtins are left as they were, and > continue to inline these calls. > > This results in a roughly 99kb reduction in snapshot_blob.bin on an x64 > release build. > > BUG=v8:5855 > R=gsathya@chromium.org, jgruber@chromium.org > > Change-Id: I3349d0f0353a72270ae40b974312d64d1c8a9e46 > Reviewed-on: https://chromium-review.googlesource.com/461269 > Commit-Queue: Caitlin Potter <caitp@igalia.com> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Sathya Gunasekaran (ooo until April 10) <gsathya@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#44445} TBR=mstarzinger@chromium.org,gsathya@chromium.org,caitp@igalia.com,jgruber@chromium.org,v8-reviews@googlegroups.com,bmeurer@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5855 Change-Id: Iabcdf8b025cc9b053a858f8e74389638ac000ba0 Reviewed-on: https://chromium-review.googlesource.com/469946Reviewed-by:
Franziska Hinkelmann <franzih@chromium.org> Commit-Queue: Franziska Hinkelmann <franzih@chromium.org> Cr-Commit-Position: refs/heads/master@{#44448}
-
Caitlin Potter authored
InternalResolvePromise, InternalPromiseReject and InternalPerformPromiseThen generate quite a lot of code. This change adds 3 new TF stubs which inline calls to these builtins. These stubs are invoked rather than inlining those operations listed above directly. This is done for Async Iteration builtins, as well as Async Function builtins. Promise builtins are left as they were, and continue to inline these calls. This results in a roughly 99kb reduction in snapshot_blob.bin on an x64 release build. BUG=v8:5855 R=gsathya@chromium.org, jgruber@chromium.org Change-Id: I3349d0f0353a72270ae40b974312d64d1c8a9e46 Reviewed-on: https://chromium-review.googlesource.com/461269 Commit-Queue: Caitlin Potter <caitp@igalia.com> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Sathya Gunasekaran (ooo until April 10) <gsathya@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#44445}
-
Camillo Bruni authored
Change-Id: Ie84fbc26a3f3782564f3d0734c284f19a75853f3 Reviewed-on: https://chromium-review.googlesource.com/469826Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#44438}
-
- 29 Mar, 2017 2 commits
-
-
Caitlin Potter authored
This hopefully shrinks binary size a bit, at the cost of (slightly) increasing the complexity of the ResumeGenerator stub. Includes ia32, x64, mips, mips64, arm and arm64 ports. BUG=v8:5855 R=rmcilroy@chromium.org, paul.lind@imgtec.com, bmeurer@chromium.org, neis@chromium.org Change-Id: I848ce08afd828091a11e03c89d5be065ff557ef3 Reviewed-on: https://chromium-review.googlesource.com/461303 Commit-Queue: Caitlin Potter <caitp@igalia.com> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#44244}
-
Caitlin Potter authored
- Introduce new struct AsyncGeneratorRequest, which holds information pertinent to resuming execution of an AsyncGenerator, such as the Promise associated with the async generator request. It is intended to be used as a singly linked list, and holds a pointer to the next item in te queue. - Introduce JSAsyncGeneratorObject (subclass of JSGeneratorObject), which includes several new internal fields (`queue` which contains a singly linked list of AsyncGeneratorRequest objects, and `await_input` which contains the sent value from an Await expression (This is necessary to prevent function.sent (used by yield*) from having the sent value observably overwritten during execution). - Modify SuspendGenerator to accept a set of Flags, which indicate whether the suspend is for a Yield or Await, and whether it takes place on an async generator or ES6 generator. - Introduce interpreter intrinsics and TF intrinsic lowering for accessing the await input of an async generator - Modify the JSGeneratorStore operator to understand whether or not it's suspending for a normal yield, or an AsyncGenerator Await. This ensures appropriate registers are stored. - Add versions of ResumeGeneratorTrampoline which store the input value in a different field depending on wether it's an AsyncGenerator Await resume, or an ordinary resume. Also modifies whether debug code will assert that the generator object is a JSGeneratorObject or a JSAsyncGeneratorObject depending on the resume type. BUG=v8:5855 R=bmeurer@chromium.org, rmcilroy@chromium.org, jgruber@chromium.org, littledan@chromium.org, neis@chromium.org TBR=marja@chromium.org Change-Id: I9d58df1d344465fc937fe7eed322424204497187 Reviewed-on: https://chromium-review.googlesource.com/446961 Commit-Queue: Caitlin Potter <caitp@igalia.com> Reviewed-by:
Ross McIlroy <rmcilroy@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@{#44240}
-