]> git.ipfire.org Git - thirdparty/vectorscan.git/log
thirdparty/vectorscan.git
10 years agorose: use normal callback for pure-literal cases
Justin Viiret [Tue, 5 Jul 2016 04:37:22 +0000 (14:37 +1000)] 
rose: use normal callback for pure-literal cases

10 years agolimex: use cyclics mask for repeat compress
Justin Viiret [Mon, 4 Jul 2016 04:19:10 +0000 (14:19 +1000)] 
limex: use cyclics mask for repeat compress

10 years agolimex: only compress active repeats
Justin Viiret [Mon, 4 Jul 2016 02:56:03 +0000 (12:56 +1000)] 
limex: only compress active repeats

10 years agolimex: switch off stale repeats during compress
Justin Viiret [Mon, 4 Jul 2016 02:41:25 +0000 (12:41 +1000)] 
limex: switch off stale repeats during compress

10 years agolimex: compress repeats before state
Justin Viiret [Mon, 4 Jul 2016 01:27:21 +0000 (11:27 +1000)] 
limex: compress repeats before state

10 years agoassign groups: turn pair<pair> into a tuple
Justin Viiret [Thu, 2 Jun 2016 04:19:30 +0000 (14:19 +1000)] 
assign groups: turn pair<pair> into a tuple

10 years agorose: preserve lit properties when building masks
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.

10 years agonew test: deserializers fail with garbage input
Boris Nagaev [Sun, 29 May 2016 09:29:13 +0000 (12:29 +0300)] 
new test: deserializers fail with garbage input

10 years agohs_serialized_database_info: check whole 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.

10 years agosimplegrep: open file in binary mode ("rb")
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).

10 years agoworkaround for freebsd/clang/libc++ build issues
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.

10 years agoApply some consistency to the names we give shifts
Matthew Barr [Wed, 15 Jun 2016 01:02:42 +0000 (11:02 +1000)] 
Apply some consistency to the names we give shifts

10 years agoremove unnecessary function proto
Matthew Barr [Tue, 14 Jun 2016 01:28:00 +0000 (11:28 +1000)] 
remove unnecessary function proto

10 years agoremove only use of cmpmsk8 and unused cmpmsk16
Matthew Barr [Tue, 14 Jun 2016 01:21:48 +0000 (11:21 +1000)] 
remove only use of cmpmsk8 and unused cmpmsk16

10 years agoRemove GCC-style compound statements
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.

10 years agoteddy: we only need the upper lane
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.

10 years agosimd: simplify the set-all-ones util funcs
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.

10 years agoMove limex specific shuffle utils and ssse3 funcs
Matthew Barr [Mon, 6 Jun 2016 01:54:21 +0000 (11:54 +1000)] 
Move limex specific shuffle utils and ssse3 funcs

10 years agonfa: standardise callback start, end naming
Justin Viiret [Wed, 29 Jun 2016 05:04:40 +0000 (15:04 +1000)] 
nfa: standardise callback start, end naming

10 years agonfa: unify NfaCallback and SomNfaCallback
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.

10 years agotamarama: add container engine for exclusive nfas
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.

10 years agorose: re-inline literal handling program exec
Justin Viiret [Mon, 27 Jun 2016 02:48:46 +0000 (12:48 +1000)] 
rose: re-inline literal handling program exec

10 years agorose: move roseRunProgram into its own unit
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.

10 years agoallow some prefixes that may squash the literal match to run eagerly
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

10 years agoDisable strict aliasing
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.

10 years agoprevent merging the e and f tables if the ftable is squashable
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

10 years ago only show floating groups to the floating table
Alex Coyte [Thu, 23 Jun 2016 03:14:39 +0000 (13:14 +1000)] 
only show floating groups to the floating table

10 years agorole aliasing: tidy up naming
Justin Viiret [Thu, 23 Jun 2016 01:14:34 +0000 (11:14 +1000)] 
role aliasing: tidy up naming

10 years agorole aliasing: unify map update code
Justin Viiret [Thu, 23 Jun 2016 01:07:39 +0000 (11:07 +1000)] 
role aliasing: unify map update code

10 years agorose: don't build empty sparse iter subprograms
Justin Viiret [Mon, 20 Jun 2016 06:38:03 +0000 (16:38 +1000)] 
rose: don't build empty sparse iter subprograms

10 years agorole aliasing: use a reverse ghost map
Justin Viiret [Mon, 20 Jun 2016 04:56:14 +0000 (14:56 +1000)] 
role aliasing: use a reverse ghost map

