From cb203c32727631a85bd0a003172c309e5092fef4 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Tue, 2 Feb 2016 12:52:06 -0800 Subject: [PATCH] perf(src/util/name): if the hashcodes are equal, then there is a high probability the names are equal So, we use == before trying cmp. Reason: == is much faster. --- src/util/name.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/util/name.h b/src/util/name.h index 55908be5d9..5907d8d496 100644 --- a/src/util/name.h +++ b/src/util/name.h @@ -175,10 +175,13 @@ public: return 0; unsigned h1 = a.hash(); unsigned h2 = b.hash(); - if (h1 != h2) + if (h1 != h2) { return h1 < h2 ? -1 : 1; - else + } else if (a == b) { + return 0; + } else { return cmp(a, b); + } } struct ptr_hash { unsigned operator()(name const & n) const { return std::hash()(n.m_ptr); } };