Alex Coyte
a97cdba8cc
rose merges: why not dedupe transient engines?
...
We avoid merging different transient engines as it may force us to run heavier
engines and no stream state is consumed either way. However, there should be
no harm in just removing duplicate instances of a transient engine.
2017-09-18 13:22:56 +10:00
Alex Coyte
2a492273b5
remove !LBR constraints from merge passes
...
we have either converted candidates to castles already or we have converted them
back in the hope of merging them with other holders
2017-09-18 13:22:56 +10:00
Alex Coyte
4e9b0ad3fd
rework mergeLeftfixesVariableLag()
2017-08-21 11:25:21 +10:00
Justin Viiret
164e5a929f
fdr_compile: faster scoring code
2017-08-21 11:25:21 +10:00
Justin Viiret
3ff70d5568
insertion_ordered_{map,set}: add new containers
...
These are associative map/set structures that are iterable in insertion
order.
2017-08-21 11:25:21 +10:00
Alex Coyte
72973ccb47
violet: don't bother swapping holders if unable to trim graph
2017-08-21 11:25:21 +10:00
Alex Coyte
34ed4a6991
violet: maintain a reference to all the known implementable graphs
2017-08-21 11:25:12 +10:00
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