10 years agotighten ghost vertex checks
Justin Viiret [Mon, 20 Jun 2016 00:37:22 +0000 (10:37 +1000)] 
tighten ghost vertex checks

10 years agorose: allow ghosts to be aliased
Justin Viiret [Mon, 20 Jun 2016 00:17:38 +0000 (10:17 +1000)] 
rose: allow ghosts to be aliased

10 years agolimex: tidy up scoring code
Justin Viiret [Tue, 21 Jun 2016 02:53:13 +0000 (12:53 +1000)] 
limex: tidy up scoring code

10 years agolimex: invert scoring to count up from zero
Justin Viiret [Tue, 21 Jun 2016 02:48:54 +0000 (12:48 +1000)] 
limex: invert scoring to count up from zero

10 years agolimex: implement variable shift NFA engines
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.

10 years agorose: pick up more prefix->lookaround conversions
Justin Viiret [Thu, 16 Jun 2016 06:08:48 +0000 (16:08 +1000)] 
rose: pick up more prefix->lookaround conversions

10 years agorose build: dedupe hasLastByteHistorySucc func
Justin Viiret [Tue, 14 Jun 2016 05:22:07 +0000 (15:22 +1000)] 
rose build: dedupe hasLastByteHistorySucc func

10 years agoeod: move stream eod code to stream.c
Justin Viiret [Wed, 15 Jun 2016 00:33:51 +0000 (10:33 +1000)] 
eod: move stream eod code to stream.c

10 years agoeod: tidy up, rename to roseStreamEodExec
Justin Viiret [Tue, 14 Jun 2016 23:47:24 +0000 (09:47 +1000)] 
eod: tidy up, rename to roseStreamEodExec

10 years agoblock: unify roseBlockExec and roseBlockExec_i
Justin Viiret [Tue, 14 Jun 2016 23:35:48 +0000 (09:35 +1000)] 
block: unify roseBlockExec and roseBlockExec_i

10 years agoblock: move matcher invocations into functions
Justin Viiret [Tue, 14 Jun 2016 07:13:35 +0000 (17:13 +1000)] 
block: move matcher invocations into functions

10 years agorose: inline block-mode eod check
Justin Viiret [Tue, 14 Jun 2016 06:58:13 +0000 (16:58 +1000)] 
rose: inline block-mode eod check

10 years agoroseEnginesEod: trust the queue structure
Justin Viiret [Tue, 14 Jun 2016 04:25:52 +0000 (14:25 +1000)] 
roseEnginesEod: trust the queue structure

10 years agoroseSuffixesEod: trust the queue structure
Justin Viiret [Tue, 14 Jun 2016 04:22:42 +0000 (14:22 +1000)] 
roseSuffixesEod: trust the queue structure

10 years agoeod: retire getELiteralMatcher
Justin Viiret [Tue, 14 Jun 2016 03:39:41 +0000 (13:39 +1000)] 
eod: retire getELiteralMatcher

10 years agorose_build_bytecode: clean up
Justin Viiret [Tue, 14 Jun 2016 01:47:02 +0000 (11:47 +1000)] 
rose_build_bytecode: clean up

10 years agoeod: tidy runtime
Justin Viiret [Tue, 14 Jun 2016 00:56:30 +0000 (10:56 +1000)] 
eod: tidy runtime

10 years agomove eod iter program into general eod program
Justin Viiret [Tue, 14 Jun 2016 00:39:02 +0000 (10:39 +1000)] 
move eod iter program into general eod program

10 years agoeod: move hwlm execution into MATCHER_EOD instr
Justin Viiret [Tue, 14 Jun 2016 00:01:28 +0000 (10:01 +1000)] 
eod: move hwlm execution into MATCHER_EOD instr

10 years agorose_build_bytecode: tidy up addPredBlocks
Justin Viiret [Fri, 10 Jun 2016 06:10:03 +0000 (16:10 +1000)] 
rose_build_bytecode: tidy up addPredBlocks

10 years agoeod: more suffix iteration into program
Justin Viiret [Fri, 10 Jun 2016 04:51:15 +0000 (14:51 +1000)] 
eod: more suffix iteration into program

10 years agoeod: remove forced sparse iter optimization
Justin Viiret [Fri, 10 Jun 2016 01:49:08 +0000 (11:49 +1000)] 
eod: remove forced sparse iter optimization

10 years agoeod: don't force sparse iter for general prog
Justin Viiret [Fri, 10 Jun 2016 01:39:22 +0000 (11:39 +1000)] 
eod: don't force sparse iter for general prog

