Index: llvm/trunk/tools/llvm-exegesis/lib/Clustering.h =================================================================== --- llvm/trunk/tools/llvm-exegesis/lib/Clustering.h +++ llvm/trunk/tools/llvm-exegesis/lib/Clustering.h @@ -90,7 +90,14 @@ // 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; + 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: llvm/trunk/tools/llvm-exegesis/lib/Clustering.cpp =================================================================== --- llvm/trunk/tools/llvm-exegesis/lib/Clustering.cpp +++ llvm/trunk/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)