]>
git.ipfire.org Git - thirdparty/vectorscan.git/log
Matthew Barr [Mon, 18 Sep 2017 05:07:53 +0000 (15:07 +1000)]
Check for unused typedef warning and disable
This affects older versions of Boost (1.58), and we were only disabling the
warning for g++.
Fixes #62.
Hong, Yang A [Mon, 28 Aug 2017 19:42:46 +0000 (03:42 +0800)]
find_better_daddy: position change
Matthew Barr [Wed, 23 Aug 2017 01:54:31 +0000 (11:54 +1000)]
Don't let haigs into Tamarama
Justin Viiret [Tue, 15 Aug 2017 03:57:43 +0000 (13:57 +1000)]
rose_build_add_mask: improve findMaskLiteral perf
Matthew Barr [Mon, 21 Aug 2017 05:23:21 +0000 (15:23 +1000)]
Handle any exceptions while constructing compiler elements
Specifically, NG has a Rose which has a LeftEng which has a depth, which can
throw an error on construction. If we put these in the try-catch we don't
have to worry so much in future.
Matthew Barr [Mon, 21 Aug 2017 05:12:36 +0000 (15:12 +1000)]
teddy: alignment decl should match defn
Spotted by coverity. #174512
Justin Viiret [Mon, 21 Aug 2017 05:26:59 +0000 (15:26 +1000)]
hwlm_build: default for HWLMProto::make_small
Silences Coverity warning.
Justin Viiret [Mon, 21 Aug 2017 05:25:04 +0000 (15:25 +1000)]
rose_build_matchers: init LitFragment fields
Silences Coverity warning about squash, delay_squash.
Alex Coyte [Mon, 14 Aug 2017 06:27:48 +0000 (16:27 +1000)]
dedupeLeftfixesVariableLag: refactor, more blockmode deduping
Alex Coyte [Wed, 16 Aug 2017 06:36:12 +0000 (16:36 +1000)]
maintain castle report information
Justin Viiret [Mon, 14 Aug 2017 02:55:28 +0000 (12:55 +1000)]
ng_squash: switch to using unordered_map
Also some cleaning up, small performance improvements.
Alex Coyte [Mon, 14 Aug 2017 00:02:47 +0000 (10:02 +1000)]
tidy mergeCastleSuffixes
Alex Coyte [Fri, 11 Aug 2017 04:59:07 +0000 (14:59 +1000)]
refactor mergeCastleLeftfixes
Alex Coyte [Wed, 16 Aug 2017 04:37:05 +0000 (14:37 +1000)]
reimplement hasSameEngineType()
Justin Viiret [Wed, 16 Aug 2017 00:24:15 +0000 (10:24 +1000)]
partitioned_set: use lower_bound(), not scan
Matthew Barr [Wed, 16 Aug 2017 05:02:26 +0000 (15:02 +1000)]
msvc: disable more warnings
Matthew Barr [Wed, 16 Aug 2017 05:01:42 +0000 (15:01 +1000)]
Use an unsigned byte, not char
Justin Viiret [Wed, 16 Aug 2017 03:13:06 +0000 (13:13 +1000)]
ue2_literal: define npos in ue2string.cpp
Justin Viiret [Wed, 16 Aug 2017 03:05:24 +0000 (13:05 +1000)]
fdr_compile: simplify lambda use
This was failing to compile on MSVC.
Justin Viiret [Fri, 11 Aug 2017 06:08:05 +0000 (16:08 +1000)]
mcclellancompile: simplify calc_min_dist_from_bob
Justin Viiret [Fri, 11 Aug 2017 05:37:55 +0000 (15:37 +1000)]
mcclellancompile: don't copy dstate unnecessarily
Justin Viiret [Fri, 11 Aug 2017 03:29:07 +0000 (13:29 +1000)]
accel_dfa_build_strat: make extend() faster
Justin Viiret [Fri, 11 Aug 2017 00:35:19 +0000 (10:35 +1000)]
unit: add PrintTo for ue2_literal
Justin Viiret [Thu, 10 Aug 2017 06:58:48 +0000 (16:58 +1000)]
hash: use std::hash for string hashing
Justin Viiret [Thu, 10 Aug 2017 05:12:28 +0000 (15:12 +1000)]
ue2_literal: better hash function
Justin Viiret [Thu, 10 Aug 2017 05:02:57 +0000 (15:02 +1000)]
ue2_literal: make nocase member a dynamic_bitset
We were previously using vector<bool>, but dynamic_bitset provides a
faster any() impl
Justin Viiret [Thu, 10 Aug 2017 03:19:26 +0000 (13:19 +1000)]
fdr_compile: don't do string copies in isSuffix
Justin Viiret [Thu, 10 Aug 2017 01:48:50 +0000 (11:48 +1000)]
gatherReports: fewer map lookups
Justin Viiret [Thu, 10 Aug 2017 01:29:19 +0000 (11:29 +1000)]
accel_dfa_build_strat: use flat_set
Justin Viiret [Thu, 10 Aug 2017 01:06:13 +0000 (11:06 +1000)]
smallwrite_build: make failure_map unordered
Justin Viiret [Thu, 10 Aug 2017 00:53:39 +0000 (10:53 +1000)]
rdfa: make getImplAlphaSize() inline
Justin Viiret [Tue, 8 Aug 2017 01:19:08 +0000 (11:19 +1000)]
castlecompile: remove unused container
Matthew Barr [Mon, 14 Aug 2017 00:53:50 +0000 (10:53 +1000)]
Update PCRE version to 8.41
Alex Coyte [Thu, 10 Aug 2017 05:42:26 +0000 (15:42 +1000)]
move mergeDupeLeaves() and uncalcLeaves() to rose_build_role_aliasing
Unlike the rest of rose_build_mergem, these functions relate to merging
roles/vertices rather than merging engines.
Alex Coyte [Wed, 9 Aug 2017 03:31:45 +0000 (13:31 +1000)]
rose merges: why not dedupe transient engines?
We avoid merging different transient engines as it may force us to run heavier
engines and no stream state is consumed either way. However, there should be
no harm in just removing duplicate instances of a transient engine.
Alex Coyte [Thu, 10 Aug 2017 03:43:20 +0000 (13:43 +1000)]
remove !LBR constraints from merge passes
we have either converted candidates to castles already or we have converted them
back in the hope of merging them with other holders
Matthew Barr [Thu, 10 Aug 2017 05:45:42 +0000 (15:45 +1000)]
cmake: set isystem flag for older cmake
Matthew Barr [Wed, 2 Aug 2017 01:38:14 +0000 (11:38 +1000)]
icc: disable more warnings
Matthew Barr [Thu, 10 Aug 2017 01:33:15 +0000 (11:33 +1000)]
cmake: use abi-version on older gcc
Alex Coyte [Thu, 10 Aug 2017 03:28:00 +0000 (13:28 +1000)]
rework mergeLeftfixesVariableLag()
Justin Viiret [Wed, 9 Aug 2017 04:04:28 +0000 (14:04 +1000)]
fdr_compile: faster scoring code
Justin Viiret [Fri, 4 Aug 2017 03:23:07 +0000 (13:23 +1000)]
insertion_ordered_{map,set}: add new containers
These are associative map/set structures that are iterable in insertion
order.
Alex Coyte [Tue, 8 Aug 2017 01:24:52 +0000 (11:24 +1000)]
violet: don't bother swapping holders if unable to trim graph
Alex Coyte [Tue, 8 Aug 2017 00:13:46 +0000 (10:13 +1000)]
violet: maintain a reference to all the known implementable graphs
Alex Coyte [Mon, 7 Aug 2017 06:41:13 +0000 (16:41 +1000)]
violet: do not remove more states from holders if dfa has been built
Wang, Xiang W [Mon, 7 Aug 2017 14:02:53 +0000 (10:02 -0400)]
UE-3147: ensure the same squash behavior for literals shared between different literal matchers
Justin Viiret [Fri, 4 Aug 2017 00:06:20 +0000 (10:06 +1000)]
groupByFragment: make fewer string copies
Justin Viiret [Thu, 3 Aug 2017 05:52:25 +0000 (15:52 +1000)]
rose_build_exclusive: clean up use of vertex indices
Justin Viiret [Fri, 14 Jul 2017 03:01:00 +0000 (13:01 +1000)]
limex_compile: reduce state id lookups
Justin Viiret [Fri, 14 Jul 2017 02:54:03 +0000 (12:54 +1000)]
limex_compile: turn tugs into a bitset
Justin Viiret [Thu, 3 Aug 2017 01:33:42 +0000 (11:33 +1000)]
rose_build_lookaround: use vector in trimLiterals
Justin Viiret [Mon, 31 Jul 2017 06:22:08 +0000 (16:22 +1000)]
rose: more hash member funcs for rose types
Justin Viiret [Mon, 31 Jul 2017 06:02:55 +0000 (16:02 +1000)]
rose: return a vector from findEdgesByLiteral
Justin Viiret [Mon, 29 May 2017 04:59:31 +0000 (14:59 +1000)]
rose_build_long_lit: refactor to do less dupe work
Also some performance improvements.
Alex Coyte [Mon, 7 Aug 2017 03:50:21 +0000 (13:50 +1000)]
dynamic compression: add HS_CDECL to implementation
Alex Coyte [Mon, 31 Jul 2017 00:38:30 +0000 (10:38 +1000)]
Provide RoseResources to roseQuality.
RoseResources is an alternative to manually digging through the bytecode.
Alex Coyte [Fri, 28 Jul 2017 04:56:54 +0000 (14:56 +1000)]
mangle fdr conf parts of scratch as well
Alex Coyte [Fri, 28 Jul 2017 04:51:58 +0000 (14:51 +1000)]
roseQuality() no longer needs to be part of rose's API.
Alex Coyte [Fri, 28 Jul 2017 04:32:55 +0000 (14:32 +1000)]
more comments on hwlm/fdr's start parameter
Matthew Barr [Sun, 6 Aug 2017 23:45:28 +0000 (09:45 +1000)]
Remove out of date debug output
Alex Coyte [Sun, 6 Aug 2017 23:19:23 +0000 (09:19 +1000)]
add dynamic stream compression to fat runtime
Matthew Barr [Fri, 16 Jun 2017 06:06:52 +0000 (16:06 +1000)]
Remove unwanted move constructor
Matthew Barr [Thu, 22 Jun 2017 00:28:44 +0000 (10:28 +1000)]
clean up loops and add AVX-512
Matthew Barr [Mon, 19 Jun 2017 06:27:17 +0000 (16:27 +1000)]
Open input path once using file descriptor
Matthew Barr [Mon, 19 Jun 2017 02:53:34 +0000 (12:53 +1000)]
Catch by reference not value
Matthew Barr [Fri, 16 Jun 2017 05:56:48 +0000 (15:56 +1000)]
use string equality operator
Matthew Barr [Mon, 19 Jun 2017 05:52:08 +0000 (15:52 +1000)]
restore formatting flags after use
Matthew Barr [Mon, 19 Jun 2017 05:00:51 +0000 (15:00 +1000)]
hsbench: use a memstream instead of a temp file
Alex Coyte [Fri, 4 Aug 2017 01:40:28 +0000 (11:40 +1000)]
add dynamic compression to the public api
Alex Coyte [Fri, 4 Aug 2017 01:08:30 +0000 (11:08 +1000)]
CMake: put the stream compress files in the correct part
Alex Coyte [Tue, 2 May 2017 03:16:41 +0000 (13:16 +1000)]
dev reference documentation for stream compression
Hong, Yang A [Mon, 8 May 2017 19:56:28 +0000 (15:56 -0400)]
multibit compression support
Alex Coyte [Mon, 6 Mar 2017 00:58:53 +0000 (11:58 +1100)]
hsbench: add stream compress functionality
Alex Coyte [Tue, 14 Feb 2017 03:18:13 +0000 (14:18 +1100)]
support dynamic stream compression
Alex Coyte [Wed, 2 Aug 2017 03:36:24 +0000 (13:36 +1000)]
make ComponentRepeat::vacuous_everywhere() more accurate
Alex Coyte [Wed, 2 Aug 2017 03:07:24 +0000 (13:07 +1000)]
mergeCastle: merge common repeats from the castles
Alex Coyte [Wed, 2 Aug 2017 02:54:02 +0000 (12:54 +1000)]
mergeLeftfixesVariableLag: update comments, debugging support
Chang, Harry [Thu, 27 Jul 2017 09:21:05 +0000 (17:21 +0800)]
Compile dump of teddy's nibble masks and reinforcement table in fdr_dump.cpp
Justin Viiret [Mon, 31 Jul 2017 02:26:45 +0000 (12:26 +1000)]
small_vector: require boost >= 1.61
We use the small_vector constructors introduced in Boost 1.61 (trac bug
11866, github commit
b436c91 ). If the Boost version is too old, we fall
back to using std::vector.
Matthew Barr [Tue, 13 Jun 2017 04:26:24 +0000 (14:26 +1000)]
cmake: another convenience lib for compile side
Alex Coyte [Tue, 18 Jul 2017 02:49:32 +0000 (12:49 +1000)]
Do equivalency removal before violet's implementablity check.
This is helpful as removing/restoring literals may introduce redundancy in the
graphs. Also improve the implementation by caching known good holders.
Alex Coyte [Wed, 19 Jul 2017 00:02:55 +0000 (10:02 +1000)]
Ensure max width of repeat before transforming graph.
Chang, Harry [Mon, 24 Jul 2017 09:37:42 +0000 (17:37 +0800)]
Refactored building reinforcement table at compile time and updated comments.
Chang, Harry [Mon, 24 Jul 2017 07:09:17 +0000 (15:09 +0800)]
replace "_avx2" with "_fat".
Chang, Harry [Thu, 13 Jul 2017 06:38:06 +0000 (14:38 +0800)]
AVX512 Reinforced FAT teddy.
Justin Viiret [Fri, 21 Jul 2017 06:43:16 +0000 (16:43 +1000)]
determinise: use find first, rather than emplace
For non-trivial StateSet types, copying to do the emplace if it is
already in the map is more expensive than checking with find() first.
Justin Viiret [Wed, 19 Jul 2017 01:20:39 +0000 (11:20 +1000)]
tidy: "ue2::flat_set/map" -> "flat_set/map"
Justin Viiret [Fri, 14 Jul 2017 04:59:52 +0000 (14:59 +1000)]
util: switch from Boost to std::unordered set/map
This commit replaces the ue2::unordered_{set,map} types with their STL
versions, with some new hashing utilities in util/hash.h. The new types
ue2_unordered_set<T> and ue2_unordered_map<Key, T> default to using the
ue2_hasher.
The header util/ue2_containers.h has been removed, and the flat_set/map
containers moved to util/flat_containers.h.
Justin Viiret [Fri, 14 Jul 2017 04:51:53 +0000 (14:51 +1000)]
ue2_graph: move descriptors out of graph struct
Wang, Xiang W [Thu, 20 Jul 2017 20:40:54 +0000 (16:40 -0400)]
ue-3145: make parents of included literals exclusive
Wang, Xiang W [Thu, 22 Jun 2017 08:50:45 +0000 (04:50 -0400)]
FDR: Squash buckets of included literals in FDR confirm
- Change the compile of literal matchers to two passes.
- Reverse the bucket assignment in FDR, bucket with longer literals has
smaller bucket id.
- Squash the buckets of included literals and jump to the the program of
included literals directly from parent literal program without going
through FDR confirm for included iterals.
Chang, Harry [Mon, 24 Jul 2017 03:05:46 +0000 (11:05 +0800)]
fix typo "ones_u32a" => "ones_u32"
Chang, Harry [Thu, 6 Jul 2017 01:42:17 +0000 (18:42 -0700)]
AVX512 reinforced teddy.
Justin Viiret [Thu, 20 Jul 2017 05:11:50 +0000 (15:11 +1000)]
smallwrite: batch dfa merge to reduce compile time
Wang, Xiang W [Tue, 4 Jul 2017 16:24:11 +0000 (12:24 -0400)]
literal matchers: change context passed to callback to scratch
Justin Viiret [Wed, 12 Jul 2017 01:08:45 +0000 (11:08 +1000)]
ng_find_matches: speed up edge lookups
Improves the performance of step() on graphs with vertices with large
degree.
Wang, Xiang W [Fri, 7 Jul 2017 12:14:35 +0000 (08:14 -0400)]
flood detection: debug output fix
Wang, Xiang W [Thu, 6 Jul 2017 16:23:41 +0000 (12:23 -0400)]
remove start argument in literal matcher callbacks
Alex Coyte [Wed, 5 Jul 2017 01:00:39 +0000 (11:00 +1000)]
Ensure that reports would be sustained after self loop is removed
Approximante matching means that is now possible to get a non-standard report
on a cyclic during edge redundancy passes which means checks are now needed.
Justin Viiret [Tue, 4 Jul 2017 03:22:09 +0000 (13:22 +1000)]
ng_prefilter.cpp: remove interior edges first
This allows us to avoid looking them up while we're in copyOutEdges(),
halves time on large cases.