10 years agoeod: consolidate eod anchor programs
Justin Viiret [Fri, 10 Jun 2016 00:09:15 +0000 (10:09 +1000)] 
eod: consolidate eod anchor programs

10 years agoeod: move engine checks into ENGINES_EOD instr
Justin Viiret [Thu, 9 Jun 2016 04:41:15 +0000 (14:41 +1000)] 
eod: move engine checks into ENGINES_EOD instr

10 years agoeod: stop passing both scratch and state around
Justin Viiret [Thu, 9 Jun 2016 04:19:01 +0000 (14:19 +1000)] 
eod: stop passing both scratch and state around

10 years agoOnly omit frame pointers on 32bit release builds
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.

10 years agofdr: remove unused typedef 'ConfirmIndex'
Justin Viiret [Wed, 1 Jun 2016 04:47:37 +0000 (14:47 +1000)] 
fdr: remove unused typedef 'ConfirmIndex'

10 years agofdr: use braced init syntax for pairs
Justin Viiret [Thu, 28 Apr 2016 23:40:44 +0000 (09:40 +1000)] 
fdr: use braced init syntax for pairs

10 years agoteddy compile: rename loop var for readability
Justin Viiret [Thu, 28 Apr 2016 06:34:48 +0000 (16:34 +1000)] 
teddy compile: rename loop var for readability

10 years agoTeddySet: doesn't need a reference to lits
Justin Viiret [Tue, 5 Apr 2016 06:34:06 +0000 (16:34 +1000)] 
TeddySet: doesn't need a reference to lits

10 years agofdr_confirm_compile: clean up debugging code
Justin Viiret [Fri, 1 Apr 2016 06:34:27 +0000 (17:34 +1100)] 
fdr_confirm_compile: clean up debugging code

10 years agoteddy_compile: modernise
Justin Viiret [Tue, 1 Mar 2016 23:32:40 +0000 (10:32 +1100)] 
teddy_compile: modernise

10 years agofdr_compile: tidy up
Justin Viiret [Tue, 1 Mar 2016 23:23:31 +0000 (10:23 +1100)] 
fdr_compile: tidy up

10 years agofdr_streaming_compile: modernise loops, etc
Justin Viiret [Tue, 1 Mar 2016 23:15:48 +0000 (10:15 +1100)] 
fdr_streaming_compile: modernise loops, etc

10 years agofdr/teddy: switch over remaining smart ptrs
Justin Viiret [Tue, 1 Mar 2016 05:46:25 +0000 (16:46 +1100)] 
fdr/teddy: switch over remaining smart ptrs

10 years agosetupFullMultiConfs: return smart ptr
Justin Viiret [Tue, 1 Mar 2016 05:35:09 +0000 (16:35 +1100)] 
setupFullMultiConfs: return smart ptr

10 years agosetupFDRFloodControl: return smart ptr
Justin Viiret [Tue, 1 Mar 2016 05:29:50 +0000 (16:29 +1100)] 
setupFDRFloodControl: return smart ptr

10 years agofdr_confirm_compile: clean up for loops, iterators
Justin Viiret [Tue, 1 Mar 2016 04:56:18 +0000 (15:56 +1100)] 
fdr_confirm_compile: clean up for loops, iterators

10 years agofdr_confirm_compile: typedef -> using
Justin Viiret [Tue, 1 Mar 2016 04:47:41 +0000 (15:47 +1100)] 
fdr_confirm_compile: typedef -> using

10 years agofdr_confirm_compile: use smart ptrs
Justin Viiret [Tue, 1 Mar 2016 04:45:17 +0000 (15:45 +1100)] 
fdr_confirm_compile: use smart ptrs

10 years agofdr_compile_internal: remove unused decl
Justin Viiret [Tue, 1 Mar 2016 04:26:33 +0000 (15:26 +1100)] 
fdr_compile_internal: remove unused decl

getFDRConfirm() is static.

10 years agounit: make multiaccel tests deterministic
Justin Viiret [Tue, 7 Jun 2016 02:00:30 +0000 (12:00 +1000)] 
unit: make multiaccel tests deterministic

Use a PRNG, not rand().

10 years agorose: eagerly report EOD literal matches
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.

10 years agong_equivalence: reduce compile time on large cases
Justin Viiret [Thu, 2 Jun 2016 06:25:36 +0000 (16:25 +1000)] 
ng_equivalence: reduce compile time on large cases

10 years agouse edge index to avoid assoc property maps
Alex Coyte [Fri, 3 Jun 2016 05:33:35 +0000 (15:33 +1000)] 
use edge index to avoid assoc property maps

