Justin Viiret
8b9328fe9e
rose: replace RoseLiteralMap use of bimap
...
This apoproach is simpler and more efficient for cases with large
numbers of literals.
2017-05-30 13:58:59 +10:00
Matthew Barr
c50a931bb4
Use std::move explicitly to avoid ambiguity with boost
2017-04-26 15:16:03 +10: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
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
592ce06eeb
Create combo tops for trigger limexes
2016-12-02 11:22:23 +11:00
Alex Coyte
c94899dd44
allow sets of tops on edges
2016-10-28 14:51:46 +11:00
Justin Viiret
8be6c8b2ca
rose: don't merge large acyclic suffixes
...
Check earlier on in mergeSuffixes that we're not proposing to merge
suffixes above our limit from the acyclic merge path.
2016-10-28 14:43:33 +11:00
Alex Coyte
b097cb1b53
use the correct way to refer to void *
2016-07-08 10:45:06 +10:00
Alex Coyte
11896dcf42
restore ability to ignore common preds for merges
...
Check for common preds was broken during refactoring in b9c5d65:
Rework literal overlap checks for merging engines
2016-05-18 16:26:22 +10:00
Justin Viiret
fd7f30a5b5
Merge functions no longer need transfer function
2016-04-20 13:34:57 +10:00
Justin Viiret
319d47ae4f
Remove OutfixInfo::chained (which meant "is MPV")
2016-04-20 13:34:57 +10:00
Justin Viiret
32c866a8f9
OutfixInfo: use boost::variant for engines
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
Justin Viiret
7b54856642
Rose: allow block-mode merge of small prefixes
...
Previously, we disallowed the merging of all Rose prefixes in block mode
where the literal sets are not identical.
This change allows merging if the prefix graphs to be merged are very
small, as a small performance improvement for cases with lots of tiny
prefixes.
This check is deliberately conservative: graphs must have some common
vertices, and the result of the merge must not give up any
accelerability.
2016-03-01 11:34:26 +11:00
Justin Viiret
9cb2233589
rose: Use an interpreter for role runtime
...
Replace much of the RoseRole structure with an interpreted program,
simplifying the Rose runtime and making it much more flexible.
2016-03-01 11:16:02 +11:00
Alex Coyte
b9c5d65f0e
Rework literal overlap checks for merging engines
...
Also increase the size of chunks we consider merging for castles.
2016-03-01 11:10:24 +11:00
Matthew Barr
904e436f11
Initial commit of Hyperscan
2015-10-20 09:13:35 +11:00