]> git.ipfire.org Git - thirdparty/vectorscan.git/log
thirdparty/vectorscan.git
9 years agolimex: only compress active repeats
Justin Viiret [Mon, 4 Jul 2016 02:56:03 +0000 (12:56 +1000)] 
limex: only compress active repeats

9 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

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

9 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

9 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.

9 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

9 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.

9 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).

9 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.

9 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

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

9 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

9 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.

9 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.

9 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.

9 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

9 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

9 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.

9 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.

9 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

9 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.

9 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

9 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.

9 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

9 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

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

9 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

9 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

9 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

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

9 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

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

9 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

9 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.

9 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

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

9 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

9 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

9 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

9 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

9 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

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

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

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

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

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

9 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

9 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

9 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

9 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

9 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

9 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

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

9 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

9 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

9 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.

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

9 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

9 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

9 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

9 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

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

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

9 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

9 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

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

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

9 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

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

9 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

9 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.

9 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().

9 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.

9 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

9 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

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

9 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

9 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

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

9 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

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

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

9 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

9 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

9 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.

9 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.

9 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

9 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 *

9 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()

9 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

9 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

9 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

9 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).

10 years agorose: always push CHECK_BOUNDS onto end of program
Justin Viiret [Fri, 27 May 2016 01:11:04 +0000 (11:11 +1000)] 
rose: always push CHECK_BOUNDS onto end of program

10 years agorose: fix CHECK_NOT_HANDLED placement bug
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.