1448 Commits

Author SHA1 Message Date
Alex Coyte
c693c44646 violet: do not remove more states from holders if dfa has been built 2017-08-21 11:25:12 +10:00
Wang, Xiang W
a645201675 UE-3147: ensure the same squash behavior for literals shared between different literal matchers 2017-08-21 11:25:03 +10:00
Justin Viiret
ba1df6412b groupByFragment: make fewer string copies 2017-08-21 11:24:52 +10:00
Justin Viiret
8eb55d4242 rose_build_exclusive: clean up use of vertex indices 2017-08-21 11:24:52 +10:00
Justin Viiret
d55e8fdf94 limex_compile: reduce state id lookups 2017-08-21 11:24:52 +10:00
Justin Viiret
58004f15f0 limex_compile: turn tugs into a bitset 2017-08-21 11:24:52 +10:00
Justin Viiret
1f2eb5a093 rose_build_lookaround: use vector in trimLiterals 2017-08-21 11:24:52 +10:00
Justin Viiret
4889a492e4 rose: more hash member funcs for rose types 2017-08-21 11:24:52 +10:00
Justin Viiret
09938d532f rose: return a vector from findEdgesByLiteral 2017-08-21 11:24:52 +10:00
Justin Viiret
927501175c rose_build_long_lit: refactor to do less dupe work
Also some performance improvements.
2017-08-21 11:24:52 +10:00
Alex Coyte
15784954e8 dynamic compression: add HS_CDECL to implementation 2017-08-21 11:24:52 +10:00
Alex Coyte
37033ef9bb Provide RoseResources to roseQuality.
RoseResources is an alternative to manually digging through the bytecode.
2017-08-21 11:24:52 +10:00
Alex Coyte
778addadc5 mangle fdr conf parts of scratch as well 2017-08-21 11:23:54 +10:00
Alex Coyte
ffc2d578b1 roseQuality() no longer needs to be part of rose's API. 2017-08-21 11:23:41 +10:00
Alex Coyte
41783fe912 more comments on hwlm/fdr's start parameter 2017-08-21 11:23:41 +10:00
Alex Coyte
a847b4307a add dynamic stream compression to fat runtime 2017-08-21 11:23:41 +10:00
Matthew Barr
d33dcc0534 Remove unwanted move constructor 2017-08-21 11:20:22 +10:00
Matthew Barr
7bcb58dea0 Catch by reference not value 2017-08-21 11:20:20 +10:00
Alex Coyte
d878e8cdf3 add dynamic compression to the public api 2017-08-21 11:19:20 +10:00
Hong, Yang A
205a5bc98f multibit compression support 2017-08-21 11:19:11 +10:00
Alex Coyte
952f0aad21 support dynamic stream compression 2017-08-21 11:18:54 +10:00
Alex Coyte
d9e2c3daca make ComponentRepeat::vacuous_everywhere() more accurate 2017-08-21 11:18:54 +10:00
Alex Coyte
1f3cfdccef mergeCastle: merge common repeats from the castles 2017-08-21 11:18:54 +10:00
Alex Coyte
f8544505ce mergeLeftfixesVariableLag: update comments, debugging support 2017-08-21 11:18:54 +10:00
Chang, Harry
404f739811 Compile dump of teddy's nibble masks and reinforcement table in fdr_dump.cpp 2017-08-21 11:18:43 +10:00
Justin Viiret
14cf5c3684 small_vector: require boost >= 1.61
We use the small_vector constructors introduced in Boost 1.61 (trac bug
11866, github commit b436c91). If the Boost version is too old, we fall
back to using std::vector.
2017-08-21 11:18:43 +10:00
Alex Coyte
68c8845d15 Do equivalency removal before violet's implementablity check.
This is helpful as removing/restoring literals may introduce redundancy in the
graphs. Also improve the implementation by caching known good holders.
2017-08-21 11:18:30 +10:00
Alex Coyte
aa6025012b Ensure max width of repeat before transforming graph. 2017-08-21 11:18:30 +10:00
Chang, Harry
72d21a9acf Refactored building reinforcement table at compile time and updated comments. 2017-08-21 11:14:59 +10:00
Chang, Harry
2b1d3383aa replace "_avx2" with "_fat". 2017-08-21 11:14:59 +10:00
Chang, Harry
8da2d13baa AVX512 Reinforced FAT teddy. 2017-08-21 11:14:59 +10:00
Justin Viiret
4528485a56 determinise: use find first, rather than emplace
For non-trivial StateSet types, copying to do the emplace if it is
already in the map is more expensive than checking with find() first.
2017-08-21 11:14:59 +10:00
Justin Viiret
33823d60d1 tidy: "ue2::flat_set/map" -> "flat_set/map" 2017-08-21 11:14:59 +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
a425bb9b7c ue2_graph: move descriptors out of graph struct 2017-08-21 11:12:36 +10:00
Wang, Xiang W
252eb820c4 ue-3145: make parents of included literals exclusive 2017-08-21 11:12:36 +10:00
Wang, Xiang W
86c5f7feb1 FDR: Squash buckets of included literals in FDR confirm
- Change the compile of literal matchers to two passes.
 - Reverse the bucket assignment in FDR, bucket with longer literals has
   smaller bucket id.
 - Squash the buckets of included literals and jump to the the program of
   included literals directly from parent literal program without going
   through FDR confirm for included iterals.
2017-08-21 11:12:36 +10:00
Chang, Harry
d2b5523dd8 fix typo "ones_u32a" => "ones_u32" 2017-08-21 11:12:36 +10:00
Chang, Harry
68e08d8e18 AVX512 reinforced teddy. 2017-08-21 11:12:36 +10:00
Justin Viiret
340773481e smallwrite: batch dfa merge to reduce compile time 2017-08-21 11:12:36 +10:00
Wang, Xiang W
67a8f43355 literal matchers: change context passed to callback to scratch 2017-08-21 11:12:36 +10:00
Wang, Xiang W
815be3fa2b flood detection: debug output fix 2017-08-21 11:12:36 +10:00
Wang, Xiang W
ebb1b0006b remove start argument in literal matcher callbacks 2017-08-21 11:12:36 +10:00
Alex Coyte
482e1ef931 Ensure that reports would be sustained after self loop is removed
Approximante matching means that is now possible to get a non-standard report
on a cyclic during edge redundancy passes which means checks are now needed.
2017-08-21 11:12:26 +10:00
Justin Viiret
b454ab6484 ng_prefilter.cpp: remove interior edges first
This allows us to avoid looking them up while we're in copyOutEdges(),
halves time on large cases.
2017-08-21 11:12:26 +10:00
Justin Viiret
2fba9bd16c ng_mcclellan: reject determinise if NFA is too big 2017-08-21 11:12:26 +10:00
Justin Viiret
e8f09aa8c6 ng_violet: fail on added_count limit quicker
- also fixes typo "splitForImplementability"
- adds more detail in debug output
2017-08-21 11:12:26 +10:00
Justin Viiret
cdb281df42 rose_build_convert: replace bind2nd with lambda
std::bind2nd was deprecated in C++11.
2017-08-21 11:12:26 +10:00
Justin Viiret
21a4c8d4e2 rdfa: move raw_dfa member functions to rdfa.cpp 2017-08-21 11:12:26 +10:00
Chang, Harry
35a42061f6 patch for invalid reading 1 byte in Reinforced Teddy, abandon fetching the first reinforced byte. 2017-08-21 11:12:26 +10:00