77 Commits

Author SHA1 Message Date
Alex Coyte
71ff480b77 nfa_api: remove subtype from dispatch 2016-12-02 11:32:28 +11:00
Alex Coyte
530d84c6f3 allow edge_descriptors to be created from pair<edge_descriptor, bool> 2016-12-02 11:32:20 +11:00
Alex Coyte
e1e9010cac Introduce custom adjacency-list based graph 2016-12-02 11:31:33 +11:00
Alex Coyte
2341fe7baa use stable_sort in analysis from 47f53f6; missed review comment 2016-12-02 11:29:30 +11:00
Justin Viiret
21a1b47637 ng_limex: add edges in deterministic ordering 2016-12-02 11:26:33 +11:00
Justin Viiret
e108cb841f ng_restructuring: wire start to tops in idx order 2016-12-02 11:25:00 +11:00
Justin Viiret
1a24b0b4db ng_equivalence: don't use ptr_vector
Switch over ptr_vector<T> to vector<unique_ptr<T>>. This works around
some issues we were seeing with MSVC builds, where the contents of the
ptr_vector were being destroyed when it was returned.
2016-12-02 11:24:57 +11:00
Alex Coyte
779bebfd12 fix for analysis in previous commit
Properly distinguish between vertices that will get set after the cyclic
from vertices that may get set alongside the cyclic
2016-12-02 11:24:47 +11:00
Alex Coyte
47f53f63a7 simple pass to pick up paths redundant with those from cyclic's succs 2016-12-02 11:24:30 +11:00
Alex Coyte
924089d95e properly consider report behaviour when finding start verts 2016-12-02 11:22:56 +11:00
Alex Coyte
592ce06eeb Create combo tops for trigger limexes 2016-12-02 11:22:23 +11:00
Matthew Barr
be8bd41ec4 Merge master into develop 2016-12-02 11:21:29 +11:00
Matthew Barr
21b44fcbc3 Add the missing degree() in Boost 1.62
This is a workaround that fixes issue #39
2016-11-15 09:52:37 +11:00
Alex Coyte
445cf987a8 remove unused includes 2016-10-28 14:52:56 +11:00
Alex Coyte
648a3c4824 UE-3025: There is no need to prune tops from non-triggered graphs 2016-10-28 14:52:01 +11:00
Alex Coyte
c94899dd44 allow sets of tops on edges 2016-10-28 14:51:46 +11:00
Alex Coyte
bcf40c5136 Limex: don't not build accel schemes for impossible state sets 2016-10-28 14:44:12 +11:00
Matthew Barr
0a1491d907 Remove problematic debug output 2016-08-22 16:04:44 +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
Justin Viiret
2aaa292aae dump: offsets for SOM_REL, SOM_ABS reports 2016-08-10 15:09:12 +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
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
de543bec24 ng_violet: use dumpString for debug output 2016-08-10 15:06:05 +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
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
Justin Viiret
9eb349a343 rose: expose smwr builder, tidy up engine build 2016-08-10 14:59:10 +10:00
Alex Coyte
691b08d170 use NGHolder::foo in favour of NFAGraph::foo 2016-08-10 14:52:56 +10:00
Alex Coyte
f166bc5658 allow some prefixes that may squash the literal match to run eagerly 2016-07-08 11:01:34 +10:00
Justin Viiret
9dddb4efc3 ng_equivalence: reduce compile time on large cases 2016-07-08 10:47:33 +10:00
Alex Coyte
0548a6d995 use edge index to avoid assoc property maps 2016-07-08 10:47:33 +10:00
Alex Coyte
cb7067f59d Prevent trying to build smallwrite engine for large cases 2016-07-08 10:46:46 +10:00
Alex Coyte
b097cb1b53 use the correct way to refer to void * 2016-07-08 10:45:06 +10:00
Matthew Barr
0e8867b393 Combine struct elements to avoid inheritance
The multiple inheritance here was slightly overkill, and it also appears to
trigger a MSVC bug when writing through the pointer to member.
2016-05-18 16:28:44 +10:00
Justin Viiret
75195f5f2e ng_mcclellan: move logic into base class
Move all of the Automaton logic into Automaton_Base, which is templated
on its StateSet/StateMap types.
2016-05-18 16:22:09 +10:00
Justin Viiret
ea7197571a ng_haig: move logic into base class
Move all of the Automaton logic into Automaton_Base, which is templated
on its StateSet/StateMap types.
2016-05-18 16:22:06 +10:00
Justin Viiret
c101beb541 castle, lbr: native report remap 2016-05-18 16:21:36 +10:00
Justin Viiret
1f41a921f2 mcclellan, gough: native report remapping 2016-05-18 16:20:45 +10:00
Justin Viiret
611579511c rose: remap reports to program offsets 2016-05-18 16:20:42 +10:00
Justin Viiret
84daf1fc1a ng_limex_accel: delete unused DAccelScheme ctor 2016-04-20 13:34:57 +10:00
Justin Viiret
36150bbc19 Rose: replace internal_report with program
Replace the use of the internal_report structure (for reports from
engines, MPV etc) with the Rose program interpreter.

SOM processing was reworked to use a new som_operation structure that is
embedded in the appropriate instructions.
2016-04-20 13:34:57 +10:00
Alex Coyte
ff721ed8e4 unify some accel code/structures between limex and mcclellan 2016-04-20 13:34:56 +10:00
Alex Coyte
850636dbd6 more efficent accel path discovery 2016-04-20 13:34:56 +10:00
Alex Coyte
ed3ef5b997 raise the limit of strings in double shufti 2016-04-20 13:34:56 +10:00