1. 19 Oct, 2018 2 commits
    • Predrag Rudic's avatar
      MIPS[64]: Port: [async] Introduce dedicated JSAsyncFunctionObject. · 44142530
      Predrag Rudic authored
      Port commit a63987a4
      
      Original message:
      >This JSAsyncFunctionObject represents the implicit generator object
      >inside of async functions, and also holds the outer promise for the
      >async functions. This in turn allows us to get rid of the .promise
      >in the Parser / BytecodeGenerator completely, and will make it
      >possible to build zero-cost async stack traces independent of the
      >concrete synchronous part of the stack frame (which currently breaks
      >in Node.js).
      >
      >In the bytecode all the async function operations now take this new
      >JSAsyncFunctionObject instead of passing both the .generator_object
      >and the .promise, which further simplifies and shrinks the bytecode.
      >It also reduces the size of async function frames, potentially making
      >the suspend/resume cheaper.
      >
      >This also changes `await` to use intrinsics instead of calling to
      >special JSFunctions on the native context, and thus reduces the size of
      >the native contexts.
      >
      >Drive-by-fix: Introduce a dedicated JSCreateAsyncFunctionObject operator
      >to TurboFan.
      >
      >Bug: v8:7253, v8:7522
      >Change-Id: I2305302285156aa1f71328ecac70377abdd92c80
      >Ref: nodejs/node#11865
      >Design-Document: http://bit.ly/v8-zero-cost-async-stack-traces
      >Reviewed-on: https://chromium-review.googlesource.com/c/1273049
      >Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      >Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
      >Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
      >Reviewed-by: Maya Lekova <mslekova@chromium.org>
      >Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
      >Cr-Commit-Position: refs/heads/master@{#56554}
      
      Change-Id: I5a11bd31bf2aac2e2b94779fa03b85ee88d7dbc4
      Reviewed-on: https://chromium-review.googlesource.com/c/1288811Reviewed-by: 's avatarIvica Bogosavljevic <ibogosavljevic@wavecomp.com>
      Commit-Queue: Ivica Bogosavljevic <ibogosavljevic@wavecomp.com>
      Cr-Commit-Position: refs/heads/master@{#56818}
      44142530
    • Sigurd Schneider's avatar
      [assembler] Move ConstantPools out of src/assembler.h · 1dc1d1ae
      Sigurd Schneider authored
      Drive-by: Eliminate unnecessary includes to src/assembler.h.
      
      Bug: v8:8238
      Change-Id: Ia0408b993b8b1c21a76c947f406f96b63fe41994
      Reviewed-on: https://chromium-review.googlesource.com/c/1288810Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56817}
      1dc1d1ae
  2. 17 Oct, 2018 1 commit
  3. 16 Oct, 2018 1 commit
  4. 10 Oct, 2018 3 commits
  5. 01 Oct, 2018 1 commit
  6. 28 Sep, 2018 1 commit
  7. 20 Sep, 2018 2 commits
  8. 15 Sep, 2018 1 commit
  9. 13 Sep, 2018 1 commit
  10. 11 Sep, 2018 1 commit
  11. 06 Sep, 2018 1 commit
  12. 03 Sep, 2018 1 commit
    • jgruber's avatar
      Remove isolate parameter from RecordWrite builtin · 62766423
      jgruber authored
      The isolate can be efficiently loaded through other means: either as a
      root-relative load (if embedded builtins are enabled), or as an embedded
      external reference (i.e. the absolute pointer is included in the
      instruction stream) otherwise.
      
      The generated code should be at least as fast as previously. On x64
      (with embedded builtins):
      
      Before:
       // Register moves in prologue:
       0x7f47a6b4860a     a  488955e0       REX.W movq [rbp-0x20],rdx
       // And the load from a stack slot at each use-site.
       0x7f47a6b486f2    f2  488b7de0       REX.W movq rdi,[rbp-0x20]
      
      After:
       // Each use-site just loads a root-relative offset.
       0x7f1645fcc6ce    ee  498dbd38ffffff REX.W leaq rdi,[r13-0xc8]
      
      On ia32 (no embedded builtins), before:
       0x5c608930    10  8955f0         mov [ebp-0x10],edx
       0x5c6089fb    db  891424         mov [esp],edx
      
      After:
       0x41d0898d    8d  b80033b156     mov eax,0x56b13300
      
      Removal reduces register pressure, and frees up ebx as the root register
      on ia32.
      
      Note that the set of allocatable registers was only reduced on ia32 to
      exclude the root register.
      
      Bug: v8:6666
      Change-Id: I14e401e2823c82042c76acae10c3c935b9982993
      Reviewed-on: https://chromium-review.googlesource.com/1201586
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55587}
      62766423
  13. 31 Aug, 2018 1 commit
  14. 29 Aug, 2018 1 commit
  15. 28 Aug, 2018 1 commit
  16. 24 Aug, 2018 2 commits
  17. 23 Aug, 2018 2 commits
  18. 22 Aug, 2018 2 commits
  19. 17 Aug, 2018 1 commit
  20. 13 Aug, 2018 1 commit
  21. 10 Aug, 2018 1 commit
  22. 08 Aug, 2018 5 commits
  23. 07 Aug, 2018 1 commit
  24. 03 Aug, 2018 1 commit
  25. 02 Aug, 2018 1 commit
  26. 26 Jul, 2018 3 commits
  27. 25 Jul, 2018 1 commit