]>
git.ipfire.org Git - thirdparty/vectorscan.git/log
Justin Viiret [Mon, 4 Jul 2016 02:56:03 +0000 (12:56 +1000)]
limex: only compress active repeats
Justin Viiret [Mon, 4 Jul 2016 02:41:25 +0000 (12:41 +1000)]
limex: switch off stale repeats during compress
Justin Viiret [Mon, 4 Jul 2016 01:27:21 +0000 (11:27 +1000)]
limex: compress repeats before state
Justin Viiret [Thu, 2 Jun 2016 04:19:30 +0000 (14:19 +1000)]
assign groups: turn pair<pair> into a tuple
Justin Viiret [Thu, 2 Jun 2016 00:55:22 +0000 (10:55 +1000)]
rose: preserve lit properties when building masks
This fixes a bug with commit
6a6b0e5 , which did not preserve the
requires_explode and requires_benefits properties when a new literal was
generated to add an HWLM and/cmp mask.
Also extends the requires_explode handling to allow masked literals.
Boris Nagaev [Sun, 29 May 2016 09:29:13 +0000 (12:29 +0300)]
new test: deserializers fail with garbage input
Boris Nagaev [Sun, 29 May 2016 09:27:11 +0000 (12:27 +0300)]
hs_serialized_database_info: check whole input
Most lines of hs_serialized_database_info are not needed,
as the information is provided by db_decode_header.
Moreover, db_decode_header changes its first argument,
so it points to end of header after db_decode_header.
Boris Nagaev [Fri, 3 Jun 2016 23:29:26 +0000 (02:29 +0300)]
simplegrep: open file in binary mode ("rb")
Otherwise it hangs on binary files (platform MinGW).
Justin Viiret [Fri, 24 Jun 2016 01:30:07 +0000 (11:30 +1000)]
workaround for freebsd/clang/libc++ build issues
Rather than relying on set's constructor from {}, explicitly construct
the set.
Matthew Barr [Wed, 15 Jun 2016 01:02:42 +0000 (11:02 +1000)]
Apply some consistency to the names we give shifts
Matthew Barr [Tue, 14 Jun 2016 01:28:00 +0000 (11:28 +1000)]
remove unnecessary function proto
Matthew Barr [Tue, 14 Jun 2016 01:21:48 +0000 (11:21 +1000)]
remove only use of cmpmsk8 and unused cmpmsk16
Matthew Barr [Tue, 7 Jun 2016 05:45:53 +0000 (15:45 +1000)]
Remove GCC-style compound statements
These do not appear to give us benefits over inlining on recent compilers.
Matthew Barr [Tue, 7 Jun 2016 05:44:39 +0000 (15:44 +1000)]
teddy: we only need the upper lane
Just use an extract, no need to shuffle first.
Matthew Barr [Mon, 6 Jun 2016 06:24:55 +0000 (16:24 +1000)]
simd: simplify the set-all-ones util funcs
Modern compilers (gcc, icc) get this right, with the benefit of
removing our last use of inline asm in this file.
Matthew Barr [Mon, 6 Jun 2016 01:54:21 +0000 (11:54 +1000)]
Move limex specific shuffle utils and ssse3 funcs
Justin Viiret [Wed, 29 Jun 2016 05:04:40 +0000 (15:04 +1000)]
nfa: standardise callback start, end naming
Justin Viiret [Fri, 24 Jun 2016 06:22:43 +0000 (16:22 +1000)]
nfa: unify NfaCallback and SomNfaCallback
Use just one callback type, with both start and end offsets.
Xiang Wang [Tue, 11 Aug 2015 09:23:12 +0000 (05:23 -0400)]
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.
Justin Viiret [Mon, 27 Jun 2016 02:48:46 +0000 (12:48 +1000)]
rose: re-inline literal handling program exec
Justin Viiret [Wed, 22 Jun 2016 06:23:36 +0000 (16:23 +1000)]
rose: move roseRunProgram into its own unit
The roseRunProgram function had gotten very large for the number of
sites it was being inlined into, with negative effects on performance in
large cases. This change moves it into its own translation unit.
Alex Coyte [Thu, 23 Jun 2016 23:28:42 +0000 (09:28 +1000)]
allow some prefixes that may squash the literal match to run eagerly
Matthew Barr [Wed, 22 Jun 2016 05:03:22 +0000 (15:03 +1000)]
Disable strict aliasing
Strict aliasing allows to compiler to make some optimisations, but they aren't
without risk. The benefits do not appear to be worth the risk.
Alex Coyte [Thu, 23 Jun 2016 04:01:55 +0000 (14:01 +1000)]
prevent merging the e and f tables if the ftable is squashable
Alex Coyte [Thu, 23 Jun 2016 03:14:39 +0000 (13:14 +1000)]
only show floating groups to the floating table
Justin Viiret [Thu, 23 Jun 2016 01:14:34 +0000 (11:14 +1000)]
role aliasing: tidy up naming
Justin Viiret [Thu, 23 Jun 2016 01:07:39 +0000 (11:07 +1000)]
role aliasing: unify map update code
Justin Viiret [Mon, 20 Jun 2016 06:38:03 +0000 (16:38 +1000)]
rose: don't build empty sparse iter subprograms
Justin Viiret [Mon, 20 Jun 2016 04:56:14 +0000 (14:56 +1000)]
role aliasing: use a reverse ghost map
Justin Viiret [Mon, 20 Jun 2016 00:37:22 +0000 (10:37 +1000)]
tighten ghost vertex checks
Justin Viiret [Mon, 20 Jun 2016 00:17:38 +0000 (10:17 +1000)]
rose: allow ghosts to be aliased
Justin Viiret [Tue, 21 Jun 2016 02:53:13 +0000 (12:53 +1000)]
limex: tidy up scoring code
Justin Viiret [Tue, 21 Jun 2016 02:48:54 +0000 (12:48 +1000)]
limex: invert scoring to count up from zero
Kirill Rybalchenko [Thu, 21 Apr 2016 15:52:43 +0000 (16:52 +0100)]
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.
Justin Viiret [Thu, 16 Jun 2016 06:08:48 +0000 (16:08 +1000)]
rose: pick up more prefix->lookaround conversions
Justin Viiret [Tue, 14 Jun 2016 05:22:07 +0000 (15:22 +1000)]
rose build: dedupe hasLastByteHistorySucc func
Justin Viiret [Wed, 15 Jun 2016 00:33:51 +0000 (10:33 +1000)]
eod: move stream eod code to stream.c
Justin Viiret [Tue, 14 Jun 2016 23:47:24 +0000 (09:47 +1000)]
eod: tidy up, rename to roseStreamEodExec
Justin Viiret [Tue, 14 Jun 2016 23:35:48 +0000 (09:35 +1000)]
block: unify roseBlockExec and roseBlockExec_i
Justin Viiret [Tue, 14 Jun 2016 07:13:35 +0000 (17:13 +1000)]
block: move matcher invocations into functions
Justin Viiret [Tue, 14 Jun 2016 06:58:13 +0000 (16:58 +1000)]
rose: inline block-mode eod check
Justin Viiret [Tue, 14 Jun 2016 04:25:52 +0000 (14:25 +1000)]
roseEnginesEod: trust the queue structure
Justin Viiret [Tue, 14 Jun 2016 04:22:42 +0000 (14:22 +1000)]
roseSuffixesEod: trust the queue structure
Justin Viiret [Tue, 14 Jun 2016 03:39:41 +0000 (13:39 +1000)]
eod: retire getELiteralMatcher
Justin Viiret [Tue, 14 Jun 2016 01:47:02 +0000 (11:47 +1000)]
rose_build_bytecode: clean up
Justin Viiret [Tue, 14 Jun 2016 00:56:30 +0000 (10:56 +1000)]
eod: tidy runtime
Justin Viiret [Tue, 14 Jun 2016 00:39:02 +0000 (10:39 +1000)]
move eod iter program into general eod program
Justin Viiret [Tue, 14 Jun 2016 00:01:28 +0000 (10:01 +1000)]
eod: move hwlm execution into MATCHER_EOD instr
Justin Viiret [Fri, 10 Jun 2016 06:10:03 +0000 (16:10 +1000)]
rose_build_bytecode: tidy up addPredBlocks
Justin Viiret [Fri, 10 Jun 2016 04:51:15 +0000 (14:51 +1000)]
eod: more suffix iteration into program
Justin Viiret [Fri, 10 Jun 2016 01:49:08 +0000 (11:49 +1000)]
eod: remove forced sparse iter optimization
Justin Viiret [Fri, 10 Jun 2016 01:39:22 +0000 (11:39 +1000)]
eod: don't force sparse iter for general prog
Justin Viiret [Fri, 10 Jun 2016 00:09:15 +0000 (10:09 +1000)]
eod: consolidate eod anchor programs
Justin Viiret [Thu, 9 Jun 2016 04:41:15 +0000 (14:41 +1000)]
eod: move engine checks into ENGINES_EOD instr
Justin Viiret [Thu, 9 Jun 2016 04:19:01 +0000 (14:19 +1000)]
eod: stop passing both scratch and state around
Matthew Barr [Wed, 8 Jun 2016 15:57:08 +0000 (01:57 +1000)]
Only omit frame pointers on 32bit release builds
Frame pointers are very useful for debugging and testing, and only
really make a difference to performance on IA32.
Justin Viiret [Wed, 1 Jun 2016 04:47:37 +0000 (14:47 +1000)]
fdr: remove unused typedef 'ConfirmIndex'
Justin Viiret [Thu, 28 Apr 2016 23:40:44 +0000 (09:40 +1000)]
fdr: use braced init syntax for pairs
Justin Viiret [Thu, 28 Apr 2016 06:34:48 +0000 (16:34 +1000)]
teddy compile: rename loop var for readability
Justin Viiret [Tue, 5 Apr 2016 06:34:06 +0000 (16:34 +1000)]
TeddySet: doesn't need a reference to lits
Justin Viiret [Fri, 1 Apr 2016 06:34:27 +0000 (17:34 +1100)]
fdr_confirm_compile: clean up debugging code
Justin Viiret [Tue, 1 Mar 2016 23:32:40 +0000 (10:32 +1100)]
teddy_compile: modernise
Justin Viiret [Tue, 1 Mar 2016 23:23:31 +0000 (10:23 +1100)]
fdr_compile: tidy up
Justin Viiret [Tue, 1 Mar 2016 23:15:48 +0000 (10:15 +1100)]
fdr_streaming_compile: modernise loops, etc
Justin Viiret [Tue, 1 Mar 2016 05:46:25 +0000 (16:46 +1100)]
fdr/teddy: switch over remaining smart ptrs
Justin Viiret [Tue, 1 Mar 2016 05:35:09 +0000 (16:35 +1100)]
setupFullMultiConfs: return smart ptr
Justin Viiret [Tue, 1 Mar 2016 05:29:50 +0000 (16:29 +1100)]
setupFDRFloodControl: return smart ptr
Justin Viiret [Tue, 1 Mar 2016 04:56:18 +0000 (15:56 +1100)]
fdr_confirm_compile: clean up for loops, iterators
Justin Viiret [Tue, 1 Mar 2016 04:47:41 +0000 (15:47 +1100)]
fdr_confirm_compile: typedef -> using
Justin Viiret [Tue, 1 Mar 2016 04:45:17 +0000 (15:45 +1100)]
fdr_confirm_compile: use smart ptrs
Justin Viiret [Tue, 1 Mar 2016 04:26:33 +0000 (15:26 +1100)]
fdr_compile_internal: remove unused decl
getFDRConfirm() is static.
Justin Viiret [Tue, 7 Jun 2016 02:00:30 +0000 (12:00 +1000)]
unit: make multiaccel tests deterministic
Use a PRNG, not rand().
Justin Viiret [Thu, 19 May 2016 07:22:37 +0000 (17:22 +1000)]
rose: eagerly report EOD literal matches
Where possible, eagerly report a match when a literal that matches at
EOD occurs, rather than setting a state bit and waiting for EOD
processing.
Justin Viiret [Thu, 2 Jun 2016 06:25:36 +0000 (16:25 +1000)]
ng_equivalence: reduce compile time on large cases
Alex Coyte [Fri, 3 Jun 2016 05:33:35 +0000 (15:33 +1000)]
use edge index to avoid assoc property maps
Justin Viiret [Tue, 3 May 2016 06:16:20 +0000 (16:16 +1000)]
rose: parameterise CHECK_LIT_EARLY
Justin Viiret [Thu, 2 Jun 2016 03:57:03 +0000 (13:57 +1000)]
rose: make assignGroupsToLiterals a free function
Justin Viiret [Thu, 2 Jun 2016 03:52:29 +0000 (13:52 +1000)]
rose: make assignGroupsToRoles a free function
Justin Viiret [Thu, 2 Jun 2016 03:24:47 +0000 (13:24 +1000)]
rose_build_groups: move findGroupSquashers
Justin Viiret [Thu, 2 Jun 2016 03:18:23 +0000 (13:18 +1000)]
rose_build_groups: move getGroups, getSuccGroups
Justin Viiret [Thu, 2 Jun 2016 03:13:48 +0000 (13:13 +1000)]
rose_build_groups: move assignGroupsToRoles
Justin Viiret [Thu, 2 Jun 2016 03:10:42 +0000 (13:10 +1000)]
rose_build_groups: move assignGroupsToLiterals
Justin Viiret [Tue, 31 May 2016 05:24:59 +0000 (15:24 +1000)]
rose: elide SET_GROUPS when possible
Justin Viiret [Fri, 27 May 2016 05:05:24 +0000 (15:05 +1000)]
rose: Do HWLM advisory masks as a complete pass
Justin Viiret [Fri, 27 May 2016 06:51:41 +0000 (16:51 +1000)]
rose: linear scan for lookaround during build
This allows us to reuse more lookaround entries in the bytecode.
Alex Coyte [Tue, 31 May 2016 04:46:09 +0000 (14:46 +1000)]
Provide access to scratch in queues
This largely reverts commit
f8ecf33236b0695d9539e8e34cf0bb0467614cdf .
Alex Coyte [Mon, 30 May 2016 04:00:31 +0000 (14:00 +1000)]
Prevent trying to build smallwrite engine for large cases
Alex Coyte [Fri, 6 May 2016 03:20:00 +0000 (13:20 +1000)]
use the correct way to refer to void *
Alex Coyte [Tue, 17 May 2016 05:05:42 +0000 (15:05 +1000)]
UE-2963: be more aggressive in using buildSufPQ_final()
Justin Viiret [Thu, 26 May 2016 04:21:40 +0000 (14:21 +1000)]
exhaust: move functions to report.h
Justin Viiret [Thu, 26 May 2016 00:11:19 +0000 (10:11 +1000)]
rose: dump leftfix/suffix queue indices
Boris Nagaev [Wed, 6 Jul 2016 16:46:41 +0000 (19:46 +0300)]
fix add_to_engine_blob for iterator=pointer
Boris Nagaev [Wed, 6 Jul 2016 16:46:25 +0000 (19:46 +0300)]
fix iter_wrapper for iterator=pointer
Matthew Barr [Wed, 1 Jun 2016 01:09:05 +0000 (11:09 +1000)]
Merge branch develop into master
Matthew Barr [Wed, 1 Jun 2016 00:50:55 +0000 (10:50 +1000)]
Bump version number for release
Justin Viiret [Wed, 4 May 2016 07:36:46 +0000 (17:36 +1000)]
changelog: updates for 4.2 release
Justin Viiret [Mon, 30 May 2016 04:51:04 +0000 (14:51 +1000)]
docs: more detail on option setting
Justin Viiret [Mon, 30 May 2016 04:30:43 +0000 (14:30 +1000)]
doc: correct syntax for "extended" option setting
Extended syntax (ignore whitespace) is controlled with (?x) and (?-x).
Justin Viiret [Fri, 27 May 2016 01:11:04 +0000 (11:11 +1000)]
rose: always push CHECK_BOUNDS onto end of program
Justin Viiret [Fri, 27 May 2016 00:40:06 +0000 (10:40 +1000)]
rose: fix CHECK_NOT_HANDLED placement bug
The CHECK_NOT_HANDLED instruction was being inserted into an already
partially-flattened program, which would result in jump offsets becoming
incorrect.
This change places it as part of the normal flow of program
construction, which avoids this issue.