]>
git.ipfire.org Git - thirdparty/vectorscan.git/log
Xu, Chi [Wed, 31 Aug 2016 23:48:04 +0000 (07:48 +0800)]
rose: add shufti-based lookaround instructions
More lookaround specialisations that use the shufti approach.
Justin Viiret [Sun, 4 Sep 2016 23:56:58 +0000 (09:56 +1000)]
limex: make NFAAccept::squash rel to LimEx base
Justin Viiret [Tue, 30 Aug 2016 04:24:23 +0000 (14:24 +1000)]
limex: rework accept handling
Rather that iterating over NFAAccept structures and testing individual
bits in the state structure, iterate over the state vector and index
into accept structures.
Adds report list support to this path, unified with the report lists
used for exception handling.
Justin Viiret [Thu, 1 Sep 2016 06:42:00 +0000 (16:42 +1000)]
limex: fold TESTEOD_REV_FN use into TESTEOD_FN
Justin Viiret [Thu, 1 Sep 2016 06:30:08 +0000 (16:30 +1000)]
limex: remove constant do_br arg from TESTEOD_FN
Justin Viiret [Wed, 24 Aug 2016 00:16:12 +0000 (10:16 +1000)]
rose: move sparse iter cache to RoseEngineBlob
This enables its use for iterators written by instructions.
Justin Viiret [Tue, 23 Aug 2016 06:12:34 +0000 (16:12 +1000)]
hash: add hash_all variadic tpl func, use in rose
Justin Viiret [Thu, 4 Aug 2016 04:21:51 +0000 (14:21 +1000)]
rose: decouple build-time program representation
This commit replaces the build-time representation of the Rose
interpreter programs, from a class containing a discriminated union of
the bytecode structures to a class hierarchy of build-time prototypes.
This makes it easier to reason about and manipulate Rose programs during
compilation.
Justin Viiret [Mon, 22 Aug 2016 02:37:46 +0000 (12:37 +1000)]
container.h: include <vector>
Alex Coyte [Wed, 31 Aug 2016 00:50:46 +0000 (10:50 +1000)]
UE-3019: limex_compile: correctly access the dominator map
Justin Viiret [Thu, 25 Aug 2016 05:12:28 +0000 (15:12 +1000)]
rose: tighten up requirements for catch up
We only need to catch up when there is an actual anchored table, not
merely when there are successors of anchored_root in the Rose graph.
Alex Coyte [Mon, 29 Aug 2016 05:07:22 +0000 (15:07 +1000)]
rework load_m128_from_u64a()
Alex Coyte [Fri, 26 Aug 2016 05:19:10 +0000 (15:19 +1000)]
Limex: don't not build accel schemes for impossible state sets
Alex Coyte [Fri, 26 Aug 2016 04:17:41 +0000 (14:17 +1000)]
Introduce a 64-bit LimEx model.
On 64-bit platforms, the Limex 64 model is implemented in normal GPRs.
On 32-bit platforms, however, 128-bit SSE registers are used for the
runtime implementation.
Justin Viiret [Thu, 25 Aug 2016 03:26:27 +0000 (13:26 +1000)]
debug: always use %zu in format string for size_t
Justin Viiret [Thu, 25 Aug 2016 03:25:01 +0000 (13:25 +1000)]
limex_dump: silence gcc large alignment warning
Passing mask by const ref silences the warning: "The ABI for passing
parameters with 32-byte alignment has changed in GCC 4.6".
Justin Viiret [Mon, 8 Aug 2016 06:12:44 +0000 (16:12 +1000)]
rose: remove CHECK_LIT_MASK instruction
Justin Viiret [Mon, 8 Aug 2016 05:39:43 +0000 (15:39 +1000)]
rose: use lookarounds to implement benefits masks
This replaces the CHECK_LIT_MASK instruction.
Xu, Chi [Thu, 21 Jul 2016 19:35:53 +0000 (03:35 +0800)]
rose: add new instruction CHECK_MASK_32
This is a specialisation of the "lookaround" code.
Justin Viiret [Fri, 5 Aug 2016 00:52:24 +0000 (10:52 +1000)]
rose: don't merge large acyclic suffixes
Check earlier on in mergeSuffixes that we're not proposing to merge
suffixes above our limit from the acyclic merge path.
jason taylor [Sun, 4 Sep 2016 23:25:59 +0000 (19:25 -0400)]
Updated nfa source file permissions
Resolves issue github issue #37
Matthew Barr [Mon, 29 Aug 2016 03:51:17 +0000 (13:51 +1000)]
Update changelog for 4.3.1
Matthew Barr [Mon, 29 Aug 2016 01:30:51 +0000 (11:30 +1000)]
Merge branch develop into master
Matthew Barr [Mon, 29 Aug 2016 01:26:16 +0000 (11:26 +1000)]
Bump version number for release
Matthew Barr [Fri, 26 Aug 2016 01:08:29 +0000 (11:08 +1000)]
Only initialise stream state history when required.
This fixes 01org/hyperscan#30.
Matthew Barr [Thu, 25 Aug 2016 22:30:12 +0000 (08:30 +1000)]
unit test for github issue #30
Matthew Barr [Wed, 24 Aug 2016 04:29:28 +0000 (14:29 +1000)]
Merge branch develop into master
Matthew Barr [Wed, 24 Aug 2016 04:27:59 +0000 (14:27 +1000)]
Bump version number for release
Justin Viiret [Wed, 24 Aug 2016 04:21:57 +0000 (14:21 +1000)]
changelog: updates for 4.3 release
Matthew Barr [Mon, 22 Aug 2016 05:54:18 +0000 (15:54 +1000)]
Change SONAME to only use the major version number
Hyperscan will only break ABI on major version changes, and the SONAME
used for shared library versions should reflect this.
Matthew Barr [Mon, 15 Aug 2016 01:55:08 +0000 (11:55 +1000)]
Remove problematic debug output
Justin Viiret [Sun, 14 Aug 2016 23:58:06 +0000 (09:58 +1000)]
tamarama: check for match halt in _Q2 as well
Alex Coyte [Thu, 11 Aug 2016 03:10:34 +0000 (13:10 +1000)]
set an appropriate default value for RoleInfo::score
Coverity CID 131843
Alex Coyte [Thu, 11 Aug 2016 03:04:26 +0000 (13:04 +1000)]
Add assertion indicating valid range of rank_in_mask's bit param
Coverity CID 141632
Matthew Barr [Wed, 10 Aug 2016 01:14:54 +0000 (11:14 +1000)]
Use SOURCE_DATE_EPOCH for timestamp if present
The Debian reproducible builds effort suggests using
this environment variable for timestamps.
Matthew Barr [Mon, 18 Jul 2016 23:28:46 +0000 (09:28 +1000)]
unit: Disable warnings
Matthew Barr [Mon, 18 Jul 2016 23:23:57 +0000 (09:23 +1000)]
GCC 6 warns about unused attributes - disable the warning
Matthew Barr [Tue, 28 Jun 2016 01:59:14 +0000 (11:59 +1000)]
cmake: take control of our compiler flags
Justin Viiret [Tue, 9 Aug 2016 04:38:58 +0000 (14:38 +1000)]
rose: use min of max_offset in left merges
Be more careful with max_offset, since we rely on it ofr ANCH history
cases. Also adds tighter assertions.
Justin Viiret [Tue, 9 Aug 2016 05:53:21 +0000 (15:53 +1000)]
rose: ensure anch small block literals have bounds
Justin Viiret [Thu, 4 Aug 2016 00:40:35 +0000 (10:40 +1000)]
program_runtime: remove commented-out code
Justin Viiret [Thu, 4 Aug 2016 00:36:09 +0000 (10:36 +1000)]
dfa_build_strat: remove dead pure virtual impl
Alex Coyte [Wed, 3 Aug 2016 04:41:34 +0000 (14:41 +1000)]
remove exceptionMap from LimExNFA
Anatoly Burakov [Thu, 10 Mar 2016 09:57:41 +0000 (09:57 +0000)]
dfa: adding new Sheng engine
A new shuffle-based DFA engine, complete with acceleration and smallwrite.
Anatoly Burakov [Thu, 19 May 2016 13:16:35 +0000 (14:16 +0100)]
McClellan refactor
Taking dfa strat out of McClellan, to be reused by other DFAs
Justin Viiret [Tue, 2 Aug 2016 04:49:38 +0000 (14:49 +1000)]
nfa: delete largely-unused struct LimExNFABase
Alex Coyte [Mon, 1 Aug 2016 02:43:13 +0000 (12:43 +1000)]
add a csv version of rose_components
Matthew Barr [Wed, 27 Jul 2016 06:55:28 +0000 (16:55 +1000)]
Check for misaligned memory in compile error code
We now check that mem alloc for error message is aligned, and
fail with an appropriate message in the compile error.
Alex Coyte [Fri, 29 Jul 2016 05:47:55 +0000 (15:47 +1000)]
rose: don't leave stray reports when copying the subgraph leading to a report
Justin Viiret [Mon, 25 Jul 2016 23:45:57 +0000 (09:45 +1000)]
dump: offsets for SOM_REL, SOM_ABS reports
Justin Viiret [Thu, 28 Jul 2016 02:38:26 +0000 (12:38 +1000)]
parser: ignore \E that is not preceded by \Q
This conforms to PCRE's behaviour, where an isolated \E that is not
preceded by \Q is ignored.
Justin Viiret [Wed, 27 Jul 2016 01:19:58 +0000 (11:19 +1000)]
ng_violet: fix non-det in lookForCleanEarlySplits
Justin Viiret [Wed, 27 Jul 2016 00:42:46 +0000 (10:42 +1000)]
ng_violet: trivial typo fixes
Justin Viiret [Wed, 27 Jul 2016 00:23:42 +0000 (10:23 +1000)]
ng_violet: fix non-determinism in deanchorIfNeeded
Justin Viiret [Tue, 26 Jul 2016 23:29:39 +0000 (09:29 +1000)]
ng_violet: fix non-determinism in splitEdgesByCut
Matthew Barr [Mon, 25 Jul 2016 06:24:30 +0000 (16:24 +1000)]
Older gcc doesn't like shadowing the function
Matthew Barr [Mon, 25 Jul 2016 06:06:37 +0000 (16:06 +1000)]
Remove enum typedef
Matthew Barr [Mon, 25 Jul 2016 05:33:40 +0000 (15:33 +1000)]
Don't shadow names
Justin Viiret [Thu, 21 Jul 2016 04:22:05 +0000 (14:22 +1000)]
ng_violet: det. vertex ordering in splitRoseEdge
Justin Viiret [Thu, 21 Jul 2016 02:57:12 +0000 (12:57 +1000)]
ng_violet: iterate in edge order
Justin Viiret [Thu, 21 Jul 2016 03:32:55 +0000 (13:32 +1000)]
rose: use dumpString for debug output
Justin Viiret [Thu, 21 Jul 2016 03:25:26 +0000 (13:25 +1000)]
flood_compile: escape chars in debugging
Justin Viiret [Thu, 21 Jul 2016 02:46:07 +0000 (12:46 +1000)]
ng_violet: use dumpString for debug output
Justin Viiret [Thu, 21 Jul 2016 00:33:21 +0000 (10:33 +1000)]
rose: clear reports in removeFalsePaths
Justin Viiret [Thu, 14 Jul 2016 06:17:06 +0000 (16:17 +1000)]
rose: only write out report programs if in use
These programs are only used by output-exposed engines.
Justin Viiret [Mon, 18 Jul 2016 02:41:31 +0000 (12:41 +1000)]
ng: ensure that only match states have reports
Ensure (and assert) that vertices without an edge to {accept, acceptEod}
do not have reports set.
Justin Viiret [Mon, 18 Jul 2016 01:32:18 +0000 (11:32 +1000)]
teddy: apply poison mask after prep_conf_ work
This simplifies the code, and removes all the all-ones p_mask uses,
which we were otherwise trusting the optimizer to remove.
Alex Coyte [Mon, 18 Jul 2016 01:33:13 +0000 (11:33 +1000)]
take mask overhang into account for hwlm accel, float min dist
Alex Coyte [Fri, 15 Jul 2016 04:32:21 +0000 (14:32 +1000)]
violet: 32bit fix
Alex Coyte [Fri, 15 Jul 2016 03:07:00 +0000 (13:07 +1000)]
violet: initial implementation
Alex Coyte [Wed, 29 Jun 2016 23:57:18 +0000 (09:57 +1000)]
compiledump: allow disabling of early graphs for large compiles
Justin Viiret [Thu, 14 Jul 2016 23:50:08 +0000 (09:50 +1000)]
rose: expose smwr builder, tidy up engine build
Justin Viiret [Thu, 14 Jul 2016 03:34:56 +0000 (13:34 +1000)]
rose_build_anchored: clean up remapping
Note that there are no EOD reports in the anchored matcher raw_dfas.
Justin Viiret [Thu, 14 Jul 2016 01:50:23 +0000 (11:50 +1000)]
rose_build_anchored: remove unused forward decls
Justin Viiret [Thu, 14 Jul 2016 01:40:49 +0000 (11:40 +1000)]
rose: use program offset, not final_id, in atable
This removes the need to look up the program offset in a table when
handling an anchored literal match.
Justin Viiret [Thu, 14 Jul 2016 00:05:47 +0000 (10:05 +1000)]
rose: add RECORD_ANCHORED instruction to program
Moves recordAnchoredLiteralMatch from an unconditional call in the
anchored callback to being driven by a program instruction.
Alex Coyte [Tue, 12 Jul 2016 04:01:51 +0000 (14:01 +1000)]
minor eager prefixes improvements
- count eager prefixes as always run engine when comparing with smwr
- only check if a prefix is vacuous after adding back literal fragments
Xiang Wang [Mon, 11 Jul 2016 14:08:40 +0000 (10:08 -0400)]
UE-2991: avoid copying one unnecessary subqueue item
Justin Viiret [Mon, 11 Jul 2016 04:42:23 +0000 (14:42 +1000)]
rose: tidy up CHECK_{BYTE,MASK} dump code
Xu, Chi [Fri, 13 May 2016 00:52:43 +0000 (08:52 +0800)]
rose: add CHECK_BYTE/CHECK_MASK instructions
These instructions are specialisations of the "lookaround" code for
performance.
Justin Viiret [Mon, 11 Jul 2016 23:36:49 +0000 (09:36 +1000)]
rose_build_convert: improve history selection
Fixes assertion failures introduced by last commit.
Justin Viiret [Mon, 11 Jul 2016 01:40:32 +0000 (11:40 +1000)]
rose: sanity check CHECK_BOUNDS instruction
Justin Viiret [Mon, 11 Jul 2016 01:44:57 +0000 (11:44 +1000)]
rose: only use anch history when there are bounds
Alex Coyte [Thu, 30 Jun 2016 01:32:24 +0000 (11:32 +1000)]
tamarama dump: use correct base offset
Justin Viiret [Fri, 8 Jul 2016 01:36:10 +0000 (11:36 +1000)]
rose: only dump small-block table in block mode
Justin Viiret [Thu, 7 Jul 2016 00:25:49 +0000 (10:25 +1000)]
rose: check literal bounds when building SB table
Literals that cannot lead to a report in the first ROSE_SMALL_BLOCK_LEN
bytes may be dropped from the small block table.
Justin Viiret [Thu, 7 Jul 2016 02:53:09 +0000 (12:53 +1000)]
fdr: remove groups from struct FDR_Runtime_Args
Justin Viiret [Tue, 5 Jul 2016 23:26:42 +0000 (09:26 +1000)]
teddy: no need to write control out at the end
Justin Viiret [Tue, 5 Jul 2016 23:22:31 +0000 (09:22 +1000)]
teddy: remove extra control ptr
Justin Viiret [Tue, 5 Jul 2016 06:36:04 +0000 (16:36 +1000)]
fdr: remove extra control ptr
Justin Viiret [Thu, 12 May 2016 23:39:26 +0000 (09:39 +1000)]
simd_utils: setbit/clearbit by loading 1-bit mask
Justin Viiret [Wed, 6 Jul 2016 05:49:03 +0000 (15:49 +1000)]
rose: don't always dedupe small-block lit variants
Alex Coyte [Fri, 1 Jul 2016 04:04:55 +0000 (14:04 +1000)]
reduce character classes for hwlm accel
Alex Coyte [Wed, 29 Jun 2016 23:50:08 +0000 (09:50 +1000)]
truffle hwlm accel
Alex Coyte [Thu, 7 Jul 2016 04:07:12 +0000 (14:07 +1000)]
use NGHolder::foo in favour of NFAGraph::foo
Alex Coyte [Thu, 18 Jun 2015 04:55:34 +0000 (14:55 +1000)]
we no longer store the history len
Alex Coyte [Thu, 7 Jul 2016 01:36:05 +0000 (11:36 +1000)]
group_weak_end is no longer used
Matthew Barr [Thu, 7 Jul 2016 04:00:11 +0000 (14:00 +1000)]
Ensure that m256 is 32-aligned on non-avx2 builds
Justin Viiret [Tue, 5 Jul 2016 04:37:22 +0000 (14:37 +1000)]
rose: use normal callback for pure-literal cases
Justin Viiret [Mon, 4 Jul 2016 04:19:10 +0000 (14:19 +1000)]
limex: use cyclics mask for repeat compress