From: Justin Viiret Date: Tue, 1 Dec 2015 22:47:59 +0000 (+1100) Subject: role aliasing: simplify hashRightRoleProperties X-Git-Tag: v4.1.0^2~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1267922ca77182bb89ef1704f9d451eadd302239;p=thirdparty%2Fvectorscan.git role aliasing: simplify hashRightRoleProperties Using the full report set for a suffix as an input to this hash was very slow at scale. --- 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)); } }