32 Commits

Author SHA1 Message Date
Justin Viiret
4a417c42e5 smallwrite: remove unnecessary assertion
The alpha remap array is always big enough to remap characters. Silences
Coverity issue CID 167663.
2017-05-30 13:59:00 +10:00
Alex Coyte
29ad557b9c smwr: more aggressive pruning of overlong paths in NFA 2017-05-30 13:59:00 +10:00
Justin Viiret
dfe1b8a2af ng_depth: rename calcDepth functions, return vec 2017-05-30 13:59:00 +10:00
Justin Viiret
d809e73d45 smallwrite: cope when everything has been pruned 2017-05-30 13:57:32 +10:00
Justin Viiret
42fca877a7 smallwrite: prune trie when rose is high quality 2017-05-30 13:57:32 +10:00
Justin Viiret
388c16c550 smallwrite: construct DFA states in BFS order 2017-05-30 13:57:32 +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
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
41d7aa8281 dfa: prune_overlong -> clear_deeper_reports
Rather than pruning states, we simply clear reports on states that are
too deep and allow Hopcroft minimisation to reduce the size of the DFA
afterwards.
2017-05-30 13:57:32 +10:00
Justin Viiret
d4c66e294b smallwrite: aho-corasick construction for literals 2017-04-26 15:19:51 +10:00
Justin Viiret
b75b169b49 smallwrite: simple trie experiment 2017-04-26 15:19:51 +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
Justin Viiret
e90ad34f67 smallwrite_build: delete smwrSize 2017-04-26 15:19:35 +10:00
Justin Viiret
a5ed9a9330 smallwrite_build: use bytecode_ptr 2017-04-26 15:19:35 +10:00
Justin Viiret
1ef87c43ee noncopyable: switch over from boost 2017-04-26 15:18:26 +10:00
Justin Viiret
a871f70c25 ng_extparam: split up work and do per-comp reduce
This change breaks extparam processing up into:

 - propagateExtendedParams: propagates min_length, min_offset and
   max_offset into the reports on the graph
 - reduceExtendedParams: runs graph reductions based on extparams

Then, we apply the reduce pass to the whole graph, and later as well to
each component after calc_components.
2017-04-26 15:18:22 +10:00
Justin Viiret
5dfae12a62 ng: split NGWrapper into NGHolder, ExpressionInfo
We now use NGHolder for all graph information, while other expression
properties (report, flag information, etc) go in new class
ExpressionInfo.
2017-04-26 15:18:09 +10:00
Alex Coyte
32c826e9c6 have single dump function per engine 2016-12-02 11:32:36 +11:00
Alex Coyte
e1e9010cac Introduce custom adjacency-list based graph 2016-12-02 11:31:33 +11:00
Justin Viiret
054749f9ee smallwrite: minimize DFAs if they have been pruned 2016-12-02 11:28:12 +11:00
Justin Viiret
c67a361080 smallwrite: prune overlong nfa graphs early 2016-12-02 11:26:37 +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
Justin Viiret
7f49958824 rose: only write out report programs if in use
These programs are only used by output-exposed engines.
2016-08-10 15:05:53 +10:00
Xiang Wang
9087d59be5 tamarama: add container engine for exclusive nfas
Add the new Tamarama engine that acts as a container for infix/suffix
engines that can be proven to run exclusively of one another.

This reduces stream state for pattern sets with many exclusive engines.
2016-07-08 11:01:34 +10:00
Alex Coyte
cb7067f59d Prevent trying to build smallwrite engine for large cases 2016-07-08 10:46:46 +10:00
Justin Viiret
1f41a921f2 mcclellan, gough: native report remapping 2016-05-18 16:20:45 +10:00
Justin Viiret
611579511c rose: remap reports to program offsets 2016-05-18 16:20:42 +10:00
Alex Coyte
ff82ea6d6e smallwrite: don't recompile the dfa if prune fails 2016-04-20 13:34:56 +10:00
Matthew Barr
904e436f11 Initial commit of Hyperscan 2015-10-20 09:13:35 +11:00