summaryrefslogtreecommitdiffstats
path: root/clang/utils/analyzer/CmpRuns.py
diff options
context:
space:
mode:
authorGeorge Karpenkov <ekarpenkov@apple.com>2018-10-23 01:30:26 +0000
committerGeorge Karpenkov <ekarpenkov@apple.com>2018-10-23 01:30:26 +0000
commit6a2a197f95ef6b6b3116632e879613a9537e8cc5 (patch)
tree126e8ad0ce525448940d2f680f2c30b60e012b71 /clang/utils/analyzer/CmpRuns.py
parent8b85b9b6af1bba381aa6378e18d908afb13c2ce4 (diff)
downloadbcm5719-llvm-6a2a197f95ef6b6b3116632e879613a9537e8cc5.tar.gz
bcm5719-llvm-6a2a197f95ef6b6b3116632e879613a9537e8cc5.zip
[analyzer] [testing] Compute data on path length, compute percentiles
Differential Revision: https://reviews.llvm.org/D52844 llvm-svn: 344990
Diffstat (limited to 'clang/utils/analyzer/CmpRuns.py')
-rwxr-xr-xclang/utils/analyzer/CmpRuns.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/clang/utils/analyzer/CmpRuns.py b/clang/utils/analyzer/CmpRuns.py
index 7c9744727e9..ab8c48b023e 100755
--- a/clang/utils/analyzer/CmpRuns.py
+++ b/clang/utils/analyzer/CmpRuns.py
@@ -281,9 +281,21 @@ def compareResults(A, B, opts):
return res
+def computePercentile(l, percentile):
+ """
+ Return computed percentile.
+ """
+ return sorted(l)[int(round(percentile * len(l) + 0.5)) - 1]
+
def deriveStats(results):
# Assume all keys are the same in each statistics bucket.
combined_data = defaultdict(list)
+
+ # Collect data on paths length.
+ for report in results.reports:
+ for diagnostic in report.diagnostics:
+ combined_data['PathsLength'].append(diagnostic.getPathLength())
+
for stat in results.stats:
for key, value in stat.iteritems():
combined_data[key].append(value)
@@ -293,6 +305,8 @@ def deriveStats(results):
"max": max(values),
"min": min(values),
"mean": sum(values) / len(values),
+ "90th %tile": computePercentile(values, 0.9),
+ "95th %tile": computePercentile(values, 0.95),
"median": sorted(values)[len(values) / 2],
"total": sum(values)
}
OpenPOWER on IntegriCloud