]> granicus.if.org Git - llvm/commitdiff
[opt-viewer] Print hotness as percentage of the maximum hotness
authorAdam Nemet <anemet@apple.com>
Tue, 11 Oct 2016 16:20:38 +0000 (16:20 +0000)
committerAdam Nemet <anemet@apple.com>
Tue, 11 Oct 2016 16:20:38 +0000 (16:20 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@283897 91177308-0d34-0410-b5e6-96231b3b80d8

utils/opt-viewer/opt-viewer.py

index 7fd93600f005fa8d7a3bffc75d479d0b9c1f243f..d29b74f0023f87387dd333d80dcefb3dd8e78add 100755 (executable)
@@ -24,6 +24,8 @@ def demangle(name):
     return p.stdout.readline().rstrip()
 
 class Remark(yaml.YAMLObject):
+    max_hotness = 0
+
     @property
     def File(self):
         return self.DebugLoc['File']
@@ -60,6 +62,10 @@ class Remark(yaml.YAMLObject):
         values = [self.getArgString(mapping.items()[0]) for mapping in self.Args]
         return demangle("".join(values))
 
+    @property
+    def RelativeHotness(self):
+        return int(round(self.Hotness * 100 / Remark.max_hotness))
+
 class Analysis(Remark):
     yaml_tag = '!Analysis'
 
@@ -102,7 +108,7 @@ class SourceFileRenderer:
         print('''
 <tr>
 <td></td>
-<td>{r.Hotness}</td>
+<td>{r.RelativeHotness}%</td>
 <td class=\"column-entry-{r.color}\">{r.Pass}</td>
 <td class=\"column-entry-yellow\">{r.message}</td>
 </tr>'''.format(**locals()), file=self.stream)
@@ -143,7 +149,7 @@ class IndexRenderer:
         print('''
 <tr>
 <td><a href={r.Link}>{r.DebugLocString}</a></td>
-<td>{r.Hotness}%</td>
+<td>{r.RelativeHotness}%</td>
 <td>{r.DemangledFunctionName}</td>
 <td class=\"column-entry-{r.color}\">{r.Pass}</td>
 </tr>'''.format(**locals()), file=self.stream)
@@ -181,6 +187,7 @@ for input_file in args.yaml_files:
         if hasattr(remark, 'Hotness'):
             file_remarks.setdefault(remark.File, dict()).setdefault(remark.Line, []).append(remark);
             all_remarks.append(remark)
+            Remark.max_hotness = max(Remark.max_hotness, remark.Hotness)
 
 all_remarks = sorted(all_remarks, key=lambda r: r.Hotness, reverse=True)