Justin Viiret
4cc998e4ab
ng_limex_accel: fix broken termination condition
2017-05-30 13:49:49 +10:00
Justin Viiret
c0d7960954
ng_limex_accel: compile time speedups, tidy up
2017-05-30 13:48:38 +10:00
Justin Viiret
63fe84c3f1
bytecode_ptr: add make_zeroed_bytecode_ptr
...
Rather than always zeroing memory.
2017-04-26 15:19:36 +10:00
Justin Viiret
a197074c5d
nfa: switch to using bytecode_ptr<NFA>
2017-04-26 15:19:36 +10:00
Justin Viiret
cf82924a39
depth: make constructor explicit
2017-04-26 15:19:19 +10:00
Justin Viiret
1ef87c43ee
noncopyable: switch over from boost
2017-04-26 15:18:26 +10:00
Justin Viiret
a871f70c25
ng_extparam: split up work and do per-comp reduce
...
This change breaks extparam processing up into:
- propagateExtendedParams: propagates min_length, min_offset and
max_offset into the reports on the graph
- reduceExtendedParams: runs graph reductions based on extparams
Then, we apply the reduce pass to the whole graph, and later as well to
each component after calc_components.
2017-04-26 15:18:22 +10:00
Justin Viiret
1200f33116
ng_region: no need to copy enters
2017-04-26 15:18:13 +10:00
Justin Viiret
699ab4190a
ng_region: clean up and modernise
2017-04-26 15:18:13 +10:00
Justin Viiret
ca22edc9d3
ng_region: don't realloc exits
2017-04-26 15:18:13 +10:00
Justin Viiret
d63fdcd860
ng_region: simplify checkAndAddExitCandidate
2017-04-26 15:18:13 +10:00
Justin Viiret
7396c93990
ng_region: clean up refineExits
2017-04-26 15:18:13 +10:00
Justin Viiret
8823a8fbfd
ng_region: use flat_sets in exit_info
2017-04-26 15:18:13 +10:00
Justin Viiret
546091f819
ng_calc_components: filter vertices from ug
2017-04-26 15:18:13 +10:00
Justin Viiret
4b3ff085d3
ng_undirected: avoid parallel edge at construction
...
(Rather than using setS for out edges)
2017-04-26 15:18:13 +10:00
Justin Viiret
9724f8c3cc
ng_undirected: modernize code
2017-04-26 15:18:13 +10:00
Justin Viiret
560e522457
ng_calc_components: add Grey box control
2017-04-26 15:18:13 +10:00
Justin Viiret
ba867ebaff
ng_calc_components: rework to move graphs
...
Rather than cloning graphs for output, rework calc components so that it
moves them.
2017-04-26 15:18:13 +10:00
Justin Viiret
5dfae12a62
ng: split NGWrapper into NGHolder, ExpressionInfo
...
We now use NGHolder for all graph information, while other expression
properties (report, flag information, etc) go in new class
ExpressionInfo.
2017-04-26 15:18:09 +10:00
Justin Viiret
8a6b38a9b5
ng_dominators: use a vector for doms internally
2017-04-26 15:17:11 +10:00
Justin Viiret
533fcf383d
ng_fuzzy: apply a resource limit to vertex count
2017-04-26 15:16:27 +10:00
Justin Viiret
5edecbf539
ng: check can_never_match before validate_fuzzy
2017-04-26 15:16:03 +10:00
Matthew Barr
c50a931bb4
Use std::move explicitly to avoid ambiguity with boost
2017-04-26 15:16:03 +10:00
Anatoly Burakov
2de6706df2
Adding support for compiling approximate matching patterns
...
Adds new "edit_distance" extparam
2017-04-26 15:11:39 +10:00
Alex Coyte
fddcdbb129
determinisation: use unordered_map to hold state set -> id mapping
2017-04-26 14:59:22 +10:00
Justin Viiret
d48a11cbbd
ng_literal_analysis: refactor splitOffLeadingLiteral
2017-04-26 14:56:49 +10:00
Justin Viiret
7acd8dcac8
dead code: remove splitOffAnchoredLeadingLiteral
2017-04-26 14:56:49 +10:00
Justin Viiret
1fad822735
violet: use bitset to speed up poisonFromSuccessor
2017-04-26 14:46:42 +10:00
Alex Coyte
d402ef9b28
violet: heuristic tweaks for ensuring implementablity
2017-04-26 14:44:49 +10:00
Alex Coyte
c32d7d51d9
remove ng_rose
2017-04-26 14:44:49 +10:00
Alex Coyte
2a1202e1e6
add checkViolet and switch SOM path accross to use violet
2017-04-26 14:44:49 +10:00
Alex Coyte
cde6ebf516
violet: decompose further for implementability
2017-04-26 14:44:49 +10:00
Alex Coyte
a43116c6d4
remove util functions from ng_rose.
2017-04-26 14:44:29 +10:00
Alex Coyte
8741759c3a
refactor restoreTrailingLiteral use
2017-04-26 14:44:29 +10:00
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