1. 10 Mar, 2020 1 commit
    • Leszek Swirski's avatar
      [parser] Remove ParseInfo flag setting after script creation · e68b5941
      Leszek Swirski authored
      Previously, ParseInfo would create a script (with CreateScript) based on
      its flags, and then set its own flags based on that created script. This
      created a weird circular dependency for some of those flags, and
      sometimes we would have valid flags before script creation (main thread
      compile), while other times not (streaming compile).
      
      Now we set the ParseInfo flags manually and uniformly before script
      creation, and check that they match the created script after it has been
      created.
      
      Bug: v8:10314
      Change-Id: Ife886c77727cd228c944a4f97369a3e6365d8219
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2093433
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Auto-Submit: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66648}
      e68b5941
  2. 02 Mar, 2020 1 commit
  3. 26 Feb, 2020 1 commit
  4. 25 Feb, 2020 2 commits
  5. 24 Feb, 2020 1 commit
  6. 21 Feb, 2020 2 commits
  7. 10 Feb, 2020 2 commits
  8. 17 Jan, 2020 1 commit
  9. 16 Jan, 2020 1 commit
  10. 27 Dec, 2019 1 commit
    • Daniel Clifford's avatar
      Port bitfield ScopeFlags to Torque · 7e8a197c
      Daniel Clifford authored
      In the process:
      
      * Rework the Torque definition of ScopeInfo to enable direct
        field-style access of ScopeFlags, removing some dead code in
        the process.
      * Allow implicit FromConstexpr conversion from subtypes of
        'constexpr A' to other types. This makes it possible/easy to
        convert constexpr versions of enums to other types, since the
        constexpr version of the enum isn't addressable. It's namespace
        isn't a valid namespace and is an implementation detail anyway.
      * Cleanup LanguageMode: Language mode is now an enum and directly
        mirrors the C++-side definition rather than being a Smi. With
        the changes above, a new type LanguageModeSmi is introduced
        that is the Smi representation of LanguageMode that can be
        implicitly casted from constexpr LanguageMode values.
      
      Change-Id: I190412f95e02905f445d149883fbf1f2b8ed757b
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1977159
      Commit-Queue: Daniel Clifford <danno@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#65561}
      7e8a197c
  11. 05 Dec, 2019 1 commit
  12. 04 Dec, 2019 1 commit
  13. 27 Nov, 2019 1 commit
    • Leszek Swirski's avatar
      [isolate] Make field getters use a const Isolate* · 42a56e03
      Leszek Swirski authored
      To indicate that the Isolate* in getters might not be a "real" isolate,
      but rather a calculated one from GetIsolateForPtrCompr only used for
      calculating the isolate root, make that function return a const Isolate*
      and change field getters, Object::IsFoo predicates, and related
      functions to all take a const Isolate* instead of an Isolate*
      
      With this change, we can slightly more confidently use Objects that are
      in OffThreadSpace, without having to worry too much about having an
      Isolate* floating around that could accidentally be used.
      
      This is a slight abuse of const semantics, but it allows implicit
      conversion from Isolate* arguments to the const Isolate* parameter.
      
      Bug: v8:7703
      Bug: chromium:1011762
      Change-Id: I54d4a65d2299477195f4d754cabe64ce34fdaa4c
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1939455
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Auto-Submit: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#65199}
      42a56e03
  14. 19 Nov, 2019 1 commit
    • Jakob Gruber's avatar
      [compiler] Allow deopts to slightly exceed the stack limit · 4547c5ef
      Jakob Gruber authored
      We recently extended function-entry stack checks by an offset
      representing the difference in optimized and unoptimized frame sizes,
      with the intent of avoiding stack overflows during deopts. Although
      the generated code is very efficient (just a single additional
      register subtraction, executed exactly once per call), perf impact
      is measurable.
      
      To avoid the overhead in most cases, this CL adds a stack slack,
      currently set to 256 bytes, by which deopts are allowed to exceed the
      real V8 stack limit. For function-entry stack checks with an offset
      less than stack slack, the offset is not applied and the more
      efficient version of the stack check is emitted.
      
      The V8 limit is chosen to be smaller than OS stack size (assumed to
      be at least 1 MB). This guarantee is upheld even with slack.
      
      Bug: chromium:1020989,v8:9534
      Change-Id: Idee2e7ad1fa7810bf086a9f72ce00a9717010310
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1910099Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#65025}
      4547c5ef
  15. 16 Nov, 2019 1 commit
  16. 15 Nov, 2019 1 commit
  17. 08 Nov, 2019 1 commit
  18. 06 Nov, 2019 2 commits
    • Igor Sheludko's avatar
      [builtins] Port %TypedArray%.prototype.set to Torque · e309b2d9
      Igor Sheludko authored
      ... in an uintptr friendly way.
      
      Drive-by-fix:
      1) IsForceSlowPath() check is integrated into Cast<FastJSArray>
      2) disable tests incompatible with --force-slow-path in "slow_path" variant
      
      Bug: v8:8906, v8:4153
      Change-Id: I427f117073bc295120aa52fb3fe023ee04d58302
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1899988
      Commit-Queue: Igor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#64799}
      e309b2d9
    • Simon Zünd's avatar
      Introduce REPL mode · fbcc2e87
      Simon Zünd authored
      Design doc: bit.ly/v8-repl-mode
      
      This CL adds a new REPL mode that can be used via
      DebugEvaluate::GlobalREPL. REPL mode only implements re-declaration
      of 'let' bindings at the moment. Example:
      
      REPL Input 1: let x = 21;
      REPL Input 2: let x = 42;
      
      This would normally throw a SyntaxError, but works in REPL mode.
      
      The implementation is done by:
        - Setting a 'repl mode' bit on {Script}, {ScopeInfo}, {ParseInfo}
          and script {Scope}.
        - Each global let declaration still gets a slot reserved in the
          respective {ScriptContext}.
        - When a new REPL mode {ScriptContext} is created, name clashes
          for let bindings are not reported as errors.
        - Declarations, loads and stores for global let in REPL mode are
          now "load/store global" instead of accessing their respective
          context slot directly. This causes a lookup in the ScriptContextTable
          where the found slot for each name is guaranteed to be the same
          (the first one).
      
      Bug: chromium:1004193, chromium:1018158
      Change-Id: Ia6ab526b9f696400dbb8bfb611a4d43606119a47
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1876061
      Commit-Queue: Simon Zünd <szuend@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#64793}
      fbcc2e87
  19. 31 Oct, 2019 1 commit
  20. 30 Oct, 2019 1 commit
  21. 25 Oct, 2019 1 commit
    • Leszek Swirski's avatar
      [heap] Add base class for LargeObjectSpaces · eb667651
      Leszek Swirski authored
      Both LO_SPACE and NEW_LO_SPACE use the basic page management system of
      LargeObjectSpace, but implement different AllocateRaw methods (with
      the NEW_LO_SPACE version shadowing the LO_SPACE version).
      
      To clean this up, and allow other future LargeObjectSpace implementations
      (in particular, an off-thread variant), refactored the current
      LargeObjectSpace into a base class, and make both LargeObjectSpace
      (renamed to OldLargeObjectSpace) and NewLargeObjectSpace extend this
      class.
      
      Bug: chromium:1011762
      Change-Id: I41b45b97f2611611dcfde677213131396df03a5e
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1876824
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Auto-Submit: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#64560}
      eb667651
  22. 24 Oct, 2019 1 commit
  23. 23 Oct, 2019 3 commits
  24. 22 Oct, 2019 1 commit
    • Dominik Inführ's avatar
      [heap] Slots are either in sweeping or old-to-new RS after Full GC · e79d34ee
      Dominik Inführ authored
      This CL ensures that recorded slots are either in the sweeping or the
      old-to-new remembered set after mark-compact depending on whether the
      page was already swept or not.
      
      All pages that are swept during the evacuation phase also have their
      remembered sets merged. is_local() is renamed to
      is_compaction_space() and non-virtual. The PagedSpace now not only
      knows whether it is a compaction space or not but also for which
      collection through the compaction_space_kind_ field. This allows
      RefillFreeList to merge the remembered sets immediately also for the
      mark-compact collection.
      
      Change-Id: I7457f8393d73f3e8d6b6ebedc46ebc36af509729
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1868613Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#64458}
      e79d34ee
  25. 17 Oct, 2019 1 commit
  26. 16 Oct, 2019 1 commit
  27. 15 Oct, 2019 1 commit
  28. 07 Oct, 2019 1 commit
  29. 04 Oct, 2019 2 commits
  30. 02 Oct, 2019 3 commits
  31. 01 Oct, 2019 1 commit