1015 Commits

Author SHA1 Message Date
Justin Viiret
9eb349a343 rose: expose smwr builder, tidy up engine build 2016-08-10 14:59:10 +10:00
Justin Viiret
a427a2843b rose_build_anchored: clean up remapping
Note that there are no EOD reports in the anchored matcher raw_dfas.
2016-08-10 14:59:10 +10:00
Justin Viiret
210246af01 rose_build_anchored: remove unused forward decls 2016-08-10 14:59:10 +10:00
Justin Viiret
8754cbbd24 rose: use program offset, not final_id, in atable
This removes the need to look up the program offset in a table when
handling an anchored literal match.
2016-08-10 14:59:10 +10:00
Justin Viiret
4dbbc4eaa5 rose: add RECORD_ANCHORED instruction to program
Moves recordAnchoredLiteralMatch from an unconditional call in the
anchored callback to being driven by a program instruction.
2016-08-10 14:59:10 +10:00
Alex Coyte
981b59fd05 minor eager prefixes improvements
- count eager prefixes as always run engine when comparing with smwr
 - only check if a prefix is vacuous after adding back literal fragments
2016-08-10 14:59:10 +10:00
Xiang Wang
e95a251935 UE-2991: avoid copying one unnecessary subqueue item 2016-08-10 14:59:06 +10:00
Justin Viiret
aed2e721f4 rose: tidy up CHECK_{BYTE,MASK} dump code 2016-08-10 14:57:48 +10:00
Xu, Chi
4d7469392d rose: add CHECK_BYTE/CHECK_MASK instructions
These instructions are specialisations of the "lookaround" code for
performance.
2016-08-10 14:57:48 +10:00
Justin Viiret
1bab10698f rose_build_convert: improve history selection
Fixes assertion failures introduced by last commit.
2016-08-10 14:57:42 +10:00
Justin Viiret
3e96cd48ef rose: sanity check CHECK_BOUNDS instruction 2016-08-10 14:57:36 +10:00
Justin Viiret
8d31607556 rose: only use anch history when there are bounds 2016-08-10 14:57:36 +10:00
Alex Coyte
f55e968692 tamarama dump: use correct base offset 2016-08-10 14:57:20 +10:00
Justin Viiret
6ec93a54c4 rose: only dump small-block table in block mode 2016-08-10 14:57:20 +10:00
Justin Viiret
39c6a0c7bf rose: check literal bounds when building SB table
Literals that cannot lead to a report in the first ROSE_SMALL_BLOCK_LEN
bytes may be dropped from the small block table.
2016-08-10 14:56:12 +10:00
Justin Viiret
9346a9090e fdr: remove groups from struct FDR_Runtime_Args 2016-08-10 14:55:52 +10:00
Justin Viiret
42f23c2c91 teddy: no need to write control out at the end 2016-08-10 14:55:51 +10:00
Justin Viiret
b6a77b7329 teddy: remove extra control ptr 2016-08-10 14:55:51 +10:00
Justin Viiret
85f049edb2 fdr: remove extra control ptr 2016-08-10 14:55:51 +10:00
Justin Viiret
49bb3b5c82 simd_utils: setbit/clearbit by loading 1-bit mask 2016-08-10 14:52:56 +10:00
Justin Viiret
790683b641 rose: don't always dedupe small-block lit variants 2016-08-10 14:52:56 +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
Alex Coyte
691b08d170 use NGHolder::foo in favour of NFAGraph::foo 2016-08-10 14:52:56 +10:00
Alex Coyte
2471b770a8 we no longer store the history len 2016-08-10 14:52:56 +10:00
Alex Coyte
3a1429a621 group_weak_end is no longer used 2016-08-10 14:52:56 +10:00
Matthew Barr
22b451b59b Ensure that m256 is 32-aligned on non-avx2 builds 2016-08-10 14:52:56 +10:00
Justin Viiret
d497a1259a rose: use normal callback for pure-literal cases 2016-08-10 14:52:56 +10:00
Justin Viiret
8435f918d1 limex: use cyclics mask for repeat compress 2016-08-10 14:52:56 +10:00
Justin Viiret
ae5e347778 limex: only compress active repeats 2016-08-10 14:52:56 +10:00
Justin Viiret
aa54352a3a limex: switch off stale repeats during compress 2016-08-10 14:52:56 +10:00
Justin Viiret
19e79be87d limex: compress repeats before state 2016-08-10 14:52:56 +10:00
Justin Viiret
7cc5346c11 assign groups: turn pair<pair> into a tuple 2016-08-10 14:49:24 +10:00
Justin Viiret
bfaa0acaea rose: preserve lit properties when building masks
This fixes a bug with commit 6a6b0e5, which did not preserve the
requires_explode and requires_benefits properties when a new literal was
generated to add an HWLM and/cmp mask.

Also extends the requires_explode handling to allow masked literals.
2016-08-10 14:48:29 +10:00
Boris Nagaev
b73bd9b6e1 new test: deserializers fail with garbage input 2016-08-10 14:08:59 +10:00
Boris Nagaev
66c2a53d33 hs_serialized_database_info: check whole input
Most lines of hs_serialized_database_info are not needed,
as the information is provided by db_decode_header.
Moreover, db_decode_header changes its first argument,
so it points to end of header after db_decode_header.
2016-08-10 13:27:44 +10:00
Boris Nagaev
373a624bad simplegrep: open file in binary mode ("rb")
Otherwise it hangs on binary files (platform MinGW).
2016-08-10 13:20:26 +10:00
Justin Viiret
e9cfbae68f workaround for freebsd/clang/libc++ build issues
Rather than relying on set's constructor from {}, explicitly construct
the set.
2016-07-08 11:07:51 +10:00
Matthew Barr
e3d416a6ea Apply some consistency to the names we give shifts 2016-07-08 11:07:50 +10:00
Matthew Barr
c76ff285e7 remove unnecessary function proto 2016-07-08 11:07:50 +10:00
Matthew Barr
9c915cc936 remove only use of cmpmsk8 and unused cmpmsk16 2016-07-08 11:07:50 +10:00
Matthew Barr
0722b5db5b Remove GCC-style compound statements
These do not appear to give us benefits over inlining on recent compilers.
2016-07-08 11:07:50 +10:00
Matthew Barr
1b3e795fc9 teddy: we only need the upper lane
Just use an extract, no need to shuffle first.
2016-07-08 11:07:50 +10:00
Matthew Barr
adf820bbba simd: simplify the set-all-ones util funcs
Modern compilers (gcc, icc) get this right, with the benefit of
removing our last use of inline asm in this file.
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
9f98f4c7b2 nfa: standardise callback start, end naming 2016-07-08 11:02:05 +10:00
Justin Viiret
cf9e40ae1c nfa: unify NfaCallback and SomNfaCallback
Use just one callback type, with both start and end offsets.
2016-07-08 11:01:56 +10:00
Xiang Wang
9087d59be5 tamarama: add container engine for exclusive nfas
Add the new Tamarama engine that acts as a container for infix/suffix
engines that can be proven to run exclusively of one another.

This reduces stream state for pattern sets with many exclusive engines.
2016-07-08 11:01:34 +10:00
Justin Viiret
013dbd3b3c rose: re-inline literal handling program exec 2016-07-08 11:01:34 +10:00
Justin Viiret
76d96809f8 rose: move roseRunProgram into its own unit
The roseRunProgram function had gotten very large for the number of
sites it was being inlined into, with negative effects on performance in
large cases. This change moves it into its own translation unit.
2016-07-08 11:01:34 +10:00