From 1267922ca77182bb89ef1704f9d451eadd302239 Mon Sep 17 00:00:00 2001 From: Justin Viiret Date: Wed, 2 Dec 2015 09:47:59 +1100 Subject: [PATCH] role aliasing: simplify hashRightRoleProperties Using the full report set for a suffix as an input to this hash was very slow at scale. --- src/rose/rose_build_role_aliasing.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/rose/rose_build_role_aliasing.cpp b/src/rose/rose_build_role_aliasing.cpp index 87b6936c..62db5b2e 100644 --- a/src/rose/rose_build_role_aliasing.cpp +++ b/src/rose/rose_build_role_aliasing.cpp @@ -439,12 +439,16 @@ size_t hashRightRoleProperties(RoseVertex v, const RoseGraph &g) { hash_combine(val, hash_range(begin(props.reports), end(props.reports))); if (props.suffix) { - hash_combine(val, all_reports(props.suffix)); - if (props.suffix.graph) { - hash_combine(val, num_vertices(*props.suffix.graph)); + const auto &suffix = props.suffix; + if (suffix.castle) { + hash_combine(val, suffix.castle->reach()); + hash_combine(val, suffix.castle->repeats.size()); } - if (props.suffix.haig) { - hash_combine(val, hash_dfa(*props.suffix.haig)); + if (suffix.graph) { + hash_combine(val, num_vertices(*suffix.graph)); + } + if (suffix.haig) { + hash_combine(val, hash_dfa(*suffix.haig)); } }