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