28 Commits

Author SHA1 Message Date
Alex Coyte
d6c050abd6 maintain castle report information 2017-09-18 13:29:34 +10:00
Alex Coyte
47e64646b4 move mergeDupeLeaves() and uncalcLeaves() to rose_build_role_aliasing
Unlike the rest of rose_build_mergem, these functions relate to merging
roles/vertices rather than merging engines.
2017-09-18 13:22:56 +10:00
Justin Viiret
4889a492e4 rose: more hash member funcs for rose types 2017-08-21 11:24:52 +10:00
Justin Viiret
9cf66b6ac9 util: switch from Boost to std::unordered set/map
This commit replaces the ue2::unordered_{set,map} types with their STL
versions, with some new hashing utilities in util/hash.h. The new types
ue2_unordered_set<T> and ue2_unordered_map<Key, T> default to using the
ue2_hasher.

The header util/ue2_containers.h has been removed, and the flat_set/map
containers moved to util/flat_containers.h.
2017-08-21 11:14:55 +10:00
Justin Viiret
8b9328fe9e rose: replace RoseLiteralMap use of bimap
This apoproach is simpler and more efficient for cases with large
numbers of literals.
2017-05-30 13:58:59 +10:00
Matthew Barr
c50a931bb4 Use std::move explicitly to avoid ambiguity with boost 2017-04-26 15:16:03 +10:00
Justin Viiret
5706acf5c0 role aliasing: bail if new graph is not implementable 2017-04-26 14:46:46 +10:00
Justin Viiret
988ea6b4e1 rose: role aliasing improvements
These changes improve the performance of the role aliasing passes on
very large cases and fix a couple of small errors in the left and right
merge passes as well.
2017-04-26 14:41:30 +10:00
Alex Coyte
530d84c6f3 allow edge_descriptors to be created from pair<edge_descriptor, bool> 2016-12-02 11:32:20 +11:00
Alex Coyte
e1e9010cac Introduce custom adjacency-list based graph 2016-12-02 11:31:33 +11:00
Alex Coyte
445cf987a8 remove unused includes 2016-10-28 14:52:56 +11:00
Alex Coyte
648a3c4824 UE-3025: There is no need to prune tops from non-triggered graphs 2016-10-28 14:52:01 +11:00
Alex Coyte
c94899dd44 allow sets of tops on edges 2016-10-28 14:51:46 +11:00
Matthew Barr
707fe675ea Operator precedence matters 2016-10-28 14:48:46 +11:00
Justin Viiret
ae14187462 rose: use min of max_offset in left merges
Be more careful with max_offset, since we rely on it ofr ANCH history
cases. Also adds tighter assertions.
2016-08-10 15:12:12 +10:00
Alex Coyte
cded5552c2 rose: don't leave stray reports when copying the subgraph leading to a report 2016-08-10 15:09:27 +10:00
Justin Viiret
e9cfbae68f workaround for freebsd/clang/libc++ build issues
Rather than relying on set's constructor from {}, explicitly construct
the set.
2016-07-08 11:07:51 +10:00
Justin Viiret
1c2b0a271d role aliasing: tidy up naming 2016-07-08 10:59:40 +10:00
Justin Viiret
1d18852dc9 role aliasing: unify map update code 2016-07-08 10:59:40 +10:00
Justin Viiret
679042779a role aliasing: use a reverse ghost map 2016-07-08 10:59:40 +10:00
Justin Viiret
1e5fcd5e80 tighten ghost vertex checks 2016-07-08 10:59:40 +10:00
Justin Viiret
0749f7c06d rose: allow ghosts to be aliased 2016-07-08 10:59:40 +10:00
Alex Coyte
b097cb1b53 use the correct way to refer to void * 2016-07-08 10:45:06 +10:00
Justin Viiret
31dea6c275 Rose: allow direct reports to be aliased 2016-03-01 11:36:09 +11:00
Alex Coyte
a7d8dafb71 detach the sidecar 2016-03-01 11:13:23 +11:00
Justin Viiret
748d46c124 CastleProto: track next top explicitly
Repeats may be removed (e.g. by pruning in role aliasing passes)
leaving "holes" in the top map. Track the next top to use explicitly,
rather than using repeats.size().
2015-12-07 09:38:32 +11:00
Justin Viiret
1267922ca7 role aliasing: simplify hashRightRoleProperties
Using the full report set for a suffix as an input to this hash was very
slow at scale.
2015-12-07 09:38:32 +11:00
Matthew Barr
904e436f11 Initial commit of Hyperscan 2015-10-20 09:13:35 +11:00