886 Commits

Author SHA1 Message Date
Justin Viiret
b68694b729 rose: new program construction code 2017-04-26 15:04:31 +10:00
Justin Viiret
176c61aeaa rose_build_bytecode: clean up findEdgesByLiteral() 2017-04-26 15:04:31 +10:00
Justin Viiret
6a0dc261a2 rose_build_bytecode: less final_id 2017-04-26 15:04:31 +10:00
Justin Viiret
24ffb156e9 rose: eliminate global final to fragment map 2017-04-26 15:04:31 +10:00
Justin Viiret
a06e877fde rose dump: simplify 2017-04-26 15:04:31 +10:00
Justin Viiret
454fbf33d5 rose: tidy 2017-04-26 15:04:31 +10:00
Justin Viiret
6c5b4e657c rose_build_matchers: simplify literal build 2017-04-26 15:04:31 +10:00
Justin Viiret
bcbd85ab67 rose: dump support for delay programs 2017-04-26 15:04:31 +10:00
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