48 Commits

Author SHA1 Message Date
Konstantinos Margaritis
2f13ad0674 optimize caseMask handling 2021-10-12 11:50:32 +03:00
Konstantinos Margaritis
27bd09454f use correct function names for AVX512, fix build failure 2021-02-15 13:54:19 +02:00
Konstantinos Margaritis
9fd94e0062 use unaligned loads for short scans 2021-02-11 14:21:57 +02:00
Konstantinos Margaritis
d3e03ed88a optimize case mask AND out of the loop 2021-02-10 13:29:45 +02:00
Konstantinos Margaritis
5333467249 fix names, use own intrinsic instead of explicit _mm* ones 2020-09-23 11:51:21 +03:00
Konstantinos Margaritis
8ed5f4ac75 fix include paths for masked_move 2020-09-18 12:55:57 +03:00
Wang Xiang W
f658c4e149 Noodle: avoid an extra convert instruction
fixes github issue #221
2020-05-25 13:46:42 +00: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
Hong, Yang A
f68723a606 literal matching: separate path for pure literal patterns 2019-01-21 09:59:22 +08:00
Justin Viiret
af519f3190 hwlm_build: default for HWLMProto::make_small
Silences Coverity warning.
2017-09-18 13:29:34 +10:00
Alex Coyte
41783fe912 more comments on hwlm/fdr's start parameter 2017-08-21 11:23:41 +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
Wang, Xiang W
67a8f43355 literal matchers: change context passed to callback to scratch 2017-08-21 11:12:36 +10:00
Wang, Xiang W
ebb1b0006b remove start argument in literal matcher callbacks 2017-08-21 11:12:36 +10:00
Matthew Barr
35d396d061 noodle: correct streaming bounds 2017-08-21 11:12:26 +10:00
Matthew Barr
f2b97a51d8 noodle: param name 2017-08-21 11:12:26 +10:00
Matthew Barr
166f5d8ba5 noodle: scan using the correct offsets 2017-08-21 11:12:24 +10:00
Matthew Barr
31a445a0e8 noodle: behave like our other literal matchers
Noodle now supports supplementary masks.
2017-08-21 11:10:20 +10:00
Matthew Barr
9c538a7522 Move hwlm literal len define 2017-08-21 11:10:20 +10:00
Matthew Barr
293f9fcc49 noodle: we don't need memcpy 2017-08-21 11:10:20 +10:00
Matthew Barr
4be7d6fecc noodle: Use a sane temp buf for streaming 2017-08-21 11:10:18 +10:00
Justin Viiret
bf3ced92f4 hwlm_dump: take base filename, like NFA dump API 2017-08-21 11:10:11 +10:00
Matthew Barr
0275869b3e Use our intrin header 2017-05-30 14:00:35 +10:00
Matthew Barr
221229f71c gcc7: comments for falling through a switch case
GCC 7 adds a warning -Wimplicit-fallthrough to catch when falling
through a switch statement without a break. Since we actually want that
behaviour sometimes, we can add a comment so the compiler knows we
intended the fallthrough.
2017-05-30 13:59:48 +10:00
Matthew Barr
1089fa5018 avx512: noodle 2017-05-30 13:59:23 +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
7b17d418e7 hwlm: use bytecode_ptr for HWLM structures 2017-04-26 15:19:36 +10:00
Justin Viiret
9996283112 noodle_build: use bytecode_ptr 2017-04-26 15:19:35 +10:00
Matthew Barr
8201183138 Check compiler architecture flags in one place 2017-04-26 15:18:26 +10:00
Alex Coyte
bbd64f98ae allow streams to marked as exhausted in more cases
At stream boundaries, we can mark streams as exhausted if there are no
groups active and there are no other ways to report matches. This allows us
to stop maintaining the history buffer on subsequent stream writes.
Previously, streams were only marked as exhausted if a pure highlander case
reported all patterns or the outfix in a sole outfix case died.
2017-04-26 14:44:53 +10:00
Justin Viiret
2fda8c0b20 hwlm: move accel from hwlm build to rose 2017-04-26 14:41:29 +10:00
Justin Viiret
eb14792a63 rose: group final ids by fragment 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
Matthew Barr
2214296b7f Convert compile-time code to not require SIMD 2016-12-14 15:29:01 +11:00
Justin Viiret
98c791dc6e noodle: correct history req calculation 2016-10-28 14:52:48 +11: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
Alex Coyte
d574557200 take mask overhang into account for hwlm accel, float min dist 2016-08-10 15:05:19 +10:00
Alex Coyte
5c5ec905cc violet: initial implementation 2016-08-10 15:01:08 +10:00
Alex Coyte
c58424cab3 reduce character classes for hwlm accel 2016-08-10 14:52:56 +10:00
Alex Coyte
69933edf68 truffle hwlm accel 2016-08-10 14:52:56 +10:00
Matthew Barr
e3d416a6ea Apply some consistency to the names we give shifts 2016-07-08 11:07:50 +10:00
Matthew Barr
4d6934fc77 Move limex specific shuffle utils and ssse3 funcs 2016-07-08 11:07:50 +10:00
Justin Viiret
353f0b4da2 fdr: move fdrSize into namespace ue2 (build only) 2016-05-18 16:22:38 +10:00
Justin Viiret
d7774f3d69 noodle_build: update interface to use hwlmLiteral 2016-05-18 16:22:32 +10:00
Justin Viiret
07bb14a84a hwlm_literal: coerce nocase lits to upper-case 2016-05-18 16:22:22 +10:00
Matthew Barr
54c0fb7e0e noodle: remove redundant bitmask 2016-05-18 16:22:15 +10:00
Matthew Barr
fe8ffc5544 noodle: use SSE palignr 2016-05-18 16:22:12 +10:00
Matthew Barr
904e436f11 Initial commit of Hyperscan 2015-10-20 09:13:35 +11:00