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
Justin Viiret
1619d975c6
limex_runtime.h: scratch header no longer needed
2016-03-01 11:34:57 +11:00
Justin Viiret
c3860a9f29
NFA API: Remove unused scratch ptr from struct mq
2016-03-01 11:34:38 +11:00
Justin Viiret
58f9617f66
NFA API: Remove nfaBlockExecReverse scratch arg
...
Scratch is no longer used by this function's implementations.
2016-03-01 11:34:38 +11:00
Justin Viiret
3e002f8181
NFA: Move NFAContext to stack (from scratch)
2016-03-01 11:34:38 +11:00
Justin Viiret
7b54856642
Rose: allow block-mode merge of small prefixes
...
Previously, we disallowed the merging of all Rose prefixes in block mode
where the literal sets are not identical.
This change allows merging if the prefix graphs to be merged are very
small, as a small performance improvement for cases with lots of tiny
prefixes.
This check is deliberately conservative: graphs must have some common
vertices, and the result of the merge must not give up any
accelerability.
2016-03-01 11:34:26 +11:00
Justin Viiret
28f379d738
Rose: remove alignment req for anchored DFA state
2016-03-01 11:32:01 +11:00
Justin Viiret
621dfbebb7
nfaCheckFinalState: define return value
...
Make nfaCheckFinalState return MO_HALT_MATCHING when the user instructs
us (via the callback return value) to halt matching. In the caller,
check this value and stop matching if told.
2016-03-01 11:28:03 +11:00
Anatoly Burakov
843ca0e7cc
Don't look for accel friends for multibyte acceleration
2016-03-01 11:27:36 +11:00