1476 Commits

Author SHA1 Message Date
Alex Coyte
de52b30c3e make rose responsible for dumping its bytecode 2017-04-26 15:17:19 +10:00
Alex Coyte
aeba9bc42c rose_build_bytecode: make build_context, RoseBuildImpl params const 2017-04-26 15:17:19 +10:00
Justin Viiret
8a6b38a9b5 ng_dominators: use a vector for doms internally 2017-04-26 15:17:11 +10:00
Justin Viiret
5005d50050 limex_compile: don't repeatedly calc dominators 2017-04-26 15:17:11 +10:00
Justin Viiret
187a4b82c2 small_vector: add header to handle older Boost
This provides ue2::small_vector<T, N, Alloc> which will fall back to
std::vector<T, Alloc> where the Boost version is too old or not present.
2017-04-26 15:17:11 +10:00
Wang, Xiang W
448ce8a496 UE-3098: add unaligned load for andn without BMI 2017-04-26 15:17:03 +10:00
Justin Viiret
533fcf383d ng_fuzzy: apply a resource limit to vertex count 2017-04-26 15:16:27 +10:00
Wang, Xiang W
ffab97ca8c FDR: delete dead confirm code 2017-04-26 15:16:27 +10:00
Matthew Barr
d2416736cb Use intrinsic to get correct movq everywhere
The real trick here is that _mm_set_epi64x() (note the 'x') takes a 64-bit
value - not a ptr to a 128-bit value like the non-x - so compilers don't
twist themselves in knots with alignment or whatever confuses them.
2017-04-26 15:16:03 +10:00
Justin Viiret
96fdca6f54 rose: guard writeNfaInfo from zero NFAs 2017-04-26 15:16:03 +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
Justin Viiret
60fc975c81 rose: use ROUNDUP_N for alignment 2017-04-26 15:11:10 +10:00
Justin Viiret
09d19c7c57 rose: remove unnecessary engine blob size check 2017-04-26 15:11:10 +10:00
Justin Viiret
2ec3019e04 rose: do state work before writing NfaInfo structs 2017-04-26 15:11:10 +10:00
Justin Viiret
96be1190ef rose: move matcher bytecode to engine blob 2017-04-26 15:11:10 +10:00
Justin Viiret
b2aae060d8 rose: consistent naming in updateNfaState 2017-04-26 15:11:10 +10:00
Justin Viiret
6013fb1546 engine_blob: add_range() member function 2017-04-26 15:11:10 +10:00
Justin Viiret
10aa806d67 rose: clean up nfa state alloc 2017-04-26 15:11:10 +10:00
Justin Viiret
246f9f4f86 rose: update nfa info earlier, in engine blob 2017-04-26 15:11:10 +10:00
Justin Viiret
a0b0247e47 rose: move NfaInfo to engine blob 2017-04-26 15:11:10 +10:00
Justin Viiret
c619621573 rose: move leftfix info into engine blob, refactor 2017-04-26 15:11:10 +10:00
Justin Viiret
395d6ae650 rose: move dkey info to engine blob 2017-04-26 15:11:10 +10:00
Justin Viiret
e3d2d67833 rose: move lookaround tables to engine blob 2017-04-26 15:11:10 +10:00
Justin Viiret
b6254ca11f rose: move active leftfix iter to engine blob 2017-04-26 15:11:10 +10:00
Justin Viiret
282f72e04d rose: move SOM reverse NFAs to engine_blob 2017-04-26 15:11:10 +10:00
Justin Viiret
f4bda9def6 rose: build RoseEngine prototype for bytecode
Rather than tracking a great many offsets in u32 variables, build them
in a RoseEngine prototype.
2017-04-26 15:11:10 +10:00
Wang, Xiang W
90216921b0 FDR: front end loop improvement 2017-04-26 15:11:10 +10:00
Justin Viiret
7b5c4c85cc rose: create new ProgramBuild struct 2017-04-26 15:04:31 +10:00
Justin Viiret
78875614c8 rose: make buildLiteralProgram take one lit_id 2017-04-26 15:04:31 +10:00
Justin Viiret
b525d7786c rose: don't assign fragments for event lits 2017-04-26 15:04:31 +10:00
Justin Viiret
bf93c993cb rose: remove final_id 2017-04-26 15:04:31 +10:00
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