Justin Viiret
dc50ab291b
container: allow sort_and_unique to have a comparator
2017-04-26 15:04:31 +10:00
Justin Viiret
cea8f452f2
rose: reorganise delay program generation
2017-04-26 15:04:31 +10:00
Justin Viiret
a2d2f7cb95
rose: dedupe anch programs and RECORD_ANCHOREDs
2017-04-26 15:04:31 +10:00
Justin Viiret
75c7f42314
rose: don't emit RECORD_ANCHORED in anchored progs
2017-04-26 15:04:31 +10:00
Justin Viiret
f5dd20e461
rose: rearrange anchored program generation
2017-04-26 15:04:31 +10:00
Justin Viiret
6a945e27fb
rose: reduce delay program dep on final_id
2017-04-26 15:04:31 +10:00
Justin Viiret
dc8220648c
rose: remove now-unused anchored_base_id
2017-04-26 15:04:30 +10:00
Justin Viiret
c426d2dc7d
rose: reduce anchored program dep on final_id
...
We only need to build anchored programs for cases where a
RECORD_ANCHORED instruction has been generated, and we can key those
directly rather than using final_id.
2017-04-26 15:04:30 +10:00
Justin Viiret
ea8d0bcb1c
rose: build fragments directly
2017-04-26 15:04:30 +10:00
Justin Viiret
79512bd5c3
rose: use fragment ids earlier for anchored dfas
2017-04-26 15:04:30 +10:00
Justin Viiret
8b25d83415
rose: write fragment ids into literal_info
2017-04-26 15:04:30 +10:00
Justin Viiret
1eae677d73
rose_build_impl: fix header guard
2017-04-26 15:04:30 +10:00
Justin Viiret
893674d3c7
rose_build_anchored: tbi->build
2017-04-26 15:04:30 +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
1be1293491
fdr: add grey box control for flood detection
2017-04-26 14:59:22 +10:00
Matthew Barr
9363ae7486
Clear upper half of AVX register before libm call
...
Clearing the upper half of the AVX register is required before calling SSE
code to avoid AVX-to-SSE transition penalties.
2017-04-26 14:59:22 +10:00
Justin Viiret
1245156f44
parser: handle "control verbs" without close paren
2017-04-26 14:59:02 +10:00
Justin Viiret
084596bb5e
parser: check for std::out_of_range from stoul
2017-04-26 14:58:46 +10:00
Justin Viiret
821a1b81e6
rose: only dump delay rebuild table if streaming
2017-04-26 14:58:46 +10:00
Justin Viiret
bef6889844
parser: use control_verb parser inline
2017-04-26 14:58:43 +10:00
Justin Viiret
bfc8be5675
parser: use stoul(), not strtol()
2017-04-26 14:57:53 +10:00
Justin Viiret
4def0c8a52
parser: switch to using char* pointers
2017-04-26 14:57:53 +10:00
Justin Viiret
1875d55cf1
parser: add initial parser for control verbs
...
This more reliably handles control verbs like (*UTF8) that can only
happen at the start of the pattern, and allows them in any ordering.
2017-04-26 14:57:46 +10:00
Justin Viiret
d43e9d838f
rose: delete dead code for cloneVertex
2017-04-26 14:56:49 +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
c4bfe0449c
lookaround: reduce compile time for trimLiterals
2017-04-26 14:56:49 +10:00
Justin Viiret
8ee8f5f236
safety assertions for delayed rebuild
2017-04-26 14:56:49 +10:00
Justin Viiret
a4af801dd1
rose: define invalid value for program offset
2017-04-26 14:56:49 +10:00
Justin Viiret
ebe12797e6
assert program offsets are non-zero
2017-04-26 14:56:49 +10:00
Justin Viiret
7bdb327203
rose: use final_ids less in program construction
2017-04-26 14:56:48 +10:00
Justin Viiret
a83b7cb348
move final_id_to_literal into build_context
2017-04-26 14:56:48 +10:00
Justin Viiret
a0260c0362
rose: do fragment group assignment earlier
2017-04-26 14:56:48 +10:00
Justin Viiret
6bf35cb637
rose: make groupByFragment local
2017-04-26 14:49:51 +10:00
Justin Viiret
a5b3bc814f
rose: delete RoseEngine::literalCount
2017-04-26 14:49:51 +10:00
Justin Viiret
9550058e75
remove lit program tables from bytecode
2017-04-26 14:49:51 +10:00
Justin Viiret
bd3357d3ac
rose: dump lit programs from frag map
2017-04-26 14:49:51 +10:00
Justin Viiret
c6bf1919d0
rose: merge all dump code into rose_build_dump.cpp
2017-04-26 14:49:35 +10:00
Justin Viiret
c2cac5009a
tidy up args to builders
2017-04-26 14:46:49 +10:00
Justin Viiret
3ae2fb417e
move final_to_frag_map into RoseBuildImpl (for dump code)
2017-04-26 14:46:49 +10:00
Justin Viiret
cfa63a7096
stream: simplify do_rebuild call site
2017-04-26 14:46:49 +10:00
Justin Viiret
76f72b6ab4
rose: use program offsets directly in lit tables
2017-04-26 14:46:48 +10:00
Justin Viiret
ac858cd47c
rose: build a separate delay rebuild matcher
2017-04-26 14:46:48 +10:00
Justin Viiret
5706acf5c0
role aliasing: bail if new graph is not implementable
2017-04-26 14:46:46 +10:00
Justin Viiret
1fad822735
violet: use bitset to speed up poisonFromSuccessor
2017-04-26 14:46:42 +10:00
Alex Coyte
bbd64f98ae
allow streams to marked as exhausted in more cases
...
At stream boundaries, we can mark streams as exhausted if there are no
groups active and there are no other ways to report matches. This allows us
to stop maintaining the history buffer on subsequent stream writes.
Previously, streams were only marked as exhausted if a pure highlander case
reported all patterns or the outfix in a sole outfix case died.
2017-04-26 14:44:53 +10:00
Alex Coyte
fbaa0a1b25
make expected too large patterns even larger
2017-04-26 14:44:49 +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