1. 26 Nov, 2020 1 commit
  2. 25 Nov, 2020 1 commit
  3. 14 Aug, 2020 1 commit
    • Leszek Swirski's avatar
      [offthread] Change OffThreadIsolate to LocalIsolate · f1589bbe
      Leszek Swirski authored
      This patch introduces a new LocalIsolate and LocalFactory, which use
      LocalHeap and replace OffThreadIsolate and OffThreadFactory. This allows
      us to remove those classes, as well as the related OffThreadSpace,
      OffThreadLargeObjectSpace, OffThreadHeap, and OffThreadTransferHandle.
      OffThreadLogger becomes LocalLogger.
      
      LocalHeap behaves more like Heap than OffThreadHeap did, so this allows
      us to additionally remove the concept of "Finish" and "Publish" that the
      OffThreadIsolate had, and allows us to internalize strings directly with
      the newly-concurrent string table (where the implementation can now move
      to FactoryBase).
      
      This patch also removes the off-thread support from the deserializer
      entirely, as well as removing the LocalIsolateWrapper which allowed
      run-time distinction between Isolate and OffThreadIsolate. LocalHeap
      doesn't support the reservation model used by the deserializer, and we
      will likely move the deserializer to use LocalIsolate unconditionally
      once we figure out the details of how to do this.
      
      Bug: chromium:1011762
      
      Change-Id: I1a1a0a72952b19a8a4c167c11a863c153a1252fc
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2315990
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Auto-Submit: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69397}
      f1589bbe
  4. 13 Jul, 2020 1 commit
  5. 08 Jul, 2020 1 commit
  6. 08 May, 2020 1 commit
  7. 06 May, 2020 1 commit
    • Leszek Swirski's avatar
      [parser] Move Compiler::Analyze into Parser · 65d738d4
      Leszek Swirski authored
      Move rewriting, scope analysis, and internalization, to be unconditional
      operations done after parsing rather than a separate compile phase. This
      removes some of the complexity about rememberering when to call
      Compiler::Analyze, and makes these paths a bit more uniform.
      
      Also, forbid allocating any more AST strings after AstValueFactory
      internalization, by nulling out the Zone. Add an InternalizePartial
      method which doesn't null out the zone for those cases where we do want
      to be able to allocate after internalizing (e.g. internalization before
      scope analysis).
      
      Change-Id: Id444246d8362a1d169baf664fc37657d9576fd96
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2182458Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67608}
      65d738d4
  8. 02 Mar, 2020 1 commit
  9. 13 Feb, 2020 1 commit
  10. 12 Feb, 2020 2 commits
  11. 10 Oct, 2019 1 commit
    • Joyee Cheung's avatar
      [class] implement static private methods · 4e8c6281
      Joyee Cheung authored
      This patch refactors the declaration and allocation of the class variable, and
      implements static private methods:
      
      
      - The class variable is declared in the class scope with an explicit
        reference through class_scope->class_variable(). Anonymous classes
        whose class variable may be accessed transitively through static
        private method access use the dot string as the class name. Whether
        the class variable is allocated depending on whether it is used.
        Other references of the class variable in the ClassLiteral AST node
        and the ClassInfo structure are removed in favor of the reference
        through the class scope.
      - Previously the class variable was always (stack- or context-)
        allocated if the class is named. Now if the class variable is only
        referenced by name, it's stack allocated. If it's used transitively
        by access to static private methods, or may be used through eval,
        it's context allocated. Therefore we now use 1 less context slots
        in the class context if it's a named class without anyone referencing
        it by name in inner scopes.
      - Explicit access to static private methods or potential access to
        static private methods through eval results in forced context
        allocation of the class variables. In those cases, we save its index
        in context locals in the ScopeInfo and deserialize it later, so that
        we can check that the receiver of static private methods is the class
        constructor at run time. This flag is recorded as
        HasSavedClassVariableIndexField in the scope info.
      - Classes that need the class variable to be saved due to
        access to static private methods now save a
        ShouldSaveClassVariableIndexField in the preparse data so that the
        bits on the variables can be updated during a reparse. In the case
        of anonymous classes that need the class variables to be saved,
        we also re-declare the class variable after the reparse since
        the inner functions are skipped and we need to rely on the preparse
        data flags to remember declaring it.
      
      Design doc: https://docs.google.com/document/d/1rgGRw5RdzaRrM-GrIMhsn-DLULtADV2dmIdh_iIZxlc/edit
      
      Bug: v8:8330
      Change-Id: Idd07803f47614e97ad202de3b7faa9f71105eac5
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1781011
      Commit-Queue: Joyee Cheung <joyee@igalia.com>
      Reviewed-by: 's avatarMythri Alle <mythria@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#64219}
      4e8c6281
  12. 13 Sep, 2019 1 commit
  13. 24 May, 2019 1 commit
  14. 23 May, 2019 2 commits
  15. 11 Apr, 2019 1 commit
  16. 03 Apr, 2019 1 commit
  17. 26 Feb, 2019 1 commit
  18. 31 Jan, 2019 1 commit
  19. 23 Jan, 2019 3 commits
  20. 21 Jan, 2019 1 commit
  21. 18 Jan, 2019 1 commit
  22. 10 Jan, 2019 1 commit
  23. 09 Jan, 2019 1 commit
  24. 08 Jan, 2019 1 commit
  25. 07 Jan, 2019 1 commit
  26. 21 Dec, 2018 1 commit
  27. 18 Dec, 2018 1 commit
  28. 14 Nov, 2018 1 commit
  29. 14 Sep, 2018 1 commit
  30. 07 Sep, 2018 2 commits
    • Ross McIlroy's avatar
      [Parser] Split building logic out of ProducedPreParserScopeData. · 83dee31e
      Ross McIlroy authored
      Splits PreParsedScopeDataBuilder out of ProducedPreParserScopeData to make the split between
      building PreParsedScopeData and using already build PreParserScopeData more explicit.
      
      BUG=v8:8041
      
      Change-Id: Iab42cab84c247152c14ac39f3136f985753160ec
      Reviewed-on: https://chromium-review.googlesource.com/1202104
      Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55718}
      83dee31e
    • Ross McIlroy's avatar
      [Parser] Add support for Zone allocated ConsumedPreParsingScopeData. · 8da9dbbb
      Ross McIlroy authored
      Adds support for zone allocated (off-heap) ConsumedPreParsingScopeData to
      enable worker-thread access to PreParsingScopeData during parallel IIFE
      compile tasks.
      
      In order to avoid code-duplication, a templated
      BaseConsumedPreParsingScopeData is added which implements the logic for
      decoding the bytestream into scope data. Two implementations of this
      base class are instantiated for each of the underlying serialized scope date:
        - ZoneConsumedPreParsedScopeData for exposing ZonePreParsedScopeData
        - OnHeapConsumedPreParsedScopeData for exposing on-heap PreParsedScopeData
      The interface for each of these classes is the ConsumedPreParsingScopeData,
      which exposes the methods required by the parser to deserialize the required
      data.
      
      As a side-cleanup, moved Ucs2CharLength and Utf8LengthHelper implementations
      to cc file so that we don't get a linker error if one of them are unused by
      the cc file including the header.
      
      
      BUG=v8:8041
      
      Change-Id: Id502312d32fe4a9ddb6f5d2d9d3e3a9d30b9b27d
      Reviewed-on: https://chromium-review.googlesource.com/1199462
      Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55711}
      8da9dbbb
  31. 22 Aug, 2018 1 commit
  32. 30 Jul, 2018 1 commit
  33. 11 Jul, 2018 1 commit
  34. 06 Jul, 2018 1 commit
    • Sigurd Schneider's avatar
      Revert "[parser] Move some PPSD sanity checks to debug" · b672210f
      Sigurd Schneider authored
      This reverts commit f45045cc.
      
      Reason for revert: <INSERT REASONING HERE>
      
      Original change's description:
      > [parser] Move some PPSD sanity checks to debug
      > 
      > Move some of PreParsedScopeData's santity checks, such as the magic
      > value separating skippable function data from scope data, to be debug
      > only, to save memory.
      > 
      > Start position of inner skippable functions is still kept, because it's
      > too good at catching bugs, but we may want to remove it in the future
      > as well.
      > 
      > Bug: chromium:818642
      > Change-Id: If86ff1b9845e8dd3b015b4e554d0033328b145bf
      > Reviewed-on: https://chromium-review.googlesource.com/1127046
      > Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      > Reviewed-by: Marja Hölttä <marja@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#54263}
      
      TBR=marja@chromium.org,leszeks@chromium.org
      
      Change-Id: I15ceedd66d9ecb66cf65f5834d09975b41d3ed27
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:818642
      Reviewed-on: https://chromium-review.googlesource.com/1127859Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54290}
      b672210f
  35. 05 Jul, 2018 1 commit
    • Leszek Swirski's avatar
      [parser] Move some PPSD sanity checks to debug · f45045cc
      Leszek Swirski authored
      Move some of PreParsedScopeData's santity checks, such as the magic
      value separating skippable function data from scope data, to be debug
      only, to save memory.
      
      Start position of inner skippable functions is still kept, because it's
      too good at catching bugs, but we may want to remove it in the future
      as well.
      
      Bug: chromium:818642
      Change-Id: If86ff1b9845e8dd3b015b4e554d0033328b145bf
      Reviewed-on: https://chromium-review.googlesource.com/1127046
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54263}
      f45045cc