202 Commits

Author SHA1 Message Date
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
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