Index: tools/llvm-exegesis/lib/Clustering.h =================================================================== --- tools/llvm-exegesis/lib/Clustering.h +++ tools/llvm-exegesis/lib/Clustering.h @@ -89,8 +89,15 @@ const std::vector &getValidClusters() const { return Clusters_; } // Returns true if the given point is within a distance Epsilon of each other. - bool isNeighbour(const std::vector &P, - const std::vector &Q) const; + inline bool isNeighbour(const std::vector &P, + const std::vector &Q) const { + double DistanceSquared = 0.0; + for (size_t I = 0, E = P.size(); I < E; ++I) { + const auto Diff = P[I].PerInstructionValue - Q[I].PerInstructionValue; + DistanceSquared += Diff * Diff; + } + return DistanceSquared <= EpsilonSquared_; + } private: InstructionBenchmarkClustering( Index: tools/llvm-exegesis/lib/Clustering.cpp =================================================================== --- tools/llvm-exegesis/lib/Clustering.cpp +++ tools/llvm-exegesis/lib/Clustering.cpp @@ -49,17 +49,6 @@ } } -bool InstructionBenchmarkClustering::isNeighbour( - const std::vector &P, - const std::vector &Q) const { - double DistanceSquared = 0.0; - for (size_t I = 0, E = P.size(); I < E; ++I) { - const auto Diff = P[I].PerInstructionValue - Q[I].PerInstructionValue; - DistanceSquared += Diff * Diff; - } - return DistanceSquared <= EpsilonSquared_; -} - InstructionBenchmarkClustering::InstructionBenchmarkClustering( const std::vector &Points, const double EpsilonSquared)