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

9 years agofdr: move fdrSize into namespace ue2 (build only)
Justin Viiret [Wed, 27 Apr 2016 05:50:16 +0000 (15:50 +1000)] 
fdr: move fdrSize into namespace ue2 (build only)

9 years agomcclellan compile: more efficient discovery of accel
Alex Coyte [Thu, 14 Apr 2016 02:30:46 +0000 (12:30 +1000)] 
mcclellan compile: more efficient discovery of accel

9 years agonoodle_build: update interface to use hwlmLiteral
Justin Viiret [Fri, 22 Apr 2016 06:09:39 +0000 (16:09 +1000)] 
noodle_build: update interface to use hwlmLiteral

9 years agocmpForward: assume (and assert) p2 is upper-case
Justin Viiret [Thu, 21 Apr 2016 03:39:16 +0000 (13:39 +1000)] 
cmpForward: assume (and assert) p2 is upper-case

9 years agounit: fix up noodle unit tests
Justin Viiret [Thu, 21 Apr 2016 05:07:21 +0000 (15:07 +1000)] 
unit: fix up noodle unit tests

9 years agohwlm_literal: coerce nocase lits to upper-case
Justin Viiret [Thu, 21 Apr 2016 04:17:45 +0000 (14:17 +1000)] 
hwlm_literal: coerce nocase lits to upper-case

9 years agoue2string: bring caseless cmp inline
Justin Viiret [Thu, 21 Apr 2016 03:57:57 +0000 (13:57 +1000)] 
ue2string: bring caseless cmp inline

9 years agonoodle: remove redundant bitmask
Matthew Barr [Thu, 21 Apr 2016 05:50:01 +0000 (15:50 +1000)] 
noodle: remove redundant bitmask

9 years agonoodle: use SSE palignr
Matthew Barr [Thu, 21 Apr 2016 05:39:47 +0000 (15:39 +1000)] 
noodle: use SSE palignr

9 years agong_mcclellan: move logic into base class
Justin Viiret [Wed, 20 Apr 2016 07:11:25 +0000 (17:11 +1000)] 
ng_mcclellan: move logic into base class

Move all of the Automaton logic into Automaton_Base, which is templated
on its StateSet/StateMap types.

9 years agong_haig: move logic into base class
Justin Viiret [Wed, 20 Apr 2016 05:37:17 +0000 (15:37 +1000)] 
ng_haig: move logic into base class

Move all of the Automaton logic into Automaton_Base, which is templated
on its StateSet/StateMap types.

9 years agorose: assert that program offset is sane
Justin Viiret [Wed, 20 Apr 2016 02:41:02 +0000 (12:41 +1000)] 
rose: assert that program offset is sane

9 years agonfa_kind: documentation
Justin Viiret [Tue, 19 Apr 2016 23:47:12 +0000 (09:47 +1000)] 
nfa_kind: documentation

9 years agompv: native report remapping
Justin Viiret [Tue, 19 Apr 2016 05:22:20 +0000 (15:22 +1000)] 
mpv: native report remapping

9 years agocastle, lbr: native report remap
Justin Viiret [Tue, 19 Apr 2016 04:42:45 +0000 (14:42 +1000)] 
castle, lbr: native report remap

9 years agocastle: add nfa kind to CastleProto
Justin Viiret [Tue, 19 Apr 2016 03:51:41 +0000 (13:51 +1000)] 
castle: add nfa kind to CastleProto

9 years agomcclellan, gough: native report remapping
Justin Viiret [Tue, 19 Apr 2016 01:53:10 +0000 (11:53 +1000)] 
mcclellan, gough: native report remapping

9 years agorose: remap reports to program offsets
Justin Viiret [Mon, 18 Apr 2016 04:40:58 +0000 (14:40 +1000)] 
rose: remap reports to program offsets

9 years agoreport_manager: store report -> program mapping
Justin Viiret [Mon, 18 Apr 2016 04:20:45 +0000 (14:20 +1000)] 
report_manager: store report -> program mapping

9 years agoMerge functions no longer need transfer function
Justin Viiret [Mon, 18 Apr 2016 03:21:34 +0000 (13:21 +1000)] 
Merge functions no longer need transfer function

9 years agoRemove OutfixInfo::chained (which meant "is MPV")
Justin Viiret [Mon, 18 Apr 2016 03:12:15 +0000 (13:12 +1000)] 
Remove OutfixInfo::chained (which meant "is MPV")

9 years agoUse a visitor for outfix engine construction
Justin Viiret [Sun, 17 Apr 2016 23:49:13 +0000 (09:49 +1000)] 
Use a visitor for outfix engine construction

9 years agoOutfixInfo: use boost::variant for engines
Justin Viiret [Fri, 15 Apr 2016 06:41:35 +0000 (16:41 +1000)] 
OutfixInfo: use boost::variant for engines

9 years agoWrap MPV puffettes in a struct
Justin Viiret [Fri, 15 Apr 2016 05:28:23 +0000 (15:28 +1000)] 
Wrap MPV puffettes in a struct

9 years agoscratch: delete unused hs_scratch::qNfaState
Justin Viiret [Mon, 18 Apr 2016 01:05:01 +0000 (11:05 +1000)] 
scratch: delete unused hs_scratch::qNfaState

9 years agong_limex_accel: delete unused DAccelScheme ctor
Justin Viiret [Fri, 15 Apr 2016 00:56:43 +0000 (10:56 +1000)] 
ng_limex_accel: delete unused DAccelScheme ctor

