diff options
author | Adam Nemet <anemet@apple.com> | 2016-11-11 01:51:34 +0000 |
---|---|---|
committer | Adam Nemet <anemet@apple.com> | 2016-11-11 01:51:34 +0000 |
commit | 8e232cacaec5b289aaf877ad143dbd994fd10558 (patch) | |
tree | 0f0e0b23703d59676c7e2a9c770dce01d286a40d /llvm/utils/opt-viewer/opt-viewer.py | |
parent | 325cd2c98ab64b8dbee7f493818ba01e0143d34b (diff) | |
download | bcm5719-llvm-8e232cacaec5b289aaf877ad143dbd994fd10558.tar.gz bcm5719-llvm-8e232cacaec5b289aaf877ad143dbd994fd10558.zip |
[opt-viewer] Add column number support
With this the yellow (bubble) part of the remark shows up under the
corresponding expression.
llvm-svn: 286545
Diffstat (limited to 'llvm/utils/opt-viewer/opt-viewer.py')
-rwxr-xr-x | llvm/utils/opt-viewer/opt-viewer.py | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/llvm/utils/opt-viewer/opt-viewer.py b/llvm/utils/opt-viewer/opt-viewer.py index 510302b0c22..378c22027f6 100755 --- a/llvm/utils/opt-viewer/opt-viewer.py +++ b/llvm/utils/opt-viewer/opt-viewer.py @@ -10,6 +10,7 @@ The tools requires PyYAML and Pygments Python packages.''' import yaml import argparse import os.path +import re import subprocess import shutil from pygments import highlight @@ -150,19 +151,23 @@ class SourceFileRenderer: <td>{html_line}</td> </tr>'''.format(**locals()), file=self.stream) - def render_inline_remarks(self, r): + def render_inline_remarks(self, r, line): inlining_context = r.DemangledFunctionName dl = Remark.caller_loc.get(r.Function) if dl: link = Remark.make_link(dl['File'], dl['Line'] - 2) inlining_context = "<a href={link}>{r.DemangledFunctionName}</a>".format(**locals()) + # Column is the number of characters *including* tabs, keep those and + # replace everything else with spaces. + indent = line[:r.Column - 1] + indent = re.sub('\S', ' ', indent) print(''' <tr> <td></td> <td>{r.RelativeHotness}%</td> <td class=\"column-entry-{r.color}\">{r.Pass}</td> -<td class=\"column-entry-yellow\">{r.message}</td> +<td><pre style="display:inline">{indent}</pre><span class=\"column-entry-yellow\"> {r.message} </span></td> <td class=\"column-entry-yellow\">{inlining_context}</td> </tr>'''.format(**locals()), file=self.stream) @@ -188,7 +193,7 @@ class SourceFileRenderer: for (linenum, line) in enumerate(self.source_stream.readlines(), start=1): self.render_source_line(linenum, line) for remark in line_remarks.get(linenum, []): - self.render_inline_remarks(remark) + self.render_inline_remarks(remark, line) print(''' </table> </body> |