Alex Coyte
7767651b59
shift all early_dfa creation logic to ng_violet/ng_rose
2017-04-26 14:44:29 +10:00
Alex Coyte
512c049493
shift early_dfa construction earlier
2017-04-26 14:44:03 +10:00
Justin Viiret
e37fdb240a
flat_set/map: add hash_value tests
2017-04-26 14:41:30 +10:00
Alex Coyte
35716c70ef
ensure that we add default top when creating a new infix graph
2017-01-17 11:39:04 +11:00
Matthew Barr
2214296b7f
Convert compile-time code to not require SIMD
2016-12-14 15:29:01 +11:00
Alex Coyte
8b7b06d2a4
calcDepthFromSource: only take one copy of the graph
2016-12-14 15:28:47 +11:00
Alex Coyte
e51b6d23b9
introduce Sheng-McClellan hybrid
2016-12-14 15:27:18 +11:00
Justin Viiret
06cde4c94d
ng_literal_analysis: use ue2_graph
...
This reduces compile time ~10% on a number of large cases.
2016-12-02 11:35:56 +11:00
Justin Viiret
ef99ae108f
rose_build_merge: correctly merge NFA outfixes
...
We were not doing our bookkeeping properly for merges where the number
of NFAs was greater than the batch size of 200.
2016-12-02 11:34:52 +11:00
Alex Coyte
eb7759361d
Rework the creation of startDs edges in fillHolderForLockCheck().
...
This prevents clearing of edges created for virtual starts in late regions.
2016-12-02 11:34:41 +11:00
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