414 Commits

Author SHA1 Message Date
Chang, Harry
6a42b37fca SHENG32: Compile priority sheng > mcsheng > sheng32. 2021-01-25 14:13:13 +02:00
Konstantinos Margaritis
5333467249 fix names, use own intrinsic instead of explicit _mm* ones 2020-09-23 11:51:21 +03:00
Wang Xiang W
7c4490cfc9 smallwrite: add report dedupe check 2020-05-25 13:46:57 +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
Chang, Harry
64ea43ea39 Logical Combination: avoid corruption of pending combination report
in streaming mode.

Fixes github issue #165
2019-08-13 14:50:16 +08:00
Chang, Harry
1f4c10a58d Logical combination: support EOD match from purely negative case. 2019-08-13 14:50:07 +08:00
Hong, Yang A
bc37072d5b Rose: add necessary instruction programs to avoid dead loop
Fixes github issue #141
2019-04-10 06:53:03 -04:00
Wang, Xiang W
6dc9bed310 Rose: add handling for unexpected programs 2019-03-26 10:16:26 -04:00
Hong, Yang A
f68723a606 literal matching: separate path for pure literal patterns 2019-01-21 09:59:22 +08:00
Chang, Harry
9ab674b18e fix dead loop under win10 release bin. 2019-01-21 09:58:55 +08:00
Wang, Xiang W
ff9636e022 rose: disable switch optimization for windows 2019-01-21 09:58:38 +08:00
Wang, Xiang W
6f3a0a323e Silence clang warnings about unused variable 2019-01-21 09:57:17 +08:00
Guangqing Chen
922fe2ab20 Rose: optimize switch-case with Labels-as-Values 2019-01-21 09:56:58 +08:00
Lu, Qi
5a0885d235 Windows porting: port hyperscan and chimera tools to windows. 2018-07-09 11:40:43 -04:00
Chang, Harry
8a1c497f44 Logical Combination of patterns. 2018-06-27 14:04:57 +08:00
Justin Viiret
ce7cfbde82 misc: docs, typo fixes, small cleanups 2018-06-27 13:39:05 +08:00
Justin Viiret
ea9d1f69fb rose_build_add: remove unused max_adj param
In prepAcceptForAddAnchoredNFA(), we used to support different values
for max_adj. Since it's now always zero, remove it.
2018-06-27 13:39:00 +08:00
Matthew Barr
dd286323a9 Don't let haigs into Tamarama 2017-09-18 13:29:34 +10:00
Justin Viiret
ba0bf0c991 rose_build_add_mask: improve findMaskLiteral perf 2017-09-18 13:29:34 +10:00
Justin Viiret
19e95b0314 rose_build_matchers: init LitFragment fields
Silences Coverity warning about squash, delay_squash.
2017-09-18 13:29:34 +10:00
Alex Coyte
a1fdc3afcf dedupeLeftfixesVariableLag: refactor, more blockmode deduping 2017-09-18 13:29:34 +10:00
Alex Coyte
d6c050abd6 maintain castle report information 2017-09-18 13:29:34 +10:00
Alex Coyte
ace592e247 tidy mergeCastleSuffixes 2017-09-18 13:29:34 +10:00
Alex Coyte
6f452668ec refactor mergeCastleLeftfixes 2017-09-18 13:29:34 +10:00
Alex Coyte
cee0b722a3 reimplement hasSameEngineType() 2017-09-18 13:29:34 +10:00
Alex Coyte
47e64646b4 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.
2017-09-18 13:22:56 +10:00
Alex Coyte
a97cdba8cc 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.
2017-09-18 13:22:56 +10:00
Alex Coyte
2a492273b5 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
2017-09-18 13:22:56 +10:00
Alex Coyte
4e9b0ad3fd rework mergeLeftfixesVariableLag() 2017-08-21 11:25:21 +10:00
Justin Viiret
3ff70d5568 insertion_ordered_{map,set}: add new containers
These are associative map/set structures that are iterable in insertion
order.
2017-08-21 11:25:21 +10:00
Wang, Xiang W
a645201675 UE-3147: ensure the same squash behavior for literals shared between different literal matchers 2017-08-21 11:25:03 +10:00
Justin Viiret
ba1df6412b groupByFragment: make fewer string copies 2017-08-21 11:24:52 +10:00
Justin Viiret
8eb55d4242 rose_build_exclusive: clean up use of vertex indices 2017-08-21 11:24:52 +10:00
Justin Viiret
1f2eb5a093 rose_build_lookaround: use vector in trimLiterals 2017-08-21 11:24:52 +10:00
Justin Viiret
4889a492e4 rose: more hash member funcs for rose types 2017-08-21 11:24:52 +10:00
Justin Viiret
09938d532f rose: return a vector from findEdgesByLiteral 2017-08-21 11:24:52 +10:00
Justin Viiret
927501175c rose_build_long_lit: refactor to do less dupe work
Also some performance improvements.
2017-08-21 11:24:52 +10:00
Alex Coyte
37033ef9bb Provide RoseResources to roseQuality.
RoseResources is an alternative to manually digging through the bytecode.
2017-08-21 11:24:52 +10:00
Alex Coyte
ffc2d578b1 roseQuality() no longer needs to be part of rose's API. 2017-08-21 11:23:41 +10:00
Alex Coyte
952f0aad21 support dynamic stream compression 2017-08-21 11:18:54 +10:00
Alex Coyte
f8544505ce mergeLeftfixesVariableLag: update comments, debugging support 2017-08-21 11:18:54 +10:00
Justin Viiret
33823d60d1 tidy: "ue2::flat_set/map" -> "flat_set/map" 2017-08-21 11:14:59 +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
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
Justin Viiret
cdb281df42 rose_build_convert: replace bind2nd with lambda
std::bind2nd was deprecated in C++11.
2017-08-21 11:12:26 +10:00
Justin Viiret
9f0bc429b4 rose_in_dump: use StdioFile 2017-08-21 11:12:16 +10:00
Justin Viiret
bf3ced92f4 hwlm_dump: take base filename, like NFA dump API 2017-08-21 11:10:11 +10:00