]> git.ipfire.org Git - thirdparty/vectorscan.git/log
thirdparty/vectorscan.git
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

9 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

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

9 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

9 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

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

9 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

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

9 years agocmake: invoke the compiler to test arch features
Matthew Barr [Mon, 23 May 2016 04:57:48 +0000 (14:57 +1000)] 
cmake: invoke the compiler to test arch features

We require SSSE3, and optionally support AVX2, and the best way of testing
the compiler and compile flags is to run the compiler.

9 years agoWe need an immediate so use intrinsic directly
Matthew Barr [Mon, 9 May 2016 00:47:15 +0000 (10:47 +1000)] 
We need an immediate so use intrinsic directly

9 years agodebug printf: Windows path separator
Matthew Barr [Mon, 9 May 2016 00:53:54 +0000 (10:53 +1000)] 
debug printf: Windows path separator

9 years agovbs: the static array has C linkage
Matthew Barr [Wed, 11 May 2016 22:39:12 +0000 (08:39 +1000)] 
vbs: the static array has C linkage

9 years agomasked move: C linkage
Matthew Barr [Wed, 11 May 2016 22:51:02 +0000 (08:51 +1000)] 
masked move: C linkage

9 years agoWin32 ctz and clz
Matthew Barr [Thu, 7 Apr 2016 03:17:55 +0000 (13:17 +1000)] 
Win32 ctz and clz

9 years agopopcount: use intrinsics and restructure defines
Matthew Barr [Fri, 20 May 2016 05:30:29 +0000 (15:30 +1000)] 
popcount: use intrinsics and restructure defines

9 years agofdr: teddy.h does not need to include hwlm.h
Justin Viiret [Fri, 20 May 2016 05:14:20 +0000 (15:14 +1000)] 
fdr: teddy.h does not need to include hwlm.h

9 years agofdr: remove dead function decls from teddy.h
Justin Viiret [Fri, 20 May 2016 05:11:07 +0000 (15:11 +1000)] 
fdr: remove dead function decls from teddy.h

9 years agopkgconfig: Add Libs.private for static linking
Matthew Barr [Wed, 27 Apr 2016 05:05:44 +0000 (15:05 +1000)] 
pkgconfig: Add Libs.private for static linking

9 years agocmake: fix optimise define
Matthew Barr [Wed, 18 May 2016 05:50:38 +0000 (15:50 +1000)] 
cmake: fix optimise define

9 years agoinstall .dll to bin/, not to lib/
Boris Nagaev [Wed, 18 May 2016 05:59:57 +0000 (07:59 +0200)] 
install .dll to bin/, not to lib/

9 years agoCombine struct elements to avoid inheritance
Matthew Barr [Tue, 10 May 2016 03:14:25 +0000 (13:14 +1000)] 
Combine struct elements to avoid inheritance

The multiple inheritance here was slightly overkill, and it also appears to
trigger a MSVC bug when writing through the pointer to member.

9 years agofdr: ensure 16 bytes of pre-history in block mode
Justin Viiret [Mon, 9 May 2016 23:32:13 +0000 (09:32 +1000)] 
fdr: ensure 16 bytes of pre-history in block mode

9 years agoucp_table: clean up make_caseless
Justin Viiret [Mon, 9 May 2016 06:10:57 +0000 (16:10 +1000)] 
ucp_table: clean up make_caseless

9 years agoucp_table: don't always deref rv of lower_bound
Justin Viiret [Mon, 9 May 2016 06:03:39 +0000 (16:03 +1000)] 
ucp_table: don't always deref rv of lower_bound

Fixes a warning from asan.

9 years agoteddy: remove python codegen, refactor code
Mohammad Abdul Awal [Thu, 31 Mar 2016 10:28:42 +0000 (11:28 +0100)] 
teddy: remove python codegen, refactor code

Major cleanup of the Teddy runtime code. Removes python code generation,
splits AVX2 models into their own file, improves readability.

