2150 Commits

Author SHA1 Message Date
Matthew Barr
e3c9bc7edf GCC 6 warns about unused attributes - disable the warning 2016-08-10 15:14:07 +10:00
Matthew Barr
85e2ba7555 cmake: take control of our compiler flags 2016-08-10 15:14:03 +10:00
Justin Viiret
ae14187462 rose: use min of max_offset in left merges
Be more careful with max_offset, since we rely on it ofr ANCH history
cases. Also adds tighter assertions.
2016-08-10 15:12:12 +10:00
Justin Viiret
cec57d7e90 rose: ensure anch small block literals have bounds 2016-08-10 15:12:04 +10:00
Justin Viiret
e03375b644 program_runtime: remove commented-out code 2016-08-10 15:11:15 +10:00
Justin Viiret
01ee4c94e3 dfa_build_strat: remove dead pure virtual impl 2016-08-10 15:11:15 +10:00
Alex Coyte
702f256b39 remove exceptionMap from LimExNFA 2016-08-10 15:11:15 +10:00
Anatoly Burakov
6331da4e29 dfa: adding new Sheng engine
A new shuffle-based DFA engine, complete with acceleration and smallwrite.
2016-08-10 15:10:46 +10:00
Anatoly Burakov
56bf25b091 McClellan refactor
Taking dfa strat out of McClellan, to be reused by other DFAs
2016-08-10 15:10:25 +10:00
Justin Viiret
a9fddbc400 nfa: delete largely-unused struct LimExNFABase 2016-08-10 15:10:25 +10:00
Alex Coyte
093029b5d1 add a csv version of rose_components 2016-08-10 15:10:09 +10:00
Matthew Barr
b8d33732b5 Check for misaligned memory in compile error code
We now check that mem alloc for error message is aligned, and
fail with an appropriate message in the compile error.
2016-08-10 15:10:09 +10:00
Alex Coyte
cded5552c2 rose: don't leave stray reports when copying the subgraph leading to a report 2016-08-10 15:09:27 +10:00
Justin Viiret
2aaa292aae dump: offsets for SOM_REL, SOM_ABS reports 2016-08-10 15:09:12 +10:00
Justin Viiret
67e450115a parser: ignore \E that is not preceded by \Q
This conforms to PCRE's behaviour, where an isolated \E that is not
preceded by \Q is ignored.
2016-08-10 15:08:01 +10:00
Justin Viiret
c58d9d04a1 ng_violet: fix non-det in lookForCleanEarlySplits 2016-08-10 15:07:45 +10:00
Justin Viiret
d119dd95fd ng_violet: trivial typo fixes 2016-08-10 15:07:45 +10:00
Justin Viiret
f3ccbf19b8 ng_violet: fix non-determinism in deanchorIfNeeded 2016-08-10 15:07:45 +10:00
Justin Viiret
a8cceeeddc ng_violet: fix non-determinism in splitEdgesByCut 2016-08-10 15:07:45 +10:00
Matthew Barr
151810b4fc Older gcc doesn't like shadowing the function 2016-08-10 15:07:11 +10:00
Matthew Barr
89ddb85637 Remove enum typedef 2016-08-10 15:07:01 +10:00
Matthew Barr
cbd115f7fe Don't shadow names 2016-08-10 15:06:57 +10:00
Justin Viiret
68ae4cc7c8 ng_violet: det. vertex ordering in splitRoseEdge 2016-08-10 15:06:43 +10:00
Justin Viiret
63528f1cd2 ng_violet: iterate in edge order 2016-08-10 15:06:43 +10:00
Justin Viiret
55c2d20e2c rose: use dumpString for debug output 2016-08-10 15:06:22 +10:00
Justin Viiret
04634f2e87 flood_compile: escape chars in debugging 2016-08-10 15:06:05 +10:00
Justin Viiret
de543bec24 ng_violet: use dumpString for debug output 2016-08-10 15:06:05 +10:00
Justin Viiret
1ff17a2ea3 rose: clear reports in removeFalsePaths 2016-08-10 15:06:01 +10:00
Justin Viiret
7f49958824 rose: only write out report programs if in use
These programs are only used by output-exposed engines.
2016-08-10 15:05:53 +10:00
Justin Viiret
4ce268af47 ng: ensure that only match states have reports
Ensure (and assert) that vertices without an edge to {accept, acceptEod}
do not have reports set.
2016-08-10 15:05:23 +10:00
Justin Viiret
3d9a60d023 teddy: apply poison mask after prep_conf_ work
This simplifies the code, and removes all the all-ones p_mask uses,
which we were otherwise trusting the optimizer to remove.
2016-08-10 15:05:23 +10: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
34289eb3b4 violet: 32bit fix 2016-08-10 15:01:28 +10:00
Alex Coyte
5c5ec905cc violet: initial implementation 2016-08-10 15:01:08 +10:00
Alex Coyte
b13a90e5d2 compiledump: allow disabling of early graphs for large compiles 2016-08-10 15:00:44 +10:00
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