1. 10 Dec, 2020 1 commit
  2. 09 Dec, 2020 1 commit
  3. 08 Dec, 2020 3 commits
    • Clemens Backes's avatar
      Reland "[wasm] Pass the script ID to code logging" · a58a5e59
      Clemens Backes authored
      This is a reland of ab4d9717.
      The original CL did a std::move before the final use of the NativeModule.
      PS2 removes that.
      
      TBR=petermarshall@chromium.org, thibaudm@chromium.org
      
      Original change's description:
      > [wasm] Pass the script ID to code logging
      >
      > We didn't pass a script ID with the code creation events for profiling.
      > This made DevTools lose the connection to the wasm script, hence
      > jumping from the profiler entry to the source did not work.
      >
      > This CL changes the timing of code logging a bit such that the script is
      > always allocated before logging. In the queue of code to be logged we
      > then also store the script ID, and finally set it on the {CodeEntry}
      > object.
      >
      > R=thibaudm@chromium.org
      >
      > Bug: chromium:1125986
      > Change-Id: I2248c1d520bc819436bbe732373f7a3446b64f48
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2575057
      > Commit-Queue: Clemens Backes <clemensb@chromium.org>
      > Reviewed-by: Peter Marshall <petermarshall@chromium.org>
      > Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#71654}
      
      Bug: chromium:1125986
      Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng
      Change-Id: I2a7c5fe04fff726836b1279e3d05b1702a4efb76
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2578980Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#71663}
      a58a5e59
    • Clemens Backes's avatar
      Revert "[wasm] Pass the script ID to code logging" · 8d013ea1
      Clemens Backes authored
      This reverts commit ab4d9717.
      
      Reason for revert: UBSan issues: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20UBSan/14184/overview
      
      Original change's description:
      > [wasm] Pass the script ID to code logging
      >
      > We didn't pass a script ID with the code creation events for profiling.
      > This made DevTools lose the connection to the wasm script, hence
      > jumping from the profiler entry to the source did not work.
      >
      > This CL changes the timing of code logging a bit such that the script is
      > always allocated before logging. In the queue of code to be logged we
      > then also store the script ID, and finally set it on the {CodeEntry}
      > object.
      >
      > R=​thibaudm@chromium.org
      >
      > Bug: chromium:1125986
      > Change-Id: I2248c1d520bc819436bbe732373f7a3446b64f48
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2575057
      > Commit-Queue: Clemens Backes <clemensb@chromium.org>
      > Reviewed-by: Peter Marshall <petermarshall@chromium.org>
      > Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#71654}
      
      TBR=petermarshall@chromium.org,clemensb@chromium.org,thibaudm@chromium.org
      
      Change-Id: I03c90c77b55e770797a6d66b1d778992a047e07a
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:1125986
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2575070Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#71660}
      8d013ea1
    • Clemens Backes's avatar
      [wasm] Pass the script ID to code logging · ab4d9717
      Clemens Backes authored
      We didn't pass a script ID with the code creation events for profiling.
      This made DevTools lose the connection to the wasm script, hence
      jumping from the profiler entry to the source did not work.
      
      This CL changes the timing of code logging a bit such that the script is
      always allocated before logging. In the queue of code to be logged we
      then also store the script ID, and finally set it on the {CodeEntry}
      object.
      
      R=thibaudm@chromium.org
      
      Bug: chromium:1125986
      Change-Id: I2248c1d520bc819436bbe732373f7a3446b64f48
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2575057
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#71654}
      ab4d9717
  4. 07 Dec, 2020 1 commit
    • Clemens Backes's avatar
      [wasm] Fix code logging of wrappers · a22e8a70
      Clemens Backes authored
      Import wrappers were only logged if logging was enabled during
      compilation. If the profiler is enabled later, and regular wasm code is
      logged via {NativeModule::LogWasmCodes}, the import wrappers were
      missing.
      This CL fixes the long-standing TODO, and adds tests which triggered
      that code path. Those tests were hanging before because the expected
      functions did never appear in the profile.
      
      Drive-by: If {WasmEngine::LogOutstandingCodesForIsolate} detects that
      code logging is disabled by now, it should still clear the {code_to_log}
      vector.
      
      R=thibaudm@chromium.org
      
      Bug: chromium:1125986, chromium:1141787
      Change-Id: I2566ef369bb61a09488f2d932b6c10d92e4cb12f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2574696Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#71645}
      a22e8a70
  5. 04 Dec, 2020 1 commit
  6. 20 Nov, 2020 1 commit
    • Clemens Backes's avatar
      [wasm][profiler] Fix late enabling of the profiler · 31005b5c
      Clemens Backes authored
      We had a test which first enabled the profiler, and then compiled wasm
      code. In this case, all code objects were registered correctly and the
      profile looked as expected.
      This CL extends the test for also test another order: First compile the
      wasm code, then enable the profiler. In that case, we were reporting a
      wrong debug name of the exported wasm function. The name of that
      function is spec'ed to be the string representation of the function
      index. But for debugging, we want to see a more meaningful name,
      identical to the name we show when reporting the code during
      compilation.
      
      This fix requires handlifying the {SharedFunctionInfo::DebugName}
      method, because for exported wasm functions, it needs to allocate a new
      name on the JS heap.
      In order to avoid this allocation where possible, a second variant is
      added which returns a unique_ptr directly. This can be used in all
      places where the name is just being printed, which turned out to be the
      majority of cases ({DebugName().ToCString()}).
      
      R=petermarshall@chromium.org
      
      Bug: chromium:1141787
      Change-Id: I0343c2f06f0b852007535ff07459b712801ead01
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2543931
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#71308}
      31005b5c
  7. 13 Oct, 2020 1 commit
  8. 18 Aug, 2020 1 commit
  9. 25 Feb, 2020 1 commit
  10. 24 Feb, 2020 2 commits
  11. 10 Jan, 2020 1 commit
  12. 08 Oct, 2019 1 commit
  13. 16 May, 2019 2 commits
    • Jakob Gruber's avatar
      [coverage] Enable optimizations in block coverage modes · 8c33e289
      Jakob Gruber authored
      Now that function counts are based on dedicated call counters instead
      of FeedbackVector::invocation_count, we can enable optimizations for
      block coverage modes.
      
      This significantly speeds up V8 with enabled coverage:
      
      Before this CL, the web-tooling-benchmark regressed by 70% (block
      count coverage vs. no coverage).  With this CL, the regression is
      reduced to 40%.
      
      Bug: v8:6000,v8:9148
      Change-Id: I6bb538bd66f32f016c66c1d1996bce3b25958232
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1615241
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61582}
      8c33e289
    • Jakob Gruber's avatar
      [coverage] Add dedicated FunctionLiteral counters · 3002ff44
      Jakob Gruber authored
      Prior to this CL, call counts at function scope were taken from the
      FeedbackVector::invocation_count field. This had two major drawbacks:
      1. for generator functions, these count the number of resumptions
      instead of the number of calls; and 2. the invocation count is not
      maintained in optimized code.
      
      The solution implemented here is to add a dedicated call counter at
      function scope which is incremented exactly once each time the
      function is called.
      
      A minor complication is that our coverage output format expects
      function-scope counts in the dedicated CoverageFunction object, and
      not as a CoverageBlock. Thus function-scope block counts are initially
      marked with magic positions, and later recognized and rewritten during
      processing.
      
      This CL thus fixes reported generator function call counts and enables
      optimizations in block coverage modes (more to come in a follow-up).
      
      Drive-by: Don't report functions with empty source ranges.
      
      Bug: v8:6000,v8:9148,v8:9212
      Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
      Change-Id: Idbe5edb35a595cf12b6649314738ac00efd173b8
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1613996
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61574}
      3002ff44
  14. 20 Feb, 2019 1 commit
    • Clemens Hammacher's avatar
      Reland "[inspector] Add wasm profiling test" · 0d4985d0
      Clemens Hammacher authored
      This is a reland of 6202c445.
      Moved skipped test from 'variant == jitless' to
      'lite_mode or variant == jitless'.
      
      Original change's description:
      > [inspector] Add wasm profiling test
      >
      > This adds a first simple test to check that CPU profiles contain wasm
      > function names.
      >
      > R=herhut@chromium.org, kozyatinskiy@chromium.org
      >
      > Bug: v8:8783
      > Change-Id: I26b1fd2b7ec555c073d80a464ee8a799b017b07a
      > Reviewed-on: https://chromium-review.googlesource.com/c/1454597
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Reviewed-by: Stephan Herhut <herhut@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#59703}
      
      TBR=herhut@chromium.org
      
      Bug: v8:8783
      Change-Id: I4f68db86bf1caa4f0d68dd4fa227ded25bf5145a
      Reviewed-on: https://chromium-review.googlesource.com/c/1477678Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59730}
      0d4985d0
  15. 19 Feb, 2019 2 commits
  16. 15 Feb, 2019 1 commit
  17. 05 Feb, 2019 1 commit
  18. 25 Jan, 2019 1 commit
  19. 21 Dec, 2018 1 commit
    • Jakob Gruber's avatar
      [coverage] Rework continuation counter handling · 9365d090
      Jakob Gruber authored
      This changes a few bits about how continuation counters are handled.
      
      It introduces a new mechanism that allows removal of a continuation
      range after it has been created. If coverage is enabled, we run a first
      post-processing pass on the AST immediately after parsing, which
      removes problematic continuation ranges in two situations:
      
      1. nested continuation counters - only the outermost stays alive.
      2. trailing continuation counters within a block-like structure are
         removed if the containing structure itself has a continuation.
      
      R=bmeurer@chromium.org, jgruber@chromium.org, yangguo@chromium.org
      
      Bug: v8:8381, v8:8539
      Change-Id: I6bcaea5060d8c481d7bae099f6db9f993cc30ee3
      Reviewed-on: https://chromium-review.googlesource.com/c/1339119Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58443}
      9365d090
  20. 13 Dec, 2018 1 commit
  21. 31 May, 2018 2 commits
  22. 20 Nov, 2017 1 commit
  23. 08 Sep, 2017 1 commit
  24. 28 Aug, 2017 1 commit
  25. 23 Aug, 2017 1 commit
  26. 10 Aug, 2017 1 commit
  27. 07 Aug, 2017 1 commit
  28. 02 Aug, 2017 2 commits
  29. 31 Jul, 2017 2 commits
  30. 27 Jul, 2017 1 commit
  31. 26 Jul, 2017 1 commit
  32. 17 Jul, 2017 1 commit