1. 30 Jan, 2019 1 commit
    • Jakob Gruber's avatar
      [builtins] Remove canonicalization during serialization · 9592b043
      Jakob Gruber authored
      Now that we generate the embedded blob and off-heap trampolines
      directly after builtin generation, the heap should not contain any
      remaining references to full on-heap builtin Code objects.
      
      The one exception is the interpreter entry trampoline copy for
      profiling. This mechanism was actually broken by canonicalization; we
      intended to store a full copy of the IET on the root list, but
      serialization replaced it with the canonicalized builtin. This CL
      fixes that as a side-effect.
      
      Bug: v8:8716
      Change-Id: Ib37c4004560d67de46b1f8ebe75156361134f57d
      Reviewed-on: https://chromium-review.googlesource.com/c/1421037
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59219}
      9592b043
  2. 18 Jan, 2019 1 commit
  3. 08 Jan, 2019 1 commit
    • Ross McIlroy's avatar
      [Deopt] Remove jump table in prologue of deopt entries. · 4ab96a9a
      Ross McIlroy authored
      Remove the use of a jump table in the prologue of the deopt entries
      and instead pass the bailout id explicitly in a register when calling
      the deopt entry routine from optimized code. This unifies the logic
      with the way the Arm64 code works. It saves the following amount of
      memory in code stubs:
      
       - arm:  384KB
       - ia32: 480KB
       - x64:  240KB
      
      This could be offset by a slight increase in the size of optimized code
      for loading the immediate, however this impact should be minimal and
      will scale with the maximum number of bailout ids (e.g., the size of
      code will increase by one instruction per bailout id on Arm, therefore
      ~98,000 bailouts will be needed before the overhead is greater than
      the current fixed table size).
      
      Change-Id: I838604b48fa04cbd45320c7b9dac0de08fd8eb25
      Reviewed-on: https://chromium-review.googlesource.com/c/1398224
      Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58636}
      4ab96a9a
  4. 26 Dec, 2018 1 commit
  5. 21 Dec, 2018 3 commits
    • Sigurd Schneider's avatar
      Reland "[deoptimizer] Refactor GenerateDeoptimizationEntries" · 2a72b8ac
      Sigurd Schneider authored
      This is a reland of f63a657e
      
      Original change's description:
      > [deoptimizer] Refactor GenerateDeoptimizationEntries
      >
      > This reduces preprocessor-expanded source size by 64,359 from
      >
      > gen         (   21 files):    71,570 to    1,613,100 (   23x)
      > src         (  624 files):   367,830 to   52,964,659 (  144x)
      > test        (  392 files):   490,924 to   37,360,916 (   76x)
      > third_party (  432 files):   239,085 to    9,547,902 (   40x)
      > total       ( 1521 files): 1,184,093 to  102,461,098 (   87x)
      >
      > to
      >
      > gen         (   21 files):    71,570 to    1,613,100 (   23x)
      > src         (  624 files):   367,837 to   52,919,005 (  144x)
      > test        (  392 files):   490,924 to   37,342,211 (   76x)
      > third_party (  432 files):   239,085 to    9,547,902 (   40x)
      > total       ( 1521 files): 1,184,100 to  102,396,739 (   86x)
      >
      > Bug: v8:8562
      > Change-Id: Iee474e22ababa1e080b8d6359af4d0076903e59a
      > Reviewed-on: https://chromium-review.googlesource.com/c/1384091
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
      > Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#58424}
      
      TBR=jarin@chromium.org,ulan@chromium.org
      
      Bug: v8:8562
      Change-Id: I7a8a350414941f49c6155ff43e36e0cb0b2006e5
      Reviewed-on: https://chromium-review.googlesource.com/c/1387497Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58437}
      2a72b8ac
    • Sigurd Schneider's avatar
      Revert "[deoptimizer] Refactor GenerateDeoptimizationEntries" · 4b4175d7
      Sigurd Schneider authored
      This reverts commit f63a657e.
      
      Reason for revert: breaks compile on lite mode:
      
      https://logs.chromium.org/logs/v8/buildbucket/cr-buildbucket.appspot.com/8926535782549686576/+/steps/build/0/steps/compile/0/stdout
      
      
      Original change's description:
      > [deoptimizer] Refactor GenerateDeoptimizationEntries
      > 
      > This reduces preprocessor-expanded source size by 64,359 from
      > 
      > gen         (   21 files):    71,570 to    1,613,100 (   23x)
      > src         (  624 files):   367,830 to   52,964,659 (  144x)
      > test        (  392 files):   490,924 to   37,360,916 (   76x)
      > third_party (  432 files):   239,085 to    9,547,902 (   40x)
      > total       ( 1521 files): 1,184,093 to  102,461,098 (   87x)
      > 
      > to
      > 
      > gen         (   21 files):    71,570 to    1,613,100 (   23x)
      > src         (  624 files):   367,837 to   52,919,005 (  144x)
      > test        (  392 files):   490,924 to   37,342,211 (   76x)
      > third_party (  432 files):   239,085 to    9,547,902 (   40x)
      > total       ( 1521 files): 1,184,100 to  102,396,739 (   86x)
      > 
      > Bug: v8:8562
      > Change-Id: Iee474e22ababa1e080b8d6359af4d0076903e59a
      > Reviewed-on: https://chromium-review.googlesource.com/c/1384091
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
      > Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#58424}
      
      TBR=ulan@chromium.org,jarin@chromium.org,sigurds@chromium.org
      
      Change-Id: I06e6f95255a3cea6a428713e9e841781425dffe8
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:8562
      Reviewed-on: https://chromium-review.googlesource.com/c/1387494Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58425}
      4b4175d7
    • Sigurd Schneider's avatar
      [deoptimizer] Refactor GenerateDeoptimizationEntries · f63a657e
      Sigurd Schneider authored
      This reduces preprocessor-expanded source size by 64,359 from
      
      gen         (   21 files):    71,570 to    1,613,100 (   23x)
      src         (  624 files):   367,830 to   52,964,659 (  144x)
      test        (  392 files):   490,924 to   37,360,916 (   76x)
      third_party (  432 files):   239,085 to    9,547,902 (   40x)
      total       ( 1521 files): 1,184,093 to  102,461,098 (   87x)
      
      to
      
      gen         (   21 files):    71,570 to    1,613,100 (   23x)
      src         (  624 files):   367,837 to   52,919,005 (  144x)
      test        (  392 files):   490,924 to   37,342,211 (   76x)
      third_party (  432 files):   239,085 to    9,547,902 (   40x)
      total       ( 1521 files): 1,184,100 to  102,396,739 (   86x)
      
      Bug: v8:8562
      Change-Id: Iee474e22ababa1e080b8d6359af4d0076903e59a
      Reviewed-on: https://chromium-review.googlesource.com/c/1384091Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58424}
      f63a657e
  6. 08 Dec, 2018 1 commit
  7. 30 Nov, 2018 1 commit
  8. 28 Nov, 2018 1 commit
  9. 25 Nov, 2018 1 commit
  10. 24 Nov, 2018 1 commit
  11. 23 Nov, 2018 1 commit
  12. 12 Nov, 2018 2 commits
  13. 20 Sep, 2018 1 commit
  14. 17 Sep, 2018 1 commit
    • Benedikt Meurer's avatar
      [turbofan] Initial support to compute NumberAdd/NumberSubtract in Word64. · 0c296cb2
      Benedikt Meurer authored
      This change introduces the necessary conversion operators to convert
      from Word64 to other representations (Tagged, Word32, Float64, etc.),
      and plugs in the Word64 representation for NumberAdd/NumberSubtract,
      such that TurboFan will go to Int64Add/Sub on 64-bit architectures
      when the inputs and the output of the operation is in safe integer
      range. This includes the necessary changes to the Deoptimizer to be
      able to rematerialize Int64 values as Smi/HeapNumber when going back
      to Ignition later.
      
      This change might affect performance, although measurements indicate
      that there should be no noticable performance impact.
      
      The goal is to have TurboFan support Word64 representation to a degree
      that changing the TypedArray length to an uint64_t (for 64-bit archs)
      becomes viable and doesn't have any negative performance implications.
      Independent of that we might get performance improvements in other areas
      such as for crypto code later.
      
      Bug: v8:4153, v8:7881, v8:8171, v8:8178
      Design-Document: bit.ly/turbofan-word64
      Change-Id: I29d56e2a31c1bae61d04a89d29ea73f21fd49c59
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel
      Reviewed-on: https://chromium-review.googlesource.com/1225709
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55937}
      0c296cb2
  15. 11 Sep, 2018 1 commit
  16. 02 Aug, 2018 1 commit
  17. 16 Jul, 2018 1 commit
  18. 04 Jul, 2018 1 commit
  19. 20 Jun, 2018 2 commits
  20. 18 Jun, 2018 1 commit
  21. 15 Jun, 2018 2 commits
    • Yang Guo's avatar
      Revert "[debugger] Rewrite the ScopeIterator/DebugEvaluate to use Scope rather... · 23b8d2fd
      Yang Guo authored
      Revert "[debugger] Rewrite the ScopeIterator/DebugEvaluate to use Scope rather than ScopeInfo for inner scopes."
      
      This reverts commit 9e27d473.
      
      Reason for revert: Layout Test failures: https://ci.chromium.org/buildbot/client.v8.fyi/V8-Blink%20Linux%2064/24123
      
      Original change's description:
      > [debugger] Rewrite the ScopeIterator/DebugEvaluate to use Scope rather than ScopeInfo for inner scopes.
      > 
      > This CL also bottlenecks all current scope handling in the ScopeIterator, and cleans up frame handling in debug-frames and the deoptimizer.
      > 
      > Change-Id: I061922a356ce17794262f8d77d5d7c824558fc50
      > Reviewed-on: https://chromium-review.googlesource.com/1095094
      > Commit-Queue: Toon Verwaest <verwaest@chromium.org>
      > Reviewed-by: Georg Neis <neis@chromium.org>
      > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#53741}
      
      TBR=yangguo@chromium.org,jarin@chromium.org,neis@chromium.org,jgruber@chromium.org,verwaest@chromium.org
      
      Change-Id: I892856056258e3c68b36409b8b2d69e7686fc385
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/1102377
      Commit-Queue: Yang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53756}
      23b8d2fd
    • Toon Verwaest's avatar
      Reland "[debugger] Rewrite the ScopeIterator/DebugEvaluate to use Scope rather... · 4936efb0
      Toon Verwaest authored
      Reland "[debugger] Rewrite the ScopeIterator/DebugEvaluate to use Scope rather than ScopeInfo for inner scopes."
      
      This is a reland of 9e27d473
      
      Original change's description:
      > [debugger] Rewrite the ScopeIterator/DebugEvaluate to use Scope rather than ScopeInfo for inner scopes.
      > 
      > This CL also bottlenecks all current scope handling in the ScopeIterator, and cleans up frame handling in debug-frames and the deoptimizer.
      > 
      > Change-Id: I061922a356ce17794262f8d77d5d7c824558fc50
      > Reviewed-on: https://chromium-review.googlesource.com/1095094
      > Commit-Queue: Toon Verwaest <verwaest@chromium.org>
      > Reviewed-by: Georg Neis <neis@chromium.org>
      > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#53741}
      
      Change-Id: I05262fef66d852876b9bb2869339053629c9b51d
      Reviewed-on: https://chromium-review.googlesource.com/1102297Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Toon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53751}
      4936efb0
  22. 14 Jun, 2018 2 commits
  23. 13 Jun, 2018 1 commit
  24. 23 Apr, 2018 3 commits
  25. 20 Apr, 2018 1 commit
    • Sigurd Schneider's avatar
      [deoptimizer] Refactor frame output writing in deoptimizer · a1f33fa2
      Sigurd Schneider authored
      This CL introduces an stack abstraction for writing frame descriptions.
      Previously, we managed the output offset by hand, which is verbose and
      error prone. This CL introduced FrameWriter, which offers a stack
      abstraction with push operations for constructing the output frame
      descriptions.
      
      The abstraction is only applied to DoComputeBuiltinContinuation;
      following CLs will apply it to the other DoCompute* functions.
      
      Bug: v8:7679
      
      Change-Id: Ia6e34de1ed63ba9245e2a08945b1e0548562ed43
      Reviewed-on: https://chromium-review.googlesource.com/1019143Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52714}
      a1f33fa2
  26. 14 Apr, 2018 1 commit
    • Jakob Kummerow's avatar
      [ubsan] Change Address typedef to uintptr_t · 2459046c
      Jakob Kummerow authored
      The "Address" type is V8's general-purpose type for manipulating memory
      addresses. Per the C++ spec, pointer arithmetic and pointer comparisons
      are undefined behavior except within the same array; since we generally
      don't operate within a C++ array, our general-purpose type shouldn't be
      a pointer type.
      
      Bug: v8:3770
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
      Change-Id: Ib96016c24a0f18bcdba916dabd83e3f24a1b5779
      Reviewed-on: https://chromium-review.googlesource.com/988657
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52601}
      2459046c
  27. 04 Apr, 2018 1 commit
  28. 21 Mar, 2018 3 commits
  29. 09 Mar, 2018 1 commit
  30. 11 Jan, 2018 1 commit