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
Anatoly Burakov
87424713a7
Multibyte acceleration compile side
2016-03-01 11:21:39 +11:00
Anatoly Burakov
081b3ef369
Multibyte truffle runtime
2016-03-01 11:21:39 +11:00
Anatoly Burakov
47b17ade27
Multibyte shufti runtime
2016-03-01 11:21:39 +11:00
Anatoly Burakov
dd2ec6bdac
Multibyte vermicelli runtime
2016-03-01 11:21:39 +11:00
Anatoly Burakov
77ff826bbf
Adding bitmatchers
2016-03-01 11:21:39 +11:00
Anatoly Burakov
68f6849687
Adding AVX2 version of truffle
2016-03-01 11:21:39 +11:00
Alex Coyte
e065c4d60b
make nfaExecCastle0_QR() more efficent
...
1. Reverse scan for the last escape and only process later events.
2. Only scheck subcastles which may expire for staleness
2016-03-01 11:13:22 +11:00
Alex Coyte
05beadf52f
Introduce REPEAT_ALWAYS model for {0,} castle repeats
...
As Castle guards the repeats, no more state is needed for these repeats
2016-03-01 11:10:20 +11:00
Xiang Wang
7bcd2b07c9
simplify max clique analysis
2015-12-07 09:38:33 +11:00
Justin Viiret
748d46c124
CastleProto: track next top explicitly
...
Repeats may be removed (e.g. by pruning in role aliasing passes)
leaving "holes" in the top map. Track the next top to use explicitly,
rather than using repeats.size().
2015-12-07 09:38:32 +11:00