Justin Viiret
cf9e40ae1c
nfa: unify NfaCallback and SomNfaCallback
...
Use just one callback type, with both start and end offsets.
2016-07-08 11:01:56 +10:00
Xiang Wang
9087d59be5
tamarama: add container engine for exclusive nfas
...
Add the new Tamarama engine that acts as a container for infix/suffix
engines that can be proven to run exclusively of one another.
This reduces stream state for pattern sets with many exclusive engines.
2016-07-08 11:01:34 +10:00
Justin Viiret
013dbd3b3c
rose: re-inline literal handling program exec
2016-07-08 11:01:34 +10:00
Justin Viiret
76d96809f8
rose: move roseRunProgram into its own unit
...
The roseRunProgram function had gotten very large for the number of
sites it was being inlined into, with negative effects on performance in
large cases. This change moves it into its own translation unit.
2016-07-08 11:01:34 +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
Matthew Barr
f9ded59361
Disable strict aliasing
...
Strict aliasing allows to compiler to make some optimisations, but they aren't
without risk. The benefits do not appear to be worth the risk.
2016-07-08 10:59:40 +10:00
Alex Coyte
8699e35c09
prevent merging the e and f tables if the ftable is squashable
2016-07-08 10:59:40 +10:00
Alex Coyte
575e8c06dc
only show floating groups to the floating table
2016-07-08 10:59:40 +10:00
Justin Viiret
1c2b0a271d
role aliasing: tidy up naming
2016-07-08 10:59:40 +10:00
Justin Viiret
1d18852dc9
role aliasing: unify map update code
2016-07-08 10:59:40 +10:00
Justin Viiret
6239805561
rose: don't build empty sparse iter subprograms
2016-07-08 10:59:40 +10:00
Justin Viiret
679042779a
role aliasing: use a reverse ghost map
2016-07-08 10:59:40 +10:00
Justin Viiret
1e5fcd5e80
tighten ghost vertex checks
2016-07-08 10:59:40 +10:00
Justin Viiret
0749f7c06d
rose: allow ghosts to be aliased
2016-07-08 10:59:40 +10:00
Justin Viiret
e915ca21c5
limex: tidy up scoring code
2016-07-08 10:57:29 +10:00
Justin Viiret
8648397257
limex: invert scoring to count up from zero
2016-07-08 10:57:29 +10:00
Kirill Rybalchenko
9d2403e8bb
limex: implement variable shift NFA engines
...
Replaces the old LimEx NFA engines, which were specialised for model
size and number of shifts, with a new set of engines that can handle a
variable number of shifts.
2016-07-08 10:57:29 +10:00
Justin Viiret
cdaf705a87
rose: pick up more prefix->lookaround conversions
2016-07-08 10:57:29 +10:00
Justin Viiret
d3c56b532b
rose build: dedupe hasLastByteHistorySucc func
2016-07-08 10:57:00 +10:00
Justin Viiret
cf8e8c90ff
eod: move stream eod code to stream.c
2016-07-08 10:55:36 +10:00
Justin Viiret
d5c1280b9f
eod: tidy up, rename to roseStreamEodExec
2016-07-08 10:55:36 +10:00
Justin Viiret
66e0b77aa4
block: unify roseBlockExec and roseBlockExec_i
2016-07-08 10:55:36 +10:00
Justin Viiret
513ac11dbc
block: move matcher invocations into functions
2016-07-08 10:55:36 +10:00
Justin Viiret
a9eba12cce
rose: inline block-mode eod check
2016-07-08 10:55:36 +10:00
Justin Viiret
159c09b70e
roseEnginesEod: trust the queue structure
2016-07-08 10:55:36 +10:00
Justin Viiret
d9bd6d5dee
roseSuffixesEod: trust the queue structure
2016-07-08 10:55:36 +10:00
Justin Viiret
3e0232f0d6
eod: retire getELiteralMatcher
2016-07-08 10:55:36 +10:00
Justin Viiret
426bfc9cfb
rose_build_bytecode: clean up
2016-07-08 10:55:36 +10:00
Justin Viiret
ae157034e9
eod: tidy runtime
2016-07-08 10:55:36 +10:00
Justin Viiret
78e4332a8b
move eod iter program into general eod program
2016-07-08 10:55:36 +10:00
Justin Viiret
39461cc806
eod: move hwlm execution into MATCHER_EOD instr
2016-07-08 10:55:36 +10:00
Justin Viiret
b8f771e824
rose_build_bytecode: tidy up addPredBlocks
2016-07-08 10:55:36 +10:00
Justin Viiret
2761e0105d
eod: more suffix iteration into program
2016-07-08 10:54:07 +10:00
Justin Viiret
9669e0fe94
eod: remove forced sparse iter optimization
2016-07-08 10:54:07 +10:00
Justin Viiret
7a7dff5b70
eod: don't force sparse iter for general prog
2016-07-08 10:54:07 +10:00
Justin Viiret
02595cda1f
eod: consolidate eod anchor programs
2016-07-08 10:54:07 +10:00
Justin Viiret
7a6a476723
eod: move engine checks into ENGINES_EOD instr
2016-07-08 10:54:07 +10:00
Justin Viiret
7e3d56579b
eod: stop passing both scratch and state around
2016-07-08 10:54:07 +10:00
Matthew Barr
c7212a7478
Only omit frame pointers on 32bit release builds
...
Frame pointers are very useful for debugging and testing, and only
really make a difference to performance on IA32.
2016-07-08 10:50:08 +10:00
Justin Viiret
08d44fbed5
fdr: remove unused typedef 'ConfirmIndex'
2016-07-08 10:50:03 +10:00
Justin Viiret
ad74f3b895
fdr: use braced init syntax for pairs
2016-07-08 10:49:59 +10:00
Justin Viiret
b8cd169cde
teddy compile: rename loop var for readability
2016-07-08 10:49:56 +10:00
Justin Viiret
bae7a072ca
TeddySet: doesn't need a reference to lits
2016-07-08 10:49:52 +10:00
Justin Viiret
d626cb68e0
fdr_confirm_compile: clean up debugging code
2016-07-08 10:49:48 +10:00
Justin Viiret
37e7c96424
teddy_compile: modernise
2016-07-08 10:49:45 +10:00
Justin Viiret
88e6485e75
fdr_compile: tidy up
2016-07-08 10:49:42 +10:00
Justin Viiret
466fc940e5
fdr_streaming_compile: modernise loops, etc
2016-07-08 10:49:38 +10:00
Justin Viiret
57cd2331f5
fdr/teddy: switch over remaining smart ptrs
2016-07-08 10:49:35 +10:00
Justin Viiret
aebbd4f169
setupFullMultiConfs: return smart ptr
2016-07-08 10:49:31 +10:00
Justin Viiret
9953a026f8
setupFDRFloodControl: return smart ptr
2016-07-08 10:49:27 +10:00