9 years agounit-internal: fix FDR issues reported by ASan
Justin Viiret [Mon, 9 May 2016 03:51:50 +0000 (13:51 +1000)] 
unit-internal: fix FDR issues reported by ASan

FDR's streaming mode now assumes that it is safe to read 16 bytes before
the end of the history buffer, and this was not reflected in the unit
tests.

9 years agoscratch: don't leave in use after hs_clone_scratch
Justin Viiret [Sun, 8 May 2016 23:29:44 +0000 (09:29 +1000)] 
scratch: don't leave in use after hs_clone_scratch

Also updated unit tests to always check hs_alloc_scratch()'s return
value.

9 years agoue2string: fix broken function type in upperString
Justin Viiret [Fri, 6 May 2016 04:20:38 +0000 (14:20 +1000)] 
ue2string: fix broken function type in upperString

Silences warning from ubsan.

9 years agounit: clean up getValidFdrEngines()
Justin Viiret [Fri, 6 May 2016 01:38:24 +0000 (11:38 +1000)] 
unit: clean up getValidFdrEngines()

9 years agounit: fix bug in teddy model unit tests
Justin Viiret [Fri, 6 May 2016 01:32:36 +0000 (11:32 +1000)] 
unit: fix bug in teddy model unit tests

9 years agoFix for multiaccel matcher unit test
Anatoly Burakov [Tue, 19 Apr 2016 14:40:18 +0000 (15:40 +0100)] 
Fix for multiaccel matcher unit test

Test was failing on 32-bit OS with AVX2

9 years agodoc: add description of serialization, runtime lib
Justin Viiret [Tue, 3 May 2016 01:57:41 +0000 (11:57 +1000)] 
doc: add description of serialization, runtime lib

9 years agodoc: clean up discussion of scratch space
Justin Viiret [Tue, 3 May 2016 01:12:36 +0000 (11:12 +1000)] 
doc: clean up discussion of scratch space

9 years agodoc: update copyright dates
Justin Viiret [Tue, 3 May 2016 03:18:19 +0000 (13:18 +1000)] 
doc: update copyright dates

9 years agofdr_streaming_runtime: include <string.h>
Justin Viiret [Wed, 4 May 2016 03:56:24 +0000 (13:56 +1000)] 
fdr_streaming_runtime: include <string.h>

Required for use of memcpy().

9 years agoruntime: add error for "scratch in use"
Justin Viiret [Wed, 27 Apr 2016 23:34:37 +0000 (09:34 +1000)] 
runtime: add error for "scratch in use"

This commit adds the HS_SCRATCH_IN_USE error, which is returned when
Hyperscan detects that a scratch region is already in use on entry to an
API function.

9 years agorestore ability to ignore common preds for merges
Alex Coyte [Mon, 2 May 2016 03:03:17 +0000 (13:03 +1000)] 
restore ability to ignore common preds for merges

Check for common preds was broken during refactoring in b9c5d65:
    Rework literal overlap checks for merging engines

9 years agofdr: confVal load can be unaligned
Justin Viiret [Thu, 28 Apr 2016 23:16:39 +0000 (09:16 +1000)] 
fdr: confVal load can be unaligned

9 years agoremove unused parts of fdr_loadval
Alex Coyte [Wed, 27 Apr 2016 05:17:05 +0000 (15:17 +1000)] 
remove unused parts of fdr_loadval

9 years agofdr: Remove python codegen, add safezones
Mohammad Abdul Awal [Thu, 24 Mar 2016 02:59:56 +0000 (13:59 +1100)] 
fdr: Remove python codegen, add safezones

9 years agoadd m128 byte shift functions
Alex Coyte [Mon, 18 Apr 2016 01:23:56 +0000 (11:23 +1000)] 
add m128 byte shift functions

variable_byte_shift_m128 taken from pug-interpreter branch

9 years agofdr: don't include fdr.h if not necessary
Justin Viiret [Wed, 27 Apr 2016 06:37:25 +0000 (16:37 +1000)] 
fdr: don't include fdr.h if not necessary