1. 27 May, 2020 1 commit
    • George Wort's avatar
      [turbolizer] Display live ranges with sequences · 0282737d
      George Wort authored
      Display register allocation live ranges alongside sequences in
      turbolizer.
      
      The existing --trace-turbo flag now also outputs the register
      allocation data as part of the json file alongside the
      instruction sequence data that is already produced before and
      after register allocation is performed. This data includes live
      range intervals for each virtual and fixed register and the state
      of their assignments.
      
      This json data can now be displayed in turbolizer alongside the
      instruction sequences. The information is presented as a grid,
      with each grid cell representing a LifeTimePosition of a certain
      virtual register, determined by the column and row indices
      respectively. Each LifeTimePosition is shown to be part of an
      instruction id which itself is shown to be part of a block id.
      Each interval is shown as a coloured rectangle positioned over
      the relevant cells, and displaying text to indicate the state of
      their assignment.
      
      The Resizer object has been extended to allow the grid's html
      panel to be varied in size in the same manner that the left and
      right panels can be. The size of the grid itself must also be
      adjusted whenever the div container changes size.
      
      The RangeView class is introduced and is created and held by the
      single SequenceView object used to display the
      InstructionSequence data before and after register allocation.
      A checkbox allows the user to show/hide the range view, this is
      disabled when register allocation data is not provided or more
      than 249 instructions are in the sequence. The latter being
      required due to the css grid-row-col limit of 1000 alond with
      helping alleviate performance issues. The SequenceView object
      tracks the phase index currently selected as well as whether or
      not it is currently being shown. This ensures that the RangeView
      is not hidden and shown when switching between before and after
      register allocation, allowing for a smoother transition between
      the two. The scroll position is also saved and restored for
      convenience.
      
      The data about the instruction sequence required for the display
      is held by the RangeView object and reset whenever a new
      instruction sequence is shown. The grid div must sync its scroll
      with the headers and row labels so as to ensure a consistent
      view. The register allocation data is extracted from the json,
      with each register row showing all intervals within the relevant
      ranges. When the view is switched between before and after
      register allocation, the relevant intervals are swapped in.
      
      Bug: v8:7327
      Notry: true
      Change-Id: I183535a2410a7d663382f387199885250fb98691
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2184232Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Reviewed-by: 's avatarSantiago Aboy Solanes <solanes@chromium.org>
      Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#68019}
      0282737d
  2. 20 Nov, 2019 1 commit
  3. 04 Nov, 2019 1 commit
  4. 06 Jan, 2019 1 commit
  5. 22 Nov, 2018 1 commit
  6. 08 Nov, 2018 2 commits
  7. 06 Nov, 2018 2 commits
  8. 16 Jul, 2018 1 commit
  9. 08 Jun, 2018 1 commit
    • Sigurd Schneider's avatar
      [turbolizer] Migrate d3 from v3 to v5 · 8a7d8f81
      Sigurd Schneider authored
      This CL updates the d3.js library to version 5.4. The most notable
      change is that the library can now distinguish between click and drag
      events if an element supports both selection via click and displacement
      via drag.
      
      Curiously, npm created a 'package-lock.json', which is ~500 lines, and
      which is supposed to be checked into the repository according to documentation.
      
      Change-Id: Ifabd236296d951f390e0a1516d89e73138ce1713
      Reviewed-on: https://chromium-review.googlesource.com/1076234Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53604}
      8a7d8f81
  10. 29 May, 2018 1 commit
  11. 22 May, 2018 1 commit
  12. 16 May, 2018 1 commit
    • Sigurd Schneider's avatar
      [turbolizer] Add support for inlined functions · a97a362d
      Sigurd Schneider authored
      This CL adds support for inlined functions in Turbolizer. It is also a
      refactoring of the Turbolizer code-base. Most importantly, handling of
      source positions changed to exact source positions, and not code ranges.
      This improves selection interoperability between different phase views.
      
      A separate CL changes the Turbolizer JSON format to include inlining
      information. This Turbolizer update, however, is intended to be backwards
      compatible with the JSON format Turbolizer generated before the JSON
      format change.
      
      
      Bug: v8:7327
      Change-Id: Ic67506a6f3a36fe98c012b1e76994972779c1fd2
      Reviewed-on: https://chromium-review.googlesource.com/1032784
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Reviewed-by: 's avatarDaniel Clifford <danno@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53213}
      a97a362d
  13. 18 Jan, 2018 1 commit
  14. 12 Jan, 2018 1 commit
  15. 14 Sep, 2016 1 commit
  16. 08 Sep, 2016 1 commit
  17. 09 Aug, 2016 1 commit
  18. 28 Jul, 2016 1 commit
    • Alexander.Gilday2's avatar
      [turbolizer] Add support for showing perf profiling information. · 286e2b14
      Alexander.Gilday2 authored
      perf-turbo.py merges a perf data file and a turbofan trace file into a
      single json object which can then be piped to a file and uploaded to
      turbolizer to display the profiling data in the disassembly. With the
      changes, turbolizer now shows the event counts for instruction in
      percentage form and with heatmap-stype colouring. Multiple different
      events can be recorded at once with a new drop-down menu to select which
      event to view the counts of. The documentation has been updated with
      instructions. Using the script is optional and turbolizer retains
      previous functionality if a trace without profiling data is uploaded.
      
      BUG=None
      
      Review-Url: https://codereview.chromium.org/2174803002
      Cr-Commit-Position: refs/heads/master@{#38124}
      286e2b14
  19. 25 Jul, 2016 1 commit
    • bgeron's avatar
      [turbolizer] Style improvements. · 7ef24ad9
      bgeron authored
      - Remove duplicated CSS.
      - Expand landing area of upload button.
      - Give the toolbox a transparent white background.
      - Make the phase-select box look nicer before file load.
      - Remove the margin at the top of the screen.
      
      The height of the margin was exactly the height of span#graph-toolbox,
      and due to the semantics of position:relative, space was reserved for it
      at the top of div#middle.
      
      BUG=
      R=danno
      
      Review-Url: https://codereview.chromium.org/2164373002
      Cr-Commit-Position: refs/heads/master@{#38003}
      7ef24ad9
  20. 13 Jun, 2016 1 commit
  21. 19 May, 2016 1 commit