1. 03 May, 2022 1 commit
  2. 16 Aug, 2021 1 commit
  3. 10 Aug, 2021 1 commit
    • Georg Neis's avatar
      [compiler][test] Give tests control over finalization · 8b87e36e
      Georg Neis authored
      Some tests want to invalidate part of the VM state after an optimization
      has consumed the old state but before the code is installed.
      
      The existing mechanism for this is --block-concurrent-recompilation
      and %UnblockConcurrentRecompilation(). The former suspends optimization
      right after PrepareJob, before the background ExecuteJob phase. The
      intrinsic can then be used to unblock it again.
      
      This was good enough so far because the main "consume" work used to
      happen on the main thread. With concurrent inlining this is no longer
      true and we need something else.
      
      This CL introduces three intrinsics:
      
      %DisableOptimizationFinalization turns off automatic finalization of
      background optimizations.
      
      %FinalizeOptimization() can then be called at an appropriate time to
      manually finalize (and thus install) the code and reenable automatic
      finalization.
      
      In case one wants to perform some action on the main thread after the
      concurrent optimization has finished but before it is finalized, one can
      do so with the help of %WaitForBackgroundOptimization() (see tests).
      
      In a followup CL I'm removing the old mechanism since it now seems
      redundant.
      
      Bug: v8:12041, v8:7790
      Change-Id: Ib7195789105922eb7e4bff86dc5bc11e96a4f97b
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3071400
      Commit-Queue: Georg Neis <neis@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#76190}
      8b87e36e
  4. 03 Aug, 2021 1 commit
  5. 14 Jul, 2021 1 commit
  6. 22 Apr, 2021 1 commit
    • Jakob Gruber's avatar
      [compiler] Support GetPropertyAccessInfo in a concurrent setting · 1277bb5c
      Jakob Gruber authored
      Until this CL, the JSHeapBroker::GetPropertyAccessInfo (GPAI) process
      was as follows:
      
       1. GPAI is called on the main thread (MT) during the serialization
          phase to create and cache PAIs.
       2. GPAI is called again from the background thread (BT); only cached
          PAIs from step 1 are usable.
      
      As part of concurrent inlining, the goal is to move GPAI fully to the
      background thread. This CL takes a major step in that direction by
      making GPAI itself callable from the BT without resorting solely to PAIs
      that were previously cached on the MT.
      
      There are two main reasons why GPAI previously had to run on the MT:
      
       a) Concurrent access to Maps and other heap objects.
       b) Serialization and creation of ObjectRefs for objects discovered
          during GPAI.
      
      This CL addresses only reason a) and leaves b) for future work. This
      is done by keeping the two-pass approach, s.t. the initial call of
      GPAI on the MT discovers and serializes objects. We then clear all
      cached PAIs. The second call of GPAI on the BT thus runs full logic in a
      concurrent setting.
      
      Once all relevant objects (= maps and prototypes) no longer require
      MT-serialization, reason b) is also addressed and the first pass can be
      removed.
      
      The new logic is implemented behind the runtime flag
      --turbo-concurrent-get-property-access-info (default true), intended
      to be removed in the future.
      
      Bug: v8:7790
      Change-Id: Idbdbfe091d7316529246a686bb6d71c2a0f06f8b
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2817793
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Auto-Submit: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#74120}
      1277bb5c
  7. 31 Mar, 2021 1 commit
    • Frank Emrich's avatar
      [dict-proto] TF support for constants in dictionary mode protos, pt. 4 · c9b4f3c4
      Frank Emrich authored
      This CL is part of a  series that implements Turbofan support for
      property accesses satisfying the following conditions:
      1. The holder is a dictionary mode object.
      2. The holder is a prototype.
      3. The access is a load.
      
      This feature will only be enabled if the build flag
      v8_dict_property_const_tracking is set.
      
      This particular CL modifies existing mjsunit tests whose assumptions
      don't hold if v8_dict_property_const_tracking is enabled. This is
      done by adding special handling for the case that
      %IsDictPropertyConstTrackingEnabled() holds.
      
      Bug: v8:11248
      Change-Id: Ia36be73e4659a988b2471f0c8151b0442f3a98f5
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2780292
      Commit-Queue: Igor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73745}
      c9b4f3c4
  8. 27 Apr, 2019 1 commit
  9. 04 Mar, 2019 1 commit
  10. 15 Feb, 2017 1 commit
  11. 10 Feb, 2017 1 commit
  12. 26 Jan, 2017 3 commits
  13. 17 Mar, 2014 1 commit
  14. 23 Dec, 2013 1 commit
  15. 14 Oct, 2013 1 commit
  16. 22 Aug, 2013 1 commit
  17. 22 Jul, 2013 1 commit
  18. 20 Jun, 2013 1 commit
  19. 12 Jun, 2013 1 commit
  20. 11 Jun, 2013 1 commit
  21. 07 Jun, 2013 1 commit
  22. 12 Mar, 2013 1 commit
  23. 16 Nov, 2012 2 commits
  24. 26 Sep, 2012 1 commit
  25. 19 Sep, 2012 1 commit
  26. 21 Feb, 2012 1 commit
  27. 19 Jan, 2012 1 commit
  28. 13 Jan, 2012 1 commit
  29. 27 Nov, 2009 1 commit
  30. 23 Oct, 2009 1 commit
  31. 20 Oct, 2009 1 commit
  32. 04 Mar, 2009 1 commit
  33. 26 Sep, 2008 1 commit
  34. 09 Sep, 2008 1 commit
  35. 22 Aug, 2008 1 commit
    • christian.plesner.hansen's avatar
      Included mjsunit JavaScript test suite and C++ unit tests. · c42f5829
      christian.plesner.hansen authored
      In the shell sample don't print the result of executing a script, only
      evaluating expressions.
      
      Fixed issue when building samples on Windows using a shared V8
      library.  Added visibility option on Linux build which makes the
      generated library 18% smaller.
      
      Changed build system to accept multiple build modes in one build and
      generate seperate objects, libraries and executables for each mode.
      
      Removed deferred negation optimization (a * -b => -(a * b)) since this
      visibly changes operand conversion order.
      
      Improved parsing performance by introducing stack guard in preparsing.
      Without a stack guard preparsing always bails out with stack overflow.
      
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      c42f5829
  36. 03 Jul, 2008 1 commit