summaryrefslogtreecommitdiffstats
path: root/llvm/utils/opt-viewer/opt-viewer.py
diff options
context:
space:
mode:
authorAdam Nemet <anemet@apple.com>2016-11-11 01:51:34 +0000
committerAdam Nemet <anemet@apple.com>2016-11-11 01:51:34 +0000
commit8e232cacaec5b289aaf877ad143dbd994fd10558 (patch)
tree0f0e0b23703d59676c7e2a9c770dce01d286a40d /llvm/utils/opt-viewer/opt-viewer.py
parent325cd2c98ab64b8dbee7f493818ba01e0143d34b (diff)
downloadbcm5719-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-xllvm/utils/opt-viewer/opt-viewer.py11
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}&nbsp;</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>
OpenPOWER on IntegriCloud