1. 10 Aug, 2020 1 commit
  2. 07 Aug, 2020 1 commit
  3. 06 Aug, 2020 3 commits
    • Leszek Swirski's avatar
      [runtime] Move string table off-heap · 1546be9c
      Leszek Swirski authored
      Changes the isolate's string table into an off-heap structure. This
      allows the string table to be resized without allocating on the V8 heap,
      and potentially triggering a GC. This allows existing strings to be
      inserted into the string table without requiring allocation.
      
      This has two important benefits:
      
        1) It allows the deserializer to insert strings directly into the
           string table, rather than having to defer string insertion until
           deserialization completes.
      
        2) It simplifies the concurrent string table lookup to allow resizing
           the table inside the write lock, therefore eliminating the race
           where two concurrent lookups could both resize the table.
      
      The off-heap string table has the following properties:
      
        1) The general hashmap behaviour matches the HashTable, i.e. open
           addressing, power-of-two sized, quadratic probing. This could, of
           course, now be changed.
      
        2) The empty and deleted sentinels are changed to Smi 0 and 1,
           respectively, to make those comparisons a bit cheaper and not
           require roots access.
      
        3) When the HashTable is resized, the old elements array is kept
           alive in a linked list of previous arrays, so that concurrent
           lookups don't lose the data they're accessing. This linked list
           is cleared by the GC, as then we know that all threads are in
           a safepoint.
      
        4) The GC treats the hash table entries as weak roots, and only walks
           them for non-live reference clearing and for evacuation.
      
        5) Since there is no longer a FixedArray to serialize for the startup
           snapshot, there is now a custom serialization of the string table,
           and the string table root is considered unserializable during weak
           root iteration. As a bonus, the custom serialization is more
           efficient, as it skips non-string entries.
      
      As a drive-by, rename LookupStringExists_NoAllocate to
      TryStringToIndexOrLookupExisting, to make it clearer that it returns
      a non-string for the case when the string is an array index. As another
      drive-by, extract StringSet into a separate header.
      
      Bug: v8:10729
      Change-Id: I9c990fb2d74d1fe222920408670974a70e969bca
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2339104
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69270}
      1546be9c
    • Zeynep Cankara's avatar
      [tools][system-analyzer] Sync Timeline Track Scrolling · 54fd0626
      Zeynep Cankara authored
      This CL sync the timeline-tracks positions
      upon receiving a horizontal scrolling event.
      
      Bug: v8:10644
      
      Change-Id: I69bc1066a3f5da6ddc978ad71fe77820df8066bd
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2336806
      Commit-Queue: Zeynep Cankara <zcankara@google.com>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69263}
      54fd0626
    • Michael Achenbach's avatar
      Revert "Override _runner_flags for num_fuzzer.py" · fe850a80
      Michael Achenbach authored
      This reverts commit 3927c9c4.
      
      Reason for revert:
      https://ci.chromium.org/p/v8/builders/ci/V8%20NumFuzz%20-%20debug/10732
      
      Original change's description:
      > Override _runner_flags for num_fuzzer.py
      > 
      > This CL ensures that we add the
      > '--fuzzing' flag to the num_fuzzer script.
      > Please note that NumFuzzer does not inherit the
      > StandardTestRunner class but it inherits
      > BaseTestRunner so we had to override _runner_flags.
      > 
      > Bug: v8:10755
      > Change-Id: Ifb779ba402106b8f2ce4d0e13090ef2db468a6ae
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2335185
      > Commit-Queue: Almothana Athamneh <almuthanna@chromium.org>
      > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
      > Reviewed-by: Liviu Rau <liviurau@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#69241}
      
      TBR=machenbach@chromium.org,liviurau@chromium.org,almuthanna@chromium.org
      
      Change-Id: Ie39fb87a0e53c5cbbc276f8efb6e4a89ce44bb74
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:10755
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2340902Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69255}
      fe850a80
  4. 05 Aug, 2020 3 commits
  5. 04 Aug, 2020 2 commits
  6. 03 Aug, 2020 2 commits
  7. 31 Jul, 2020 1 commit
    • Michael Achenbach's avatar
      Open source js-fuzzer · 320d9870
      Michael Achenbach authored
      This is a JavaScript fuzzer originally authored by Oliver Chang. It
      is a mutation based fuzzer using Babel code transformations. For more
      information see the included README.md.
      
      The original code was altered:
      - Add new V8 copyright headers.
      - Make the test expectation generator aware of the headers.
      - Fix file endings for presubmit checks.
      - Fix `npm test` on fresh checkout with a new fake DB.
      - Make test skipping work with new v8/tools location.
      - OWNERS file.
      - New title section in README.md.
      
      No-Try: true
      Bug: chromium:1109770
      Change-Id: Ie71752c0a37491a50500c49060a3c526716ef933
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2320330
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69164}
      320d9870
  8. 30 Jul, 2020 4 commits
  9. 29 Jul, 2020 2 commits
  10. 28 Jul, 2020 6 commits
  11. 27 Jul, 2020 4 commits
  12. 24 Jul, 2020 3 commits
  13. 23 Jul, 2020 3 commits
  14. 22 Jul, 2020 5 commits
    • Michael Achenbach's avatar
      [foozzie] Cluster more .caller issues · 67cf72dc
      Michael Achenbach authored
      This summarizes more dupes of https://crbug.com/1042556
      
      TBR=mslekova@chromium.org
      
      No-Try: true
      Bug: chromium:1108048,chromium:1108322
      Change-Id: If572b5eeeac9c2750eb1a630dd76490529e60d4a
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2314476Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69011}
      67cf72dc
    • Zeynep Cankara's avatar
      [tools][system-analyzer] Handle IC Panel time filtering and emit events · b1761b06
      Zeynep Cankara authored
      This CL redesigns the IC Panel to emit events
      upon time range selection. IC entry time range specified
      from the input fields and entries falling into the selected
      time range bubbled up to the App controller. The IC panel
      emits events upon selection of a map or a source file location.
      
      Bug: v8:10644
      
      Change-Id: I468dc52b7a6c62dbdee096e80cc6110ceb994f69
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2305893
      Commit-Queue: Zeynep Cankara <zcankara@google.com>
      Reviewed-by: 's avatarSathya Gunasekaran  <gsathya@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69006}
      b1761b06
    • Zeynep Cankara's avatar
      [tools][system-analyzer] Add map-details and map-transitions · e607d54a
      Zeynep Cankara authored
      This CL encapsulates map panel behaviour with custom
      web components map-details for displaying information
      and map-transitions to show map transition tree. The
      web components emit/receive events to interact with
      the app.
      
      Bug: v8:10644
      
      Change-Id: Ic61c2794ed7ab854ee61fa1e7c8fe9b1c3c31b7e
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2305889
      Commit-Queue: Zeynep Cankara <zcankara@google.com>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Reviewed-by: 's avatarSathya Gunasekaran  <gsathya@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69004}
      e607d54a
    • Maya Lekova's avatar
      Revert "Reland "[flags] warn about contradictory flags"" · a269ce20
      Maya Lekova authored
      This reverts commit d8f8a7e2.
      
      Reason for revert: Breaks code_serializer variant - https://cr-buildbucket.appspot.com/build/8874070652992164976
      
      Original change's description:
      > Reland "[flags] warn about contradictory flags"
      > 
      > This is a reland of b8f91666
      > Difference to previous CL: Additional functionality to specify
      > incompatible flags based on GN variables and extra-flags, used
      > to fix the issues that came up on the waterfall.
      > 
      > This also changes the rules regarding repeated flags: While
      > explicitly repeated flags are allowed for boolean values as long
      > as they are identical, repeated flags or explicit flags in the
      > presence of an active implication are disallowed for non-boolean
      > flags. The latter simplifies specifying conflict rules in
      > variants.py. Otherwise a rule like
      > 
      > INCOMPATIBLE_FLAGS_PER_EXTRA_FLAG = {
      >   "--gc-interval=*": ["--gc-interval=*"],
      > }
      > 
      > wouldn't work because specifying the same GC interval twice
      > wouldn't actually count as a conflict. This was an issue with
      > test/mjsunit/wasm/gc-buffer.js, which specifies
      > --gc-interval=500 exactly like the extra flag by the stress bot.
      > 
      > Also, this now expands contradictory flags checking to d8 flags
      > for consistency.
      > 
      > Original change's description:
      > > [flags] warn about contradictory flags
      > >
      > > Design Doc: https://docs.google.com/document/d/1lkvu8crkK7Ei39qjkPCFijpNyxWXsOktG9GB-7K34jM/
      > >
      > > Bug: v8:10577
      > > Change-Id: Ib9cfdffa401c48c895bf31caed5ee03545beddab
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2154792
      > > Reviewed-by: Clemens Backes <clemensb@chromium.org>
      > > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
      > > Reviewed-by: Georg Neis <neis@chromium.org>
      > > Reviewed-by: Tamer Tas <tmrts@chromium.org>
      > > Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#68168}
      > 
      > Bug: v8:10577
      > Change-Id: I268e590ee18a535b13dee14eeb15ddd0a9ee8341
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2235115
      > Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      > Reviewed-by: Tamer Tas <tmrts@chromium.org>
      > Reviewed-by: Clemens Backes <clemensb@chromium.org>
      > Reviewed-by: Georg Neis <neis@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#68989}
      
      TBR=machenbach@chromium.org,neis@chromium.org,clemensb@chromium.org,tebbi@chromium.org,tmrts@chromium.org
      
      Change-Id: I7969065b0edbc463a94e530485bc2ab623d77b62
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:10577
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2312782Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Commit-Queue: Maya Lekova <mslekova@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#68992}
      a269ce20
    • Tobias Tebbi's avatar
      Reland "[flags] warn about contradictory flags" · d8f8a7e2
      Tobias Tebbi authored
      This is a reland of b8f91666
      Difference to previous CL: Additional functionality to specify
      incompatible flags based on GN variables and extra-flags, used
      to fix the issues that came up on the waterfall.
      
      This also changes the rules regarding repeated flags: While
      explicitly repeated flags are allowed for boolean values as long
      as they are identical, repeated flags or explicit flags in the
      presence of an active implication are disallowed for non-boolean
      flags. The latter simplifies specifying conflict rules in
      variants.py. Otherwise a rule like
      
      INCOMPATIBLE_FLAGS_PER_EXTRA_FLAG = {
        "--gc-interval=*": ["--gc-interval=*"],
      }
      
      wouldn't work because specifying the same GC interval twice
      wouldn't actually count as a conflict. This was an issue with
      test/mjsunit/wasm/gc-buffer.js, which specifies
      --gc-interval=500 exactly like the extra flag by the stress bot.
      
      Also, this now expands contradictory flags checking to d8 flags
      for consistency.
      
      Original change's description:
      > [flags] warn about contradictory flags
      >
      > Design Doc: https://docs.google.com/document/d/1lkvu8crkK7Ei39qjkPCFijpNyxWXsOktG9GB-7K34jM/
      >
      > Bug: v8:10577
      > Change-Id: Ib9cfdffa401c48c895bf31caed5ee03545beddab
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2154792
      > Reviewed-by: Clemens Backes <clemensb@chromium.org>
      > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
      > Reviewed-by: Georg Neis <neis@chromium.org>
      > Reviewed-by: Tamer Tas <tmrts@chromium.org>
      > Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#68168}
      
      Bug: v8:10577
      Change-Id: I268e590ee18a535b13dee14eeb15ddd0a9ee8341
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2235115
      Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      Reviewed-by: 's avatarTamer Tas <tmrts@chromium.org>
      Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#68989}
      d8f8a7e2