243 Commits

Author SHA1 Message Date
Justin Viiret
84030aa0fc castlecompile: remove unused container 2017-09-18 13:25:52 +10:00
Justin Viiret
d55e8fdf94 limex_compile: reduce state id lookups 2017-08-21 11:24:52 +10:00
Justin Viiret
58004f15f0 limex_compile: turn tugs into a bitset 2017-08-21 11:24:52 +10:00
Alex Coyte
1f3cfdccef mergeCastle: merge common repeats from the castles 2017-08-21 11:18:54 +10:00
Justin Viiret
33823d60d1 tidy: "ue2::flat_set/map" -> "flat_set/map" 2017-08-21 11:14:59 +10:00
Justin Viiret
9cf66b6ac9 util: switch from Boost to std::unordered set/map
This commit replaces the ue2::unordered_{set,map} types with their STL
versions, with some new hashing utilities in util/hash.h. The new types
ue2_unordered_set<T> and ue2_unordered_map<Key, T> default to using the
ue2_hasher.

The header util/ue2_containers.h has been removed, and the flat_set/map
containers moved to util/flat_containers.h.
2017-08-21 11:14:55 +10:00
Justin Viiret
21a4c8d4e2 rdfa: move raw_dfa member functions to rdfa.cpp 2017-08-21 11:12:26 +10:00
Justin Viiret
48f9a6d518 limex_compile: use small_color_map 2017-08-21 11:12:26 +10:00
Justin Viiret
4105dd4805 tamarama_dump: fix typo in comment 2017-08-21 11:12:16 +10:00
Justin Viiret
06fa790b5d tamarama_dump: use StdioFile 2017-08-21 11:12:16 +10:00
Justin Viiret
63f3718c79 shengdump: use StdioFile 2017-08-21 11:12:16 +10:00
Justin Viiret
08e094748c mpv_dump: use StdioFile 2017-08-21 11:12:16 +10:00
Justin Viiret
6c647c2fb8 mcsheng_dump: use StdioFile 2017-08-21 11:12:16 +10:00
Justin Viiret
74f6e41296 mcclellandump: use StdioFile 2017-08-21 11:12:16 +10:00
Justin Viiret
0b40e96385 limex_dump: use StdioFile, tidy 2017-08-21 11:12:16 +10:00
Justin Viiret
80cf4bd9a2 lbr_dump: use StdioFile 2017-08-21 11:12:16 +10:00
Justin Viiret
a16a6f48b0 goughdump: use StdioFile 2017-08-21 11:12:16 +10:00
Justin Viiret
11408d0ce3 goughcompile_dump: use StdioFile 2017-08-21 11:12:16 +10:00
Justin Viiret
a18fbfe873 castle_dump: use StdioFile 2017-08-21 11:12:16 +10:00
Justin Viiret
75e4aefabe dfa: don't clear states, just mark dfa dead
The previous change caused some assertion issues.
2017-08-21 11:10:11 +10:00
Justin Viiret
3d4d39b8a9 clear_deeper_reports: clear dfa if dead
If we remove all the reports from the DFA because they're too deep, then
clear the DFA without depending on Hopcroft minimisation.
2017-08-21 11:10:11 +10:00
Justin Viiret
85f7790a21 dfa: standardise 'using' instead of typedef 2017-08-21 10:40:18 +10:00
Justin Viiret
31141dd35b determinise: use queue, improve api
- Use a queue rather than always building the full vector of state
   sets.
 - Make more use of move, emplace, reserve.
 - Write directly into dstates argument.
 - Return bool rather than int.
2017-08-21 10:40:18 +10:00
Matthew Barr
221229f71c gcc7: comments for falling through a switch case
GCC 7 adds a warning -Wimplicit-fallthrough to catch when falling
through a switch statement without a break. Since we actually want that
behaviour sometimes, we can add a comment so the compiler knows we
intended the fallthrough.
2017-05-30 13:59:48 +10:00
Matthew Barr
f6b688fc06 rename pshufb to pshufb_m128 2017-05-30 13:59:23 +10:00
Matthew Barr
a295c96198 rename vpshufb to pshufb_m256 2017-05-30 13:59:23 +10:00
Matthew Barr
eabe408e2b avx512: shufti 2017-05-30 13:59:23 +10:00
Matthew Barr
194c201fc7 avx512: truffle 2017-05-30 13:59:23 +10:00
Matthew Barr
8a56d16d57 avx512: add basic functions to simd_utils
Extends the m512 type to use avx512 and also changes required
for limex.
2017-05-30 13:59:18 +10:00
Matthew Barr
9acda484fe debug: use before set 2017-05-30 13:59:00 +10:00
Matthew Barr
423569ec82 De-multiaccel 2017-05-30 13:59:00 +10:00
Justin Viiret
c6f5275acc mcclellancompile: docs for main compile function 2017-05-30 13:57:32 +10:00
Justin Viiret
10f52346ca smallwrite: bfs ordering, refine daddy selection 2017-05-30 13:57:32 +10:00
Justin Viiret
3b3f6b739c smallwrite: use failure map to set dfa daddy state 2017-05-30 13:57:32 +10:00
Justin Viiret
beac58fcb4 dfa: allow smwr to avoid lengthy daddy recalc 2017-05-30 13:57:32 +10:00
Justin Viiret
1538d90a9e mcsheng_compile: factor out find_daddy_candidates 2017-05-30 13:57:32 +10:00
Justin Viiret
f5d769118a mcclellancompile: factor out find_daddy_candidates 2017-05-30 13:57:32 +10:00
Justin Viiret
0dd8536c6e dfa: only accel init states from smwr path
If the small-write DFA has been built from literals, then we only need
to look for accel states at init.
2017-05-30 13:57:32 +10:00
Justin Viiret
41d7aa8281 dfa: prune_overlong -> clear_deeper_reports
Rather than pruning states, we simply clear reports on states that are
too deep and allow Hopcroft minimisation to reduce the size of the DFA
afterwards.
2017-05-30 13:57:32 +10:00
Justin Viiret
8650a1a33f dfa_min: clean up and improve minimize code 2017-05-30 13:57:32 +10:00
Justin Viiret
8fdef3f3be accel_dfa_build_strat: use flat_map for small maps 2017-05-30 13:49:49 +10:00
Justin Viiret
c9be18c7e2 accel_dfa_build_strat: use small_vector for paths 2017-05-30 13:49:49 +10:00
Justin Viiret
304bac3286 mcclellancompile_util: reduce malloc traffic, tidy 2017-05-30 13:49:49 +10:00
Justin Viiret
40f03929be find_better_daddy: use flat_set for hinted states 2017-05-30 13:47:20 +10:00
Justin Viiret
698653766b find_escape_strings: find outs2_broken faster 2017-05-30 13:47:20 +10:00
Justin Viiret
eec2b8233d rdfa_merge: sort esets before alphabet calc 2017-04-26 15:19:51 +10:00
Justin Viiret
63fe84c3f1 bytecode_ptr: add make_zeroed_bytecode_ptr
Rather than always zeroing memory.
2017-04-26 15:19:36 +10:00
Justin Viiret
a197074c5d nfa: switch to using bytecode_ptr<NFA> 2017-04-26 15:19:36 +10:00
Justin Viiret
73ef7f1e44 mpvcompile: use bytecode_ptr 2017-04-26 15:19:36 +10:00
Justin Viiret
7288da22bd limex_compile: use bytecode_ptr 2017-04-26 15:19:35 +10:00