Justin Viiret
5e3fa7a266
limex: make NFAAccept::squash rel to LimEx base
2016-10-28 14:46:23 +11:00
Justin Viiret
77fe1ef6e5
limex: rework accept handling
...
Rather that iterating over NFAAccept structures and testing individual
bits in the state structure, iterate over the state vector and index
into accept structures.
Adds report list support to this path, unified with the report lists
used for exception handling.
2016-10-28 14:46:19 +11:00
Justin Viiret
3dcfea19e0
limex: fold TESTEOD_REV_FN use into TESTEOD_FN
2016-10-28 14:45:57 +11:00
Justin Viiret
9c99a923a1
limex: remove constant do_br arg from TESTEOD_FN
2016-10-28 14:45:54 +11:00
Alex Coyte
97483eee5b
UE-3019: limex_compile: correctly access the dominator map
2016-10-28 14:45:02 +11:00
Alex Coyte
bcf40c5136
Limex: don't not build accel schemes for impossible state sets
2016-10-28 14:44:12 +11:00
Alex Coyte
a08e1dd690
Introduce a 64-bit LimEx model.
...
On 64-bit platforms, the Limex 64 model is implemented in normal GPRs.
On 32-bit platforms, however, 128-bit SSE registers are used for the
runtime implementation.
2016-10-28 14:44:12 +11:00
Justin Viiret
3cf4199879
debug: always use %zu in format string for size_t
2016-10-28 14:43:34 +11:00
Justin Viiret
0cc941dfd5
limex_dump: silence gcc large alignment warning
...
Passing mask by const ref silences the warning: "The ABI for passing
parameters with 32-byte alignment has changed in GCC 4.6".
2016-10-28 14:43:34 +11:00
jason taylor
b859e5cb8a
Updated nfa source file permissions
...
Resolves issue github issue #37
2016-09-04 19:25:59 -04:00
Justin Viiret
87e32c9037
tamarama: check for match halt in _Q2 as well
2016-08-22 16:04:27 +10:00
Alex Coyte
147f9655b6
Add assertion indicating valid range of rank_in_mask's bit param
...
Coverity CID 141632
2016-08-22 16:03:47 +10:00
Justin Viiret
01ee4c94e3
dfa_build_strat: remove dead pure virtual impl
2016-08-10 15:11:15 +10:00
Alex Coyte
702f256b39
remove exceptionMap from LimExNFA
2016-08-10 15:11:15 +10: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
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