9 years agoreport: remove dead function isInternalSomReport
Justin Viiret [Fri, 15 Apr 2016 00:48:09 +0000 (10:48 +1000)] 
report: remove dead function isInternalSomReport

9 years agoreport: remove dead function satisfiesMinLength
Justin Viiret [Fri, 15 Apr 2016 00:45:52 +0000 (10:45 +1000)] 
report: remove dead function satisfiesMinLength

9 years agoFINAL_REPORT: Add specialised instruction
Justin Viiret [Thu, 14 Apr 2016 00:08:36 +0000 (10:08 +1000)] 
FINAL_REPORT: Add specialised instruction

Specialisation of the REPORT instruction that also terminates execution
of the program. Improves performance on programs that generate many
reports.

9 years agoRose: replace internal_report with program
Justin Viiret [Tue, 22 Mar 2016 05:45:09 +0000 (16:45 +1100)] 
Rose: replace internal_report with program

Replace the use of the internal_report structure (for reports from
engines, MPV etc) with the Rose program interpreter.

SOM processing was reworked to use a new som_operation structure that is
embedded in the appropriate instructions.

9 years agoHelp ICC perform a not m128
Matthew Barr [Wed, 13 Apr 2016 02:00:36 +0000 (12:00 +1000)] 
Help ICC perform a not m128

9 years agoshufti: small C++11 fix to silence clang warning
Justin Viiret [Wed, 13 Apr 2016 00:19:39 +0000 (10:19 +1000)] 
shufti: small C++11 fix to silence clang warning

9 years agobitfield: unroll main operators
Alex Coyte [Mon, 11 Apr 2016 23:52:53 +0000 (09:52 +1000)] 
bitfield: unroll main operators

9 years agoCharReach operators inline
Alex Coyte [Mon, 11 Apr 2016 03:47:10 +0000 (13:47 +1000)] 
CharReach operators inline

9 years agounify some accel code/structures between limex and mcclellan
Alex Coyte [Wed, 6 Apr 2016 06:43:32 +0000 (16:43 +1000)] 
unify some accel code/structures between limex and mcclellan

9 years agomore efficent accel path discovery
Alex Coyte [Tue, 5 Apr 2016 04:31:13 +0000 (14:31 +1000)] 
more efficent accel path discovery

9 years agosmallwrite: don't recompile the dfa if prune fails
Alex Coyte [Tue, 5 Apr 2016 01:07:26 +0000 (11:07 +1000)] 
smallwrite: don't recompile the dfa if prune fails

9 years agoraise the limit of strings in double shufti
Alex Coyte [Mon, 4 Apr 2016 05:54:09 +0000 (15:54 +1000)] 
raise the limit of strings in double shufti

9 years agoallow double shufti to share buckets
Alex Coyte [Mon, 4 Apr 2016 01:02:59 +0000 (11:02 +1000)] 
allow double shufti to share buckets

9 years agomake dverm more precise
Alex Coyte [Wed, 30 Mar 2016 00:14:59 +0000 (11:14 +1100)] 
make dverm more precise

9 years agomasked version of dverm
Alex Coyte [Mon, 21 Mar 2016 05:19:46 +0000 (16:19 +1100)] 
masked version of dverm

9 years agorefactoring of double byte offset accel to use paths and add to mcclellan
Alex Coyte [Wed, 9 Mar 2016 22:58:28 +0000 (09:58 +1100)] 
refactoring of double byte offset accel to use paths and add to mcclellan

9 years agolook for normal accel schemes using compressed alpha
Alex Coyte [Fri, 4 Mar 2016 03:20:53 +0000 (14:20 +1100)] 
look for normal accel schemes using compressed alpha

9 years agosimple offset accel for mcclellan start state
Alex Coyte [Tue, 16 Feb 2016 02:37:39 +0000 (13:37 +1100)] 
simple offset accel for mcclellan start state

9 years agodump contents of double shufti masks
Alex Coyte [Sun, 20 Mar 2016 22:38:30 +0000 (09:38 +1100)] 
dump contents of double shufti masks

9 years agomove MultibyteAccelInfo to accelcompile.h
Alex Coyte [Thu, 7 Apr 2016 05:25:05 +0000 (15:25 +1000)] 
move MultibyteAccelInfo to accelcompile.h

9 years agoexhaust: Update interface
Justin Viiret [Thu, 7 Apr 2016 06:33:11 +0000 (16:33 +1000)] 
exhaust: Update interface

 - Only use functions in exhaust.h for valid ekeys
 - Use INVALID_EKEY everywhere (remove dupe END_EXHAUST sentinel)

9 years agoRuntime: be more careful with status bits
Justin Viiret [Tue, 5 Apr 2016 03:25:39 +0000 (13:25 +1000)] 
Runtime: be more careful with status bits

9 years agoRose: use a multibit for the exhaustion vector
Justin Viiret [Mon, 4 Apr 2016 06:04:28 +0000 (16:04 +1000)] 
Rose: use a multibit for the exhaustion vector

Previously, the exhaustion vector was a standard bitvector, which
required an expensive memset() call at init for databases with a large
number of exhaustion keys.

9 years agommbit_all: True if all keys are switched on
Justin Viiret [Mon, 4 Apr 2016 06:19:55 +0000 (16:19 +1000)] 
mmbit_all: True if all keys are switched on