annotate clang/utils/analyzer/SumTimerInfo.py @ 225:f7655407a6ba

remove unnecessary files
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 19 Jul 2021 03:48:36 +0900
parents 0572611fdcc8
children 1f2b6ac9f198
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 #!/usr/bin/env python
anatofuz
parents:
diff changeset
2
anatofuz
parents:
diff changeset
3 """
anatofuz
parents:
diff changeset
4 Script to Summarize statistics in the scan-build output.
anatofuz
parents:
diff changeset
5
anatofuz
parents:
diff changeset
6 Statistics are enabled by passing '-internal-stats' option to scan-build
anatofuz
parents:
diff changeset
7 (or '-analyzer-stats' to the analyzer).
anatofuz
parents:
diff changeset
8 """
anatofuz
parents:
diff changeset
9 import sys
anatofuz
parents:
diff changeset
10
anatofuz
parents:
diff changeset
11 if __name__ == '__main__':
anatofuz
parents:
diff changeset
12 if len(sys.argv) < 2:
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
13 print('Usage: ', sys.argv[0],
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
14 'scan_build_output_file', file=sys.stderr)
150
anatofuz
parents:
diff changeset
15 sys.exit(-1)
anatofuz
parents:
diff changeset
16
anatofuz
parents:
diff changeset
17 f = open(sys.argv[1], 'r')
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
18 time = 0.0
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
19 total_time = 0.0
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
20 max_time = 0.0
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
21 warnings = 0
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
22 count = 0
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
23 functions_analyzed = 0
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
24 reachable_blocks = 0
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
25 reached_max_steps = 0
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
26 num_steps = 0
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
27 num_inlined_call_sites = 0
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
28 num_bifurcated_call_sites = 0
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
29 max_cfg_size = 0
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
30
150
anatofuz
parents:
diff changeset
31 for line in f:
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
32 if "Analyzer total time" in line:
150
anatofuz
parents:
diff changeset
33 s = line.split()
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
34 time = time + float(s[6])
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
35 count = count + 1
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
36 if float(s[6]) > max_time:
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
37 max_time = float(s[6])
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
38 if "warning generated." in line or "warnings generated" in line:
150
anatofuz
parents:
diff changeset
39 s = line.split()
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
40 warnings = warnings + int(s[0])
150
anatofuz
parents:
diff changeset
41 if "The # of functions analysed (as top level)" in line:
anatofuz
parents:
diff changeset
42 s = line.split()
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
43 functions_analyzed = functions_analyzed + int(s[0])
150
anatofuz
parents:
diff changeset
44 if "The % of reachable basic blocks" in line:
anatofuz
parents:
diff changeset
45 s = line.split()
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
46 reachable_blocks = reachable_blocks + int(s[0])
150
anatofuz
parents:
diff changeset
47 if "The # of times we reached the max number of steps" in line:
anatofuz
parents:
diff changeset
48 s = line.split()
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
49 reached_max_steps = reached_max_steps + int(s[0])
150
anatofuz
parents:
diff changeset
50 if "The maximum number of basic blocks in a function" in line:
anatofuz
parents:
diff changeset
51 s = line.split()
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
52 if max_cfg_size < int(s[0]):
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
53 max_cfg_size = int(s[0])
150
anatofuz
parents:
diff changeset
54 if "The # of steps executed" in line:
anatofuz
parents:
diff changeset
55 s = line.split()
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
56 num_steps = num_steps + int(s[0])
150
anatofuz
parents:
diff changeset
57 if "The # of times we inlined a call" in line:
anatofuz
parents:
diff changeset
58 s = line.split()
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
59 num_inlined_call_sites = num_inlined_call_sites + int(s[0])
150
anatofuz
parents:
diff changeset
60 if "The # of times we split the path due \
anatofuz
parents:
diff changeset
61 to imprecise dynamic dispatch info" in line:
anatofuz
parents:
diff changeset
62 s = line.split()
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
63 num_bifurcated_call_sites = num_bifurcated_call_sites + int(s[0])
150
anatofuz
parents:
diff changeset
64 if ") Total" in line:
anatofuz
parents:
diff changeset
65 s = line.split()
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
66 total_time = total_time + float(s[6])
150
anatofuz
parents:
diff changeset
67
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
68 print(f"TU count {count}")
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
69 print(f"Time {time}")
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
70 print(f"Warnings {warnings}")
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
71 print(f"Functions analyzed {functions_analyzed}")
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
72 print(f"Reachable blocks {reachable_blocks}")
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
73 print(f"Reached max steps {reached_max_steps}")
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
74 print(f"Number of steps {num_steps}")
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
75 print(f"Number of inlined calls {num_inlined_call_sites} "
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
76 f"(bifurcated {num_bifurcated_call_sites})")
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
77 print(f"Max time {max_time}")
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
78 print(f"Total time {total_time}")
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
79 print(f"Max CFG Size {max_cfg_size}")