summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-exegesis/lib/Clustering.h
diff options
context:
space:
mode:
authorRoman Lebedev <lebedev.ri@gmail.com>2019-03-29 11:36:08 +0000
committerRoman Lebedev <lebedev.ri@gmail.com>2019-03-29 11:36:08 +0000
commitb8fb15d4122b04d620c1d4a89449b6eba2f4b0c0 (patch)
treea4583c4fd8f1064a6e2b3b5760ff74332396adc8 /llvm/tools/llvm-exegesis/lib/Clustering.h
parentaeaf7fcddeefe733c87f69d88265f9e27540e5ec (diff)
downloadbcm5719-llvm-b8fb15d4122b04d620c1d4a89449b6eba2f4b0c0.tar.gz
bcm5719-llvm-b8fb15d4122b04d620c1d4a89449b6eba2f4b0c0.zip
[NFC][llvm-exegesis] Refactor Analysis::SchedClassCluster::measurementsMatch()
Summary: The diff looks scary but it really isn't: 1. I moved the check for the number of measurements into `SchedClassClusterCentroid::validate()` 2. While there, added a check that we can only have a single inverse throughput measurement. I missed that when adding it initially. 3. In `Analysis::SchedClassCluster::measurementsMatch()` is called with the current LLVM values from schedule class and the values from Centroid. 3.1. The values from centroid we can already get from `SchedClassClusterCentroid::getAsPoint()`. This isn't 100% a NFC, because previously for inverse throughput we used `min()`. I have asked whether i have done that correctly in https://reviews.llvm.org/D57647?id=184939#inline-510384 but did not hear back. I think `avg()` should be used too, thus it is a fix. 3.2. Finally, refactor the computation of the LLVM-specified values into `Analysis::SchedClassCluster::getSchedClassPoint()` I will need that function for [[ https://bugs.llvm.org/show_bug.cgi?id=41275 | PR41275 ]] Reviewers: courbet, gchatelet Reviewed By: courbet Subscribers: tschuett, jdoerfert, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D59951 llvm-svn: 357245
Diffstat (limited to 'llvm/tools/llvm-exegesis/lib/Clustering.h')
-rw-r--r--llvm/tools/llvm-exegesis/lib/Clustering.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/tools/llvm-exegesis/lib/Clustering.h b/llvm/tools/llvm-exegesis/lib/Clustering.h
index e57a46d8ba0..18ef30fbef9 100644
--- a/llvm/tools/llvm-exegesis/lib/Clustering.h
+++ b/llvm/tools/llvm-exegesis/lib/Clustering.h
@@ -156,6 +156,8 @@ public:
void addPoint(ArrayRef<BenchmarkMeasure> Point);
+ bool validate(InstructionBenchmark::ModeE Mode) const;
+
private:
// Measurement stats for the points in the SchedClassCluster.
std::vector<PerInstructionStats> Representative;
OpenPOWER on IntegriCloud