Commit Graph

29 Commits

Author SHA1 Message Date
pierre.langlois
2dc261e1c4 [turbolizer] Match instruction offsets as a hexadecimal numbers
The output of disassemblers was changed to display instruction offsets as
hexadecimal numbers instead of a decimal numbers. Reflect this change in
turbolizer.

BUG=

Review-Url: https://codereview.chromium.org/2885453002
Cr-Commit-Position: refs/heads/master@{#45315}
2017-05-15 17:43:26 +00:00
Leszek Swirski
7b8d8e9a54 [turbolizer] Use textContent to set code view
Previously code view was set using innerHTML. This would cause problems
for html characters in the code -- in particular, '<' without a space
after it would start new HTML tags, and the code following it wouldn't
be visible.

Now, the source text is set using textContent, which doesn't parse the
value as HTML and implicitly escapes any HTML characters in the code.

Change-Id: I612a18c37bbb4da6a87063bb39d7f7123a3c4c0d
Reviewed-on: https://chromium-review.googlesource.com/461826
Reviewed-by: Daniel Clifford <danno@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44233}
2017-03-29 14:28:32 +00:00
jing.bao
c70a12449a [turbolizer] Fix distinguishing simplified nodes
BUG=

Review-Url: https://codereview.chromium.org/2523263003
Cr-Commit-Position: refs/heads/master@{#41270}
2016-11-24 15:32:42 +00:00
jing.bao
9e3eafdd28 [turbolizer] Recognize nested [] in json file
fix schedule viewing for text like
1756: HeapConstant[0x3ff62d29 <FixedArray[31]>] : HeapConstant(0x3ff62d29 <FixedArray[31]>)

BUG=

Review-Url: https://codereview.chromium.org/2471573007
Cr-Commit-Position: refs/heads/master@{#40786}
2016-11-07 01:51:19 +00:00
Alexander.Gilday2
4a64e9497b [turbolizer] Improved display of perf profiling information.
All events recorded are shown in separate columns simulatneously, using
rectangles with heatmap-style colouring. Hovering over the shapes gives
the event name, count, and percentage.

BUG=

Review-Url: https://codereview.chromium.org/2228553004
Cr-Commit-Position: refs/heads/master@{#39408}
2016-09-14 09:45:41 +00:00
bgeron
5a4cbaedb1 [turbolizer] Give the HTML file a title, for bookmarks and tab labels.
BUG=

Review-Url: https://codereview.chromium.org/2293483002
Cr-Commit-Position: refs/heads/master@{#39297}
2016-09-08 21:29:01 +00:00
bgeron
ec9465eb9b [turbolizer] Enlarge node labels and bubbles. Fix dead node display on old JSON.
BUG=

Review-Url: https://codereview.chromium.org/2230313002
Cr-Commit-Position: refs/heads/master@{#38588}
2016-08-11 16:46:18 +00:00
bgeron
1cefcd4db1 [turbolizer] Display labels when they're at most 40 chars, not 30.
BUG=
R=danno

Review-Url: https://codereview.chromium.org/2232933002
Cr-Commit-Position: refs/heads/master@{#38562}
2016-08-10 20:23:57 +00:00
bgeron
a9fe26ef2e [turbolizer] Use a 300ms transition for expanding/collapsing panes, not 1000ms.
BUG=
R=danno

Review-Url: https://codereview.chromium.org/2230783005
Cr-Commit-Position: refs/heads/master@{#38561}
2016-08-10 20:09:26 +00:00
danno
d3905561b9 [turbolizer] Use locations rather than ranges everywhere
Also convert CodeView to a class and fix a host of selection
bugs in the process, as well as move the logic and data to
"enrich" location with one type of location data with location
data known globally to the whole graph in the selection broker.

Review-Url: https://codereview.chromium.org/2230083004
Cr-Commit-Position: refs/heads/master@{#38544}
2016-08-10 14:46:11 +00:00
danno
3899776f28 [turbolizer] Fix selection bugs and performance problems
Review-Url: https://codereview.chromium.org/2234523002
Cr-Commit-Position: refs/heads/master@{#38520}
2016-08-10 08:16:59 +00:00
bgeron
01766cd8cc [turbolizer] Visualize also the dead nodes.
R=danno,jarin
BUG=

Review-Url: https://codereview.chromium.org/2226293002
Cr-Commit-Position: refs/heads/master@{#38502}
2016-08-09 16:20:32 +00:00
bgeron
a57b243c0f [turbolizer] Show operator properties and arity in tooltip.
BUG=

Review-Url: https://codereview.chromium.org/2225683009
Cr-Commit-Position: refs/heads/master@{#38500}
2016-08-09 15:45:43 +00:00
bgeron
0d9ce3acff [turbolizer] Allow selecting inputs also with numeric keyboard.
R=danno
BUG=

Review-Url: https://codereview.chromium.org/2227643002
Cr-Commit-Position: refs/heads/master@{#38442}
2016-08-08 13:07:25 +00:00
Alexander.Gilday2
6e01fe20da [turbolizer] Fixed naming of turbolizer perf script.
Change was meant to be in previous patch but was accidentally reverted.
README.md updated with new filename, also.

BUG=

Review-Url: https://codereview.chromium.org/2184223005
Cr-Commit-Position: refs/heads/master@{#38134}
2016-07-28 12:38:00 +00:00
Alexander.Gilday2
286e2b14a5 [turbolizer] Add support for showing perf profiling information.
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}
2016-07-28 09:42:38 +00:00
bgeron
fbccad5c66 [turbolizer] Remember the last phase, search query, and pane expansions.
BUG=
R=danno

Review-Url: https://codereview.chromium.org/2171543004
Cr-Commit-Position: refs/heads/master@{#38045}
2016-07-26 11:47:24 +00:00
bgeron
54d483d9f9 [turbolizer] Add two keyboard shortcuts: R for relayout, / for search.
/ also selects the search box.

BUG=

Review-Url: https://codereview.chromium.org/2169053002
Cr-Commit-Position: refs/heads/master@{#38027}
2016-07-25 15:26:17 +00:00
bgeron
69c291dc47 [turbolizer] Factor out some user actions into methods of GraphView.
BUG=
R=danno

Review-Url: https://codereview.chromium.org/2169043002
Cr-Commit-Position: refs/heads/master@{#38025}
2016-07-25 14:25:46 +00:00
bgeron
cc51cfcac3 [turbolizer] Redetermine graph bounding box after dragging a node.
If you dragged the node out of the bounding box, this commit allows you to see
it again after you zoom. The zoom looks jittery, but I think it's better than
not being able to see it at all.

BUG=
R=danno

Review-Url: https://codereview.chromium.org/2168713005
Cr-Commit-Position: refs/heads/master@{#38024}
2016-07-25 14:22:23 +00:00
bgeron
fe728e52b4 [turbolizer] Fix a latent bug when dragging a node under another node.
BUG=
R=danno

Review-Url: https://codereview.chromium.org/2169023002
Cr-Commit-Position: refs/heads/master@{#38004}
2016-07-25 09:50:42 +00:00
bgeron
7ef24ad99c [turbolizer] Style improvements.
- 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}
2016-07-25 09:50:41 +00:00
bgeron
feb93dd60b [turbolizer] Show a label with a shorter parameter for some opcodes.
With this patch, every node in turbo-*.json has an opcode, a title, and
a label. The label field is new; the opcode and title were already
there. The title is for the mouseover text. The label is what will be
displayed in the graph view, unless it's too long, in which case only
the opcode will be displayed. (This is similar to the preexisting
behaviour of putting titles in labels, except that the titles were
rarely short enough to fit in a label.)

With this patch, the labels generated are in practice the same as the
titles we had before, except for LoadField and StoreField, which will be
rendered as LoadField[[+432]] and StoreField[[+432]] (if 432 was the
offset).

This diff adds an overloadable method

    virtual void Operator1<T>::PrintParameter(ostream&, PrintVerbosity)

for each type T to Operator1. Its default implementation just uses
operator<<(ostream&, T const&) and adds square brackets around it, but
it is overridden for FieldAccess to print "[+432]" in the example case.

BUG=
R=jarin,danno

Review-Url: https://codereview.chromium.org/2093013002
Cr-Commit-Position: refs/heads/master@{#37795}
2016-07-15 12:07:43 +00:00
Alexander.Gilday2
7f162dbcb6 [turbolizer] Improve code comments in disassembly
This change analyzes and links the output of --code-comments in the disassembly view within turbolizer with the other views, such that selecting these comments will also select the respective blocks/lines/nodes within the other views. The block start comments (e.g. -- B4 start --) are linked with the blocks in the schedule phase view and vice versa. The source position comments (e.g. -- primes.js:3:10 --) select the respective spans, lines, and nodes in the JavaScript code view, the schedule phase view, and the other compilation phase views respectively, and vice versa. It also modifies the display of the line and column numbers in the source position comments to be offset from 1 instead of 0 and ignore the initial source position of the first line of code (from removal of the function name in the compiler).

Also fixed the bug where previous selections weren't being cleared properly across multiple views, adding appropriate clear calls when using the selection broker.

Review-Url: https://codereview.chromium.org/2133663002
Cr-Commit-Position: refs/heads/master@{#37627}
2016-07-11 08:28:22 +00:00
danno
9dc2c31d64 [turbolizer] Performance improvements for selection in graph & schedule
Review-Url: https://codereview.chromium.org/2066313002
Cr-Commit-Position: refs/heads/master@{#37177}
2016-06-22 10:11:39 +00:00
bgeron
f567930712 [turbolizer] Fully parse schedule data.
Fixes bug 5128 in product V8.

R=danno@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2087813002
Cr-Commit-Position: refs/heads/master@{#37146}
2016-06-21 15:18:40 +00:00
danno
deb67d7d05 [turbolizer]: Fix bugs
* The default text (placeholder) in the search box is now present.
* All key events handled by turbolizer are not passed through to Chrome.

Review-Url: https://codereview.chromium.org/2061713002
Cr-Commit-Position: refs/heads/master@{#36936}
2016-06-13 16:36:09 +00:00
danno
e52907f807 [turbolizer] Features and bug-fixes
Fix bugs and add a few small useful features:

* Fix Schedule view to properly parse schedule output and respond to switching
  back to graph views.
* Add shorcuts for showing edges of selected nodes.
  - 'i' shows all inputs
  - 'o' shows all outputs
  - '1'-'9' shows all nodes nth input where 1 <= n <= 9
  - 'c' shows all control inputs
  - 'e' shows all effect inputs
* Holding the control key down when using a edge-showing shortcut toggles edge
  state rather the just showing.
* 'a' selects all nodes in graph view.
* Node selection is preserved between graph views and Schedule views.
* Holding control key down when using regular expression search shows currently
  hidden nodes that match the regex search.
* Pane expansion buttons now respond to clicks in entire button area.
* Default text in regex search box makes searching more discoverable.

Review-Url: https://codereview.chromium.org/2059193002
Cr-Commit-Position: refs/heads/master@{#36932}
2016-06-13 13:21:54 +00:00
danno
9c15c05596 Add a html-based visualizer for TurboFan graphs
Review-Url: https://codereview.chromium.org/729913004
Cr-Commit-Position: refs/heads/master@{#36351}
2016-05-19 08:18:01 +00:00