31 Commits

Author SHA1 Message Date
Konstantinos Margaritis
e35b88f2c8 use STL make_unique, remove wrapper header, breaks C++17 compilation 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
556206f138 replace push_back by emplace_back where possible 2021-10-12 11:51:33 +03:00
Hong, Yang A
d71515be04 DFA: use sherman economically 2021-01-25 14:13:13 +02:00
Hong, Yang A
805a550a0a mcclellan: wide state fixes for sanitisers and accept state construction 2019-01-21 09:58:18 +08:00
Hong, Yang A
c06d5e1c14 DFA state compression: 16-bit wide and sherman co-exist 2019-01-21 09:56:37 +08:00
Justin Viiret
e65479dae5 mcclellancompile: MAX_SHERMAN_LIST_LEN can be 9 2018-06-27 13:39:10 +08:00
Hong, Yang A
ae918116ab find_better_daddy: position change 2017-09-18 13:31:09 +10:00
Justin Viiret
58c3de0d33 mcclellancompile: don't copy dstate unnecessarily 2017-09-18 13:29:33 +10:00
Justin Viiret
d5b3f2b508 gatherReports: fewer map lookups 2017-09-18 13:26:05 +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
21a4c8d4e2 rdfa: move raw_dfa member functions to rdfa.cpp 2017-08-21 11:12:26 +10:00
Justin Viiret
75e4aefabe dfa: don't clear states, just mark dfa dead
The previous change caused some assertion issues.
2017-08-21 11:10:11 +10:00
Justin Viiret
10f52346ca smallwrite: bfs ordering, refine daddy selection 2017-05-30 13:57:32 +10:00
Justin Viiret
3b3f6b739c smallwrite: use failure map to set dfa daddy state 2017-05-30 13:57:32 +10:00
Justin Viiret
beac58fcb4 dfa: allow smwr to avoid lengthy daddy recalc 2017-05-30 13:57:32 +10:00
Justin Viiret
f5d769118a mcclellancompile: factor out find_daddy_candidates 2017-05-30 13:57:32 +10:00
Justin Viiret
0dd8536c6e dfa: only accel init states from smwr path
If the small-write DFA has been built from literals, then we only need
to look for accel states at init.
2017-05-30 13:57:32 +10:00
Justin Viiret
40f03929be find_better_daddy: use flat_set for hinted states 2017-05-30 13:47:20 +10:00
Justin Viiret
63fe84c3f1 bytecode_ptr: add make_zeroed_bytecode_ptr
Rather than always zeroing memory.
2017-04-26 15:19:36 +10:00
Justin Viiret
a197074c5d nfa: switch to using bytecode_ptr<NFA> 2017-04-26 15:19:36 +10:00
Alex Coyte
e51b6d23b9 introduce Sheng-McClellan hybrid 2016-12-14 15:27:18 +11:00
Anatoly Burakov
6331da4e29 dfa: adding new Sheng engine
A new shuffle-based DFA engine, complete with acceleration and smallwrite.
2016-08-10 15:10:46 +10:00
Anatoly Burakov
56bf25b091 McClellan refactor
Taking dfa strat out of McClellan, to be reused by other DFAs
2016-08-10 15:10:25 +10:00
Justin Viiret
1f41a921f2 mcclellan, gough: native report remapping 2016-05-18 16:20:45 +10:00
Alex Coyte
ff721ed8e4 unify some accel code/structures between limex and mcclellan 2016-04-20 13:34:56 +10:00
Alex Coyte
ed3ef5b997 raise the limit of strings in double shufti 2016-04-20 13:34:56 +10:00
Alex Coyte
b4727cf1ea masked version of dverm 2016-04-20 13:34:56 +10:00
Alex Coyte
89d7728f77 refactoring of double byte offset accel to use paths and add to mcclellan 2016-04-20 13:34:56 +10:00
Alex Coyte
f53c093baa simple offset accel for mcclellan start state 2016-04-20 13:34:56 +10:00
Alex Coyte
a255e6b678 add asserts to make bounds on alphaShift clear 2015-11-10 14:25:05 +11:00
Matthew Barr
904e436f11 Initial commit of Hyperscan 2015-10-20 09:13:35 +11:00