10 years agorose: parameterise CHECK_LIT_EARLY
Justin Viiret [Tue, 3 May 2016 06:16:20 +0000 (16:16 +1000)] 
rose: parameterise CHECK_LIT_EARLY

10 years agorose: make assignGroupsToLiterals a free function
Justin Viiret [Thu, 2 Jun 2016 03:57:03 +0000 (13:57 +1000)] 
rose: make assignGroupsToLiterals a free function

10 years agorose: make assignGroupsToRoles a free function
Justin Viiret [Thu, 2 Jun 2016 03:52:29 +0000 (13:52 +1000)] 
rose: make assignGroupsToRoles a free function

10 years agorose_build_groups: move findGroupSquashers
Justin Viiret [Thu, 2 Jun 2016 03:24:47 +0000 (13:24 +1000)] 
rose_build_groups: move findGroupSquashers

10 years agorose_build_groups: move getGroups, getSuccGroups
Justin Viiret [Thu, 2 Jun 2016 03:18:23 +0000 (13:18 +1000)] 
rose_build_groups: move getGroups, getSuccGroups

10 years agorose_build_groups: move assignGroupsToRoles
Justin Viiret [Thu, 2 Jun 2016 03:13:48 +0000 (13:13 +1000)] 
rose_build_groups: move assignGroupsToRoles

10 years agorose_build_groups: move assignGroupsToLiterals
Justin Viiret [Thu, 2 Jun 2016 03:10:42 +0000 (13:10 +1000)] 
rose_build_groups: move assignGroupsToLiterals

10 years agorose: elide SET_GROUPS when possible
Justin Viiret [Tue, 31 May 2016 05:24:59 +0000 (15:24 +1000)] 
rose: elide SET_GROUPS when possible

10 years agorose: Do HWLM advisory masks as a complete pass
Justin Viiret [Fri, 27 May 2016 05:05:24 +0000 (15:05 +1000)] 
rose: Do HWLM advisory masks as a complete pass

10 years agorose: linear scan for lookaround during build
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.

10 years agoProvide access to scratch in queues
Alex Coyte [Tue, 31 May 2016 04:46:09 +0000 (14:46 +1000)] 
Provide access to scratch in queues

This largely reverts commit f8ecf33236b0695d9539e8e34cf0bb0467614cdf.

10 years agoPrevent trying to build smallwrite engine for large cases
Alex Coyte [Mon, 30 May 2016 04:00:31 +0000 (14:00 +1000)] 
Prevent trying to build smallwrite engine for large cases

10 years agouse the correct way to refer to void *
Alex Coyte [Fri, 6 May 2016 03:20:00 +0000 (13:20 +1000)] 
use the correct way to refer to void *

10 years agoUE-2963: be more aggressive in using buildSufPQ_final()
Alex Coyte [Tue, 17 May 2016 05:05:42 +0000 (15:05 +1000)] 
UE-2963: be more aggressive in using buildSufPQ_final()

10 years agoexhaust: move functions to report.h
Justin Viiret [Thu, 26 May 2016 04:21:40 +0000 (14:21 +1000)] 
exhaust: move functions to report.h

10 years agorose: dump leftfix/suffix queue indices
Justin Viiret [Thu, 26 May 2016 00:11:19 +0000 (10:11 +1000)] 
rose: dump leftfix/suffix queue indices

10 years agofix add_to_engine_blob for iterator=pointer
Boris Nagaev [Wed, 6 Jul 2016 16:46:41 +0000 (19:46 +0300)] 
fix add_to_engine_blob for iterator=pointer

10 years agofix iter_wrapper for iterator=pointer
Boris Nagaev [Wed, 6 Jul 2016 16:46:25 +0000 (19:46 +0300)] 
fix iter_wrapper for iterator=pointer

10 years agoMerge branch develop into master v4.2.0
Matthew Barr [Wed, 1 Jun 2016 01:09:05 +0000 (11:09 +1000)] 
Merge branch develop into master

10 years agoBump version number for release
Matthew Barr [Wed, 1 Jun 2016 00:50:55 +0000 (10:50 +1000)] 
Bump version number for release

10 years agochangelog: updates for 4.2 release
Justin Viiret [Wed, 4 May 2016 07:36:46 +0000 (17:36 +1000)] 
changelog: updates for 4.2 release

10 years agodocs: more detail on option setting
Justin Viiret [Mon, 30 May 2016 04:51:04 +0000 (14:51 +1000)] 
docs: more detail on option setting

10 years agodoc: correct syntax for "extended" 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).