1. 11 Apr, 2019 1 commit
  2. 03 Apr, 2019 1 commit
  3. 26 Feb, 2019 1 commit
  4. 31 Jan, 2019 1 commit
  5. 23 Jan, 2019 3 commits
  6. 21 Jan, 2019 1 commit
  7. 18 Jan, 2019 1 commit
  8. 10 Jan, 2019 1 commit
  9. 09 Jan, 2019 1 commit
  10. 08 Jan, 2019 1 commit
  11. 07 Jan, 2019 1 commit
  12. 21 Dec, 2018 1 commit
  13. 18 Dec, 2018 1 commit
  14. 14 Nov, 2018 1 commit
  15. 14 Sep, 2018 1 commit
  16. 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
  17. 22 Aug, 2018 1 commit
  18. 30 Jul, 2018 1 commit
  19. 11 Jul, 2018 1 commit
  20. 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
  21. 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
  22. 02 Jul, 2018 1 commit
  23. 07 Nov, 2017 1 commit
  24. 25 Oct, 2017 1 commit
  25. 23 Oct, 2017 2 commits
    • Marja Hölttä's avatar
      Revert "[parser] Skipping inner funcs: Use less memory for variables." · 271e3b10
      Marja Hölttä authored
      This reverts commit 97ead433.
      
      Reason for revert: makes the PreParserScopeAnalysis test much slower.
      
      Original change's description:
      > [parser] Skipping inner funcs: Use less memory for variables.
      > 
      > - Make it possible to store quarter-bytes instead of full bytes.
      > 
      > - Don't store is_used; it can be recovered correctly based on the actual full
      >   parse (when a lazy function is eventually called) and
      >   has_forced_scope_allocation.
      > 
      > - With the is_used change, the old testing approach (which compared a scope for
      >   which we didn't do scope allocation to the baseline) no longer made
      >   sense. Replaced it with a new testing approach, which is also closer to the
      >   actual usage.
      > 
      > BUG=v8:5516
      > 
      > Change-Id: I02bac24e482126689dcdbabe8b3a04977be29b0c
      > Reviewed-on: https://chromium-review.googlesource.com/725422
      > Commit-Queue: Marja Hölttä <marja@chromium.org>
      > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#48828}
      
      TBR=marja@chromium.org,verwaest@chromium.org
      
      Change-Id: I8cb87bcd55462b1cef4444dabb5cbfa2ecb24c7c
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:5516
      Reviewed-on: https://chromium-review.googlesource.com/732878Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
      Commit-Queue: Marja Hölttä <marja@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48829}
      271e3b10
    • Marja Hölttä's avatar
      [parser] Skipping inner funcs: Use less memory for variables. · 97ead433
      Marja Hölttä authored
      - Make it possible to store quarter-bytes instead of full bytes.
      
      - Don't store is_used; it can be recovered correctly based on the actual full
        parse (when a lazy function is eventually called) and
        has_forced_scope_allocation.
      
      - With the is_used change, the old testing approach (which compared a scope for
        which we didn't do scope allocation to the baseline) no longer made
        sense. Replaced it with a new testing approach, which is also closer to the
        actual usage.
      
      BUG=v8:5516
      
      Change-Id: I02bac24e482126689dcdbabe8b3a04977be29b0c
      Reviewed-on: https://chromium-review.googlesource.com/725422
      Commit-Queue: Marja Hölttä <marja@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48828}
      97ead433
  26. 19 Oct, 2017 1 commit
  27. 29 Sep, 2017 1 commit
    • Marja Hölttä's avatar
      [parser] Skipping inner funcs: Make the data on heap smaller. · a0258063
      Marja Hölttä authored
      We were unnecessarily storing everything as uint32_t, even though many items in
      the preparsed scope data can be stored as uint8_t. This CL also adds an
      (internal) API which abstracts away the actual data storing, so the backing
      store can be made even more efficient (e.g., use only 1-3 bytes for some
      uint32_t values, if they fit) without affecting other parts of the code.
      
      BUG=v8:5516,chromium:762492
      
      Change-Id: I7cd4d91dc11f87f8aec9c7584044a6f2a59b73ba
      Reviewed-on: https://chromium-review.googlesource.com/684182
      Commit-Queue: Marja Hölttä <marja@chromium.org>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48231}
      a0258063
  28. 04 Aug, 2017 1 commit
    • Marja Hölttä's avatar
      [parser] Skipping inner funcs: implement a bailout. · e7a46253
      Marja Hölttä authored
      In some cases, PreParser cannot replicate the Scope structure created by
      Parser. It happens esp. with arrow function parameters, since the relevant
      information is already lost by the time we figure out it's an arrow function.
      
      In these cases, PreParser should bail out of trying to create data for skipping
      inner functions.
      
      Implementation notes:
      
      - The arrow function case is more fundamental; the non-arrow case could be
        hacked together somehow if we implemented tracking is_simple for each param
        separately; but now that it's possible to bail out consistently from both
        cases, I don't think the is_simple complication is worth it.
      
      - The added mjsunit test cases are based on the test262 test cases which exposed
        the problem.
      
      - cctest/preparser/PreParserScopeAnalysis was exercising similar cases, but the
        problem didn't show up because the function parameters didn't contain
        skippable functions. Those test cases have been repurposed for testing the
        bailout.
      
      - Extra precaution: the bailout tests are in a separate file, to guard from the
        bug that a bailout case results in bailing out of *all* data creation, which
        would make all skipping tests in the same file useless.
      
      BUG=v8:5516
      
      Change-Id: I4324749a5ec602fa5d7dc27647ade0284a6842fe
      Reviewed-on: https://chromium-review.googlesource.com/599849Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Commit-Queue: Marja Hölttä <marja@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47170}
      e7a46253
  29. 30 Jun, 2017 1 commit
  30. 25 Apr, 2017 2 commits
  31. 24 Apr, 2017 2 commits
    • Franziska Hinkelmann's avatar
      Revert "[parser] Skipping inner funcs: use PodArray for the data." · 7f7d445f
      Franziska Hinkelmann authored
      This reverts commit e8f1fc24.
      
      Reason for revert: Node.js doesn't build with this patch anymore. 
      
      out/Release/obj/gen/debug-support.cc:428:55: error: expected initializer before ‘<’ token
       int v8dbg_class_Script__preparsed_scope_data__PodArray<uint32_t> = Script::kPreParsedScopeDataOffset;
      
      Original change's description:
      > [parser] Skipping inner funcs: use PodArray for the data.
      > 
      > The data produced by the preparser scope analysis might be large.
      > 
      > ByteArrays are already allowed in the large object space.
      > 
      > This fixes mjsunit/asm/poppler/poppler.js with the flag on.
      > 
      > BUG=v8:5516
      > 
      > Change-Id: I951836244776c57efdd2a491c5c78493dc8cca63
      > Reviewed-on: https://chromium-review.googlesource.com/484459
      > Commit-Queue: Marja Hölttä <marja@chromium.org>
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#44795}
      
      TBR=marja@chromium.org,mstarzinger@chromium.org,ulan@chromium.org,vogelheim@chromium.org,hpayer@chromium.org,v8-reviews@googlegroups.com
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:5516
      
      Change-Id: I3012d27b6b65b37d3afc5f3b0921e044bdcc118e
      Reviewed-on: https://chromium-review.googlesource.com/485759Reviewed-by: 's avatarFranziska Hinkelmann <franzih@chromium.org>
      Commit-Queue: Franziska Hinkelmann <franzih@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#44805}
      7f7d445f
    • Marja Hölttä's avatar
      [parser] Skipping inner funcs: use PodArray for the data. · e8f1fc24
      Marja Hölttä authored
      The data produced by the preparser scope analysis might be large.
      
      ByteArrays are already allowed in the large object space.
      
      This fixes mjsunit/asm/poppler/poppler.js with the flag on.
      
      BUG=v8:5516
      
      Change-Id: I951836244776c57efdd2a491c5c78493dc8cca63
      Reviewed-on: https://chromium-review.googlesource.com/484459
      Commit-Queue: Marja Hölttä <marja@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#44795}
      e8f1fc24
  32. 19 Apr, 2017 1 commit
  33. 18 Apr, 2017 1 commit
  34. 10 Apr, 2017 1 commit