1. 08 Sep, 2017 2 commits
  2. 07 Sep, 2017 3 commits
  3. 06 Sep, 2017 1 commit
  4. 05 Sep, 2017 5 commits
    • Ross McIlroy's avatar
      [Interpreter] Remove InterpreterExitTrampoline. · 30f08f39
      Ross McIlroy authored
      Always return to the InterpreterEntryTrampoline rather than calling the
      InterpreterExitTrampoline from the Return bytecode handler. This fixes a
      regression which occured if we upset the call/return stack by skipping the
      return to the InterpreterEntryTrampoline from the return bytecode handler.
      
      BUG=chromium:759390,chromium:753705
      
      Change-Id: Ib625654a4a5072ac6c8d8e9611d1b9c0bbced4ca
      Reviewed-on: https://chromium-review.googlesource.com/649517
      Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47826}
      30f08f39
    • jgruber's avatar
      [builtins] Remove most Builtins::Name usages in API · 0e4f6007
      jgruber authored
      Using the Builtins::Name type doesn't give use any range safety benefits
      over simply using int id's, and it complicates use sites by always
      forcing a static_cast<Builtins::Name>(id).
      
      Bug: v8:6624
      Change-Id: Id5fcf6800c781c637145ab1d00d821f9ad473321
      Reviewed-on: https://chromium-review.googlesource.com/650247
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47823}
      0e4f6007
    • jgruber's avatar
      [builtins] Implement lazy deserialization for TFJ builtins · 79aee245
      jgruber authored
      This adds support for lazy deserialization of JS-linkage (TFJ) builtins,
      still gated behind the --lazy-deserialization flag. If enabled, we
      proceed as follows:
      
      During isolate initialization, only eager builtins are deserialized. All
      references to lazy builtins are replaced by the DeserializeLazy builtin.
      In particular, this happens in the builtin table (Builtins::builtins_)
      and in SharedFunctionInfo objects.
      
      When calling into a not-yet deserialized function (i.e. the JSFunction's
      code object is the DeserializeLazy builtin), the DeserializeLazy builtin
      takes over.  It checks the builtin table to see if the target builtin
      (determined by looking at the builtin id stored on the
      SharedFunctionInfo) has already been deserialized. If so, it simply
      copies the builtin code object to the JSFunction and SharedFunctionInfo.
      Otherwise, we enter Runtime::kDeserializeLazy to deserialize the
      builtin.
      
      With --lazy-deserialization, isolate deserialization is 11% faster
      (1.5ms vs.  1.7ms), and code_space->Size() is 33% lower (984K vs.
      1475K).
      
      Moving relocation infos & handler tables out of the partial snapshot
      cache would additionally let us save up to 30K per isolate. Adding code
      stubs to that list increases further potential savings to 262K.
      
      Bug: v8:6624
      Change-Id: I0ac7d05d165d2466998269bd431ac076a311cbeb
      Reviewed-on: https://chromium-review.googlesource.com/649166
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47818}
      79aee245
    • Ben L. Titzer's avatar
      [frames] Simplify frames.h by inlining or removing single-use utilities. · b8cdefb1
      Ben L. Titzer authored
      R=petermarshall@chromium.org
      
      Bug: 
      Change-Id: Id7187d9e323951e66655d1c6df4676a8e94787dd
      Reviewed-on: https://chromium-review.googlesource.com/649247Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Commit-Queue: Ben Titzer <titzer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47815}
      b8cdefb1
    • Juliana Franco's avatar
      Remove weak-list of optimized JS functions. · f0acede9
      Juliana Franco authored
      This CL removes the weak-list of JS functions from the context
      and all the code that iterares over it. This list was being used
      mainly during deoptimization (for code unlinking) and during
      garbage collection. Removing it will improve performance of
      programs that create many closures and trigger many scavenge GC
      cycles.
      
      No extra work is required during garbage collection. However,
      given that we no longer unlink code from JS functions during
      deoptimization, we leave it as it is, and on its next activation
      we check whether the mark_for_deoptimization bit of that code is
      set, and if it is, than we unlink it and jump to lazy compiled
      code. This check happens in the prologue of every code object.
       
      We needed to change/remove the cctests that used to check
      something on this list.
       
      Working in x64, ia32, arm64, arm, mips64 and mips. 
       
      
      Bug: v8:6637
      Change-Id: Ica99a12fd0351ae985e9a287918bf28caf6d2e24
      TBR: mstarzinger@chromium.org
      Reviewed-on: https://chromium-review.googlesource.com/647596
      Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
      Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47808}
      f0acede9
  5. 04 Sep, 2017 2 commits
    • Michael Achenbach's avatar
      Revert "Remove weak-list of optimized JS functions." · 36b50283
      Michael Achenbach authored
      This reverts commit 84c2dfce.
      
      Reason for revert:
      https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap%20-%20debug/builds/14876
      
      Original change's description:
      > Remove weak-list of optimized JS functions.
      > 
      > This CL removes the weak-list of JS functions from the context
      > and all the code that iterares over it. This list was being used
      > mainly during deoptimization (for code unlinking) and during
      > garbage collection. Removing it will improve performance of
      > programs that create many closures and trigger many scavenge GC
      > cycles.
      > 
      > No extra work is required during garbage collection. However,
      > given that we no longer unlink code from JS functions during
      > deoptimization, we leave it as it is, and on its next activation
      > we check whether the mark_for_deoptimization bit of that code is
      > set, and if it is, than we unlink it and jump to lazy compiled
      > code. This check happens in the prologue of every code object.
      > 
      > We needed to change/remove the cctests that used to check
      > something on this list.
      > 
      > Working in x64, ia32, arm64, arm, mips64 and mips. 
      > 
      > Bug: v8:6637
      > Change-Id: I7f192652c8034b16a9ea71303fa8e78cda3c48f3
      > Reviewed-on: https://chromium-review.googlesource.com/600427
      > Commit-Queue: Juliana Patricia Vicente Franco <jupvfranco@google.com>
      > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
      > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#47790}
      
      TBR=mstarzinger@chromium.org,jarin@chromium.org,leszeks@chromium.org,bmeurer@chromium.org,jupvfranco@google.com
      
      Change-Id: Ia4f1a8acf6ca5cd5c74266437a03d854b3739af2
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:6637
      Reviewed-on: https://chromium-review.googlesource.com/647540Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47792}
      36b50283
    • Juliana Franco's avatar
      Remove weak-list of optimized JS functions. · 84c2dfce
      Juliana Franco authored
      This CL removes the weak-list of JS functions from the context
      and all the code that iterares over it. This list was being used
      mainly during deoptimization (for code unlinking) and during
      garbage collection. Removing it will improve performance of
      programs that create many closures and trigger many scavenge GC
      cycles.
      
      No extra work is required during garbage collection. However,
      given that we no longer unlink code from JS functions during
      deoptimization, we leave it as it is, and on its next activation
      we check whether the mark_for_deoptimization bit of that code is
      set, and if it is, than we unlink it and jump to lazy compiled
      code. This check happens in the prologue of every code object.
      
      We needed to change/remove the cctests that used to check
      something on this list.
      
      Working in x64, ia32, arm64, arm, mips64 and mips. 
      
      Bug: v8:6637
      Change-Id: I7f192652c8034b16a9ea71303fa8e78cda3c48f3
      Reviewed-on: https://chromium-review.googlesource.com/600427
      Commit-Queue: Juliana Patricia Vicente Franco <jupvfranco@google.com>
      Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47790}
      84c2dfce
  6. 01 Sep, 2017 7 commits
  7. 31 Aug, 2017 4 commits
  8. 30 Aug, 2017 2 commits
  9. 29 Aug, 2017 2 commits
  10. 28 Aug, 2017 2 commits
    • Mateusz Czeladka's avatar
      Pass Isolate pointer to String::Utf8Value/Value constructors · fe598532
      Mateusz Czeladka authored
      As part of J2V8 development (https://github.com/eclipsesource/J2V8),
      we realized that we had a subtle bug in how Isolate scope was created
      and it's lifetime managed, see:
      https://github.com/eclipsesource/J2V8/issues/313.
      
      Mentioned above bug was fixed, however, what we also noticed is that
      V8 API has been constantly and slowly moving to such an API, in which
      one has to pass Isolate explicitly to methods and/or constructors. We
      found two more places that might have been overlooked. This contribution
      adds passing of Isolate pointer explicitly to constructors of
      String::Utf8Value and String::Value classes.
      
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng;master.tryserver.v8:v8_linux_noi18n_rel_ng
      Change-Id: I61984285f152aba5ca922100cf3df913a9cb2cea
      Reviewed-on: https://chromium-review.googlesource.com/593309
      Commit-Queue: Adam Klein <adamk@chromium.org>
      Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47656}
      fe598532
    • Jakob Gruber's avatar
      Revert "[csa] Refactor large-object handling in string allocation" · 3168a963
      Jakob Gruber authored
      This reverts commit f6d73509.
      
      Reason for revert: Perf regressions https://crbug.com/758126
      
      Original change's description:
      > [csa] Refactor large-object handling in string allocation
      > 
      > CSA::AllocateSeq{One,Two}ByteString used its own home-grown handling to
      > allocate very large strings. This CL refactors both methods to use
      > AllocationFlags::kAllowLargeObjectAllocation instead. Callers now need
      > to specify explicitly if large-object allocation is possible or not.
      > 
      > Bug: chromium:636391
      > Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng
      > Change-Id: I0b7ffb0b083f4e977cea42c500f8f2ee1c60519f
      > Reviewed-on: https://chromium-review.googlesource.com/625738
      > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#47504}
      
      TBR=cbruni@chromium.org,jgruber@chromium.org
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Bug: chromium:636391
      Change-Id: Iab88ce400f489a677df821d4053bd3678289ae2e
      Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/637392Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47639}
      3168a963
  11. 25 Aug, 2017 2 commits
  12. 24 Aug, 2017 2 commits
  13. 23 Aug, 2017 2 commits
  14. 22 Aug, 2017 3 commits
  15. 21 Aug, 2017 1 commit