291 Commits

Author SHA1 Message Date
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
a9fddbc400 nfa: delete largely-unused struct LimExNFABase 2016-08-10 15:10:25 +10:00
Matthew Barr
cbd115f7fe Don't shadow names 2016-08-10 15:06:57 +10:00
Alex Coyte
5c5ec905cc violet: initial implementation 2016-08-10 15:01:08 +10:00
Xiang Wang
e95a251935 UE-2991: avoid copying one unnecessary subqueue item 2016-08-10 14:59:06 +10:00
Alex Coyte
f55e968692 tamarama dump: use correct base offset 2016-08-10 14:57:20 +10:00
Alex Coyte
691b08d170 use NGHolder::foo in favour of NFAGraph::foo 2016-08-10 14:52:56 +10:00
Justin Viiret
8435f918d1 limex: use cyclics mask for repeat compress 2016-08-10 14:52:56 +10:00
Justin Viiret
ae5e347778 limex: only compress active repeats 2016-08-10 14:52:56 +10:00
Justin Viiret
aa54352a3a limex: switch off stale repeats during compress 2016-08-10 14:52:56 +10:00
Justin Viiret
19e79be87d limex: compress repeats before state 2016-08-10 14:52:56 +10:00
Matthew Barr
e3d416a6ea Apply some consistency to the names we give shifts 2016-07-08 11:07:50 +10:00
Matthew Barr
9c915cc936 remove only use of cmpmsk8 and unused cmpmsk16 2016-07-08 11:07:50 +10:00
Matthew Barr
4d6934fc77 Move limex specific shuffle utils and ssse3 funcs 2016-07-08 11:07:50 +10:00
Justin Viiret
9f98f4c7b2 nfa: standardise callback start, end naming 2016-07-08 11:02:05 +10:00
Justin Viiret
cf9e40ae1c nfa: unify NfaCallback and SomNfaCallback
Use just one callback type, with both start and end offsets.
2016-07-08 11:01:56 +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
f166bc5658 allow some prefixes that may squash the literal match to run eagerly 2016-07-08 11:01:34 +10:00
Justin Viiret
e915ca21c5 limex: tidy up scoring code 2016-07-08 10:57:29 +10:00
Justin Viiret
8648397257 limex: invert scoring to count up from zero 2016-07-08 10:57:29 +10:00
Kirill Rybalchenko
9d2403e8bb limex: implement variable shift NFA engines
Replaces the old LimEx NFA engines, which were specialised for model
size and number of shifts, with a new set of engines that can handle a
variable number of shifts.
2016-07-08 10:57:29 +10:00
Alex Coyte
a8aa2d022f Provide access to scratch in queues
This largely reverts commit f8ecf33236b0695d9539e8e34cf0bb0467614cdf.
2016-07-08 10:46:50 +10:00
Alex Coyte
9fa11b48b0 mcclellan compile: more efficient discovery of accel 2016-05-18 16:22:35 +10:00
Justin Viiret
061068a260 nfa_kind: documentation 2016-05-18 16:22:01 +10:00
Justin Viiret
ee7f31ac39 mpv: native report remapping 2016-05-18 16:22:01 +10:00
Justin Viiret
c101beb541 castle, lbr: native report remap 2016-05-18 16:21:36 +10:00
Justin Viiret
ec985a62f8 castle: add nfa kind to CastleProto 2016-05-18 16:21:03 +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
Matthew Barr
68851742cc Help ICC perform a not m128 2016-04-20 13:34:57 +10:00
Justin Viiret
9721262149 shufti: small C++11 fix to silence clang warning 2016-04-20 13:34:56 +10:00
Alex Coyte
ff721ed8e4 unify some accel code/structures between limex and mcclellan 2016-04-20 13:34:56 +10:00
Alex Coyte
ff82ea6d6e smallwrite: don't recompile the dfa if prune fails 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
c0a5b037a1 allow double shufti to share buckets 2016-04-20 13:34:56 +10:00
Alex Coyte
6c7ee12bb9 make dverm more precise 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
6898dc9864 look for normal accel schemes using compressed alpha 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
d125601152 dump contents of double shufti masks 2016-04-20 13:34:56 +10:00
Alex Coyte
956b86e97a move MultibyteAccelInfo to accelcompile.h 2016-04-20 13:34:56 +10:00
Justin Viiret
5354b7a5ca mpv: fire only one report when simple-exhaustible 2016-04-20 13:34:55 +10:00
Justin Viiret
9852ac0091 mpv: use size_t for count, not u32
Small cleanup in processReportsForRange.
2016-04-20 13:34:55 +10:00
Justin Viiret
9ae908fd11 shufticompile: Remove unused mergeShuftiMask 2016-04-20 13:34:55 +10:00
Justin Viiret
d0aa138ada castle/repeat: fix a number of bugs
- Add fits_in_len_bytes assertions for packed stores.
  Corrects the assertion formerly on line 888.

- In exclusive mode, don't overwrite packedCtrlSize with the max of the
  group; each repeat should know how many bytes it is using, even if
  they share the same stream state.

- Ensure that exclusive mode stream state is sized correctly.
2016-04-20 13:34:54 +10:00
Mohammad Abdul Awal
b58d05dfec Fixed some DEBUG_OUTPUT format string. 2016-04-20 13:34:53 +10:00
Justin Viiret
ec223e3622 Always init NFAContext::cached_br
Now that it's on stack, this should be initialised. Silences a warning
from valgrind.
2016-03-01 11:36:22 +11:00
Matthew Barr
90ea5b6010 Correct asserts 2016-03-01 11:36:22 +11:00
Xiang Wang
a7daa70942 Castle: exclusive analysis for multiple subcastle chunks
Apply clique analysis to subcastle chunks if the number of
subcastles is large and check the status of each chunk
separately at runtime.
2016-03-01 11:36:10 +11:00