Justin Viiret
ea2e85ac87
ng_squash: switch to using unordered_map
...
Also some cleaning up, small performance improvements.
2017-09-18 13:29:34 +10:00
Alex Coyte
ace592e247
tidy mergeCastleSuffixes
2017-09-18 13:29:34 +10:00
Alex Coyte
6f452668ec
refactor mergeCastleLeftfixes
2017-09-18 13:29:34 +10:00
Alex Coyte
cee0b722a3
reimplement hasSameEngineType()
2017-09-18 13:29:34 +10:00
Justin Viiret
7fe53fec10
partitioned_set: use lower_bound(), not scan
2017-09-18 13:29:34 +10:00
Matthew Barr
29e1aae3fb
Use an unsigned byte, not char
2017-09-18 13:29:33 +10:00
Justin Viiret
012b347284
ue2_literal: define npos in ue2string.cpp
2017-09-18 13:29:33 +10:00
Justin Viiret
85c8822dd1
fdr_compile: simplify lambda use
...
This was failing to compile on MSVC.
2017-09-18 13:29:33 +10:00
Justin Viiret
b694fed727
mcclellancompile: simplify calc_min_dist_from_bob
2017-09-18 13:29:33 +10:00
Justin Viiret
58c3de0d33
mcclellancompile: don't copy dstate unnecessarily
2017-09-18 13:29:33 +10:00
Justin Viiret
3b392d6b70
accel_dfa_build_strat: make extend() faster
2017-09-18 13:29:33 +10:00
Justin Viiret
fe31b387e8
hash: use std::hash for string hashing
2017-09-18 13:26:18 +10:00
Justin Viiret
25170b32eb
ue2_literal: better hash function
2017-09-18 13:26:18 +10:00
Justin Viiret
1aad3b0ed1
ue2_literal: make nocase member a dynamic_bitset
...
We were previously using vector<bool>, but dynamic_bitset provides a
faster any() impl
2017-09-18 13:26:18 +10:00
Justin Viiret
36136f1003
fdr_compile: don't do string copies in isSuffix
2017-09-18 13:26:05 +10:00
Justin Viiret
d5b3f2b508
gatherReports: fewer map lookups
2017-09-18 13:26:05 +10:00
Justin Viiret
ba6f638c40
accel_dfa_build_strat: use flat_set
2017-09-18 13:26:05 +10:00
Justin Viiret
d25740b615
smallwrite_build: make failure_map unordered
2017-09-18 13:25:52 +10:00
Justin Viiret
14333f5b0b
rdfa: make getImplAlphaSize() inline
2017-09-18 13:25:52 +10:00
Justin Viiret
84030aa0fc
castlecompile: remove unused container
2017-09-18 13:25:52 +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
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