45 Commits

Author SHA1 Message Date
G.E
7a5f271abe undo that one, it breaks 2024-05-20 16:35:58 +03:00
G.E
fa358535be stl'ed another. 2024-05-18 00:02:43 +03:00
g. economou
22c3e3da6e
Merge branch 'develop' into wip-cppcheck271-part2 2024-05-17 11:08:09 +03:00
G.E
da4f563a24 first batch of cppcheck disables and a few more stl-ifications,
involving use of accumulate() .
2024-05-16 23:01:17 +03:00
Konstantinos Margaritis
e819cb1100 Fix C-style casts 2024-05-16 12:03:42 +03:00
Konstantinos Margaritis
0d2f9ccbaa Fix 'unqualified call to std::move' errors in clang 15+ 2023-10-03 20:24:39 +03:00
Konstantinos Margaritis
e35b88f2c8 use STL make_unique, remove wrapper header, breaks C++17 compilation 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
556206f138 replace push_back by emplace_back where possible 2021-10-12 11:51:33 +03:00
Hong, Yang A
23e5f06594 add new Literal API for pure literal expressions:
Design compile time api hs_compile_lit() and hs_compile_lit_multi()
to handle pure literal pattern sets. Corresponding option --literal-on
is added for hyperscan testing suites. Extended parameters and part of
flags are not supported for this api.
2019-08-13 14:51:38 +08:00
Mostafa Nazari
92edc37c1f BUGFIX: fix Numerical result out of range error
Fix Error errno=34,  fix Numerical result out of range error
issue: https://github.com/intel/hyperscan/issues/155
2019-08-13 14:49:24 +08:00
Hong, Yang A
f68723a606 literal matching: separate path for pure literal patterns 2019-01-21 09:59:22 +08:00
Justin Viiret
85c8822dd1 fdr_compile: simplify lambda use
This was failing to compile on MSVC.
2017-09-18 13:29:33 +10:00
Justin Viiret
36136f1003 fdr_compile: don't do string copies in isSuffix 2017-09-18 13:26:05 +10:00
Justin Viiret
164e5a929f fdr_compile: faster scoring code 2017-08-21 11:25:21 +10:00
Justin Viiret
9cf66b6ac9 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.
2017-08-21 11:14:55 +10:00
Wang, Xiang W
252eb820c4 ue-3145: make parents of included literals exclusive 2017-08-21 11:12:36 +10:00
Wang, Xiang W
86c5f7feb1 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.
2017-08-21 11:12:36 +10:00
Justin Viiret
e4788aae1a fdr/teddy: store and dump number of strings 2017-08-21 11:10:11 +10:00
Justin Viiret
b126cbf556 fdr/teddy: simplify computing of confirm base 2017-08-21 10:39:00 +10:00
Justin Viiret
c878d5ec66 fdr: further tidy up layout 2017-08-21 10:39:00 +10:00
Justin Viiret
9bdd370163 fdr: align major structures to cachelines 2017-08-21 10:38:59 +10:00
Justin Viiret
63fe84c3f1 bytecode_ptr: add make_zeroed_bytecode_ptr
Rather than always zeroing memory.
2017-04-26 15:19:36 +10:00
Justin Viiret
3590f73151 fdr: use bytecode_ptr in fdr/teddy compilers 2017-04-26 15:19:36 +10:00
Justin Viiret
97516eccb6 fdr: use bytecode_ptr internally 2017-04-26 15:19:35 +10:00
Justin Viiret
1ef87c43ee noncopyable: switch over from boost 2017-04-26 15:18:26 +10:00
Justin Viiret
1be1293491 fdr: add grey box control for flood detection 2017-04-26 14:59:22 +10:00
Matthew Barr
9363ae7486 Clear upper half of AVX register before libm call
Clearing the upper half of the AVX register is required before calling SSE
code to avoid AVX-to-SSE transition penalties.
2017-04-26 14:59:22 +10:00
Justin Viiret
05b5265aff fdr: remove dead code to do with link structures 2017-04-26 14:43:43 +10:00
Wang, Xiang W
df7bc22ae0 fdr: remove confirm split and pull-back 2017-04-26 14:43:09 +10:00
Justin Viiret
12edb07f6e fdr_compile: remove dead var 2017-04-26 14:41:29 +10:00
Justin Viiret
07a6b6510c rose/hwlm: limit literals to eight bytes
Rework HWLM to work over literals of eight bytes ("medium length"),
doing confirm in the Rose interpreter.
2017-04-26 14:41:29 +10:00
Justin Viiret
22edaad1dd fdr: compile algo/heuristics improvements
These changes fix a small bug in the algorithm used for bucket
assignment in FDR's compile process, and also tweak a few of the
heuristics governing it.
2017-04-26 14:41:29 +10:00
Justin Viiret
68bf473e2e fdr: move long literal handling into Rose
Move the hash table used for long literal support in streaming mode from
FDR to Rose, and introduce new instructions CHECK_LONG_LIT and
CHECK_LONG_LIT_NOCASE for doing literal confirm for long literals.

This simplifies FDR confirm, and guarantees that HWLM matchers will only
be used for literals < 256 bytes long.
2016-10-28 14:52:26 +11:00
Justin Viiret
ad74f3b895 fdr: use braced init syntax for pairs 2016-07-08 10:49:59 +10:00
Justin Viiret
88e6485e75 fdr_compile: tidy up 2016-07-08 10:49:42 +10:00
Justin Viiret
57cd2331f5 fdr/teddy: switch over remaining smart ptrs 2016-07-08 10:49:35 +10:00
Justin Viiret
aebbd4f169 setupFullMultiConfs: return smart ptr 2016-07-08 10:49:31 +10:00
Justin Viiret
9953a026f8 setupFDRFloodControl: return smart ptr 2016-07-08 10:49:27 +10:00
Mohammad Abdul Awal
598f0565cf fdr: Remove python codegen, add safezones 2016-05-18 16:22:52 +10:00
Justin Viiret
f7cdfc5e54 fdr: don't include fdr.h if not necessary 2016-05-18 16:22:41 +10:00
Justin Viiret
353f0b4da2 fdr: move fdrSize into namespace ue2 (build only) 2016-05-18 16:22:38 +10:00
Mohammad Abdul Awal
313822c157 FDR runtime simplification
Removed static specialisation of domains.
2015-11-20 14:44:43 +11:00
Justin Viiret
447753f148 FDR compiler: assert that all models are < 32 bits 2015-11-10 14:25:04 +11:00
Justin Viiret
a6383a54a4 assignStringsToBuckets: assert that there are lits 2015-11-10 14:25:04 +11:00
Matthew Barr
904e436f11 Initial commit of Hyperscan 2015-10-20 09:13:35 +11:00