1448 Commits

Author SHA1 Message Date
Justin Viiret
5837f68b9a ng_literal_decorated: pre-check for narrow reach 2017-08-21 11:10:11 +10:00
Justin Viiret
5a7d5958d1 ng_violet: skip analysis on graphs with wide reach 2017-08-21 11:10:11 +10:00
Justin Viiret
63973175ed ng_calc_components: check tail shell too 2017-08-21 11:10:11 +10:00
Justin Viiret
f6adc4f464 ng_calc_components: skip if shell has 1 path only 2017-08-21 11:10:11 +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
2dc1f9d629 rose_build_matchers: fix fragment noruns calc 2017-08-21 11:10:08 +10:00
Justin Viiret
cc4a5cc36f teddy_compile: style fixes, whitespace 2017-08-21 11:10:01 +10:00
Justin Viiret
84a09d35d6 teddy_compile: use faster small containers 2017-08-21 11:10:01 +10:00
Justin Viiret
c83f2ea389 rose_build_matchers: be more careful w/ mixed-case
Overhaul the way fragment literals are added to HWLM and accel, fix
some bugs shaken out by stricter mask use.
2017-08-21 11:09:45 +10:00
Justin Viiret
72387e0de4 lookarounds: don't reconfirm bytes in hwlm mask 2017-08-21 11:09:23 +10:00
Justin Viiret
7560e189eb rose: always use mandatory masks for lit fragments 2017-08-21 11:09:20 +10:00
Justin Viiret
bdae3d5b80 dump: always allocate >=8 bytes for multibit
The multibit runtime assumes that it is always safe to read 8 bytes, so
we must over-allocate for smaller sizes. Caught by ASan.
2017-08-21 10:40:18 +10:00
Justin Viiret
85f7790a21 dfa: standardise 'using' instead of typedef 2017-08-21 10:40:18 +10:00
Justin Viiret
0d7d52625c ng_haig: make StateMap an unordered_map 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
Justin Viiret
64db576b9e fdr_confirm_compile: literals are now < 8 bytes 2017-08-21 10:39:00 +10:00
Justin Viiret
d94bf2fd62 fdr_confirm_compile: wrap comment 2017-08-21 10:39:00 +10:00
Justin Viiret
2b9b2ca911 fdr/teddy: remove padding from structures 2017-08-21 10:39:00 +10:00
Justin Viiret
71bd1c8dfe teddy: clean up compile to match fdr style 2017-08-21 10:39:00 +10:00
Justin Viiret
e9d85f7b51 fdr_confirm: renumber FDR_LIT_FLAG_NOREPEAT 2017-08-21 10:39:00 +10:00
Justin Viiret
b126cbf556 fdr/teddy: simplify computing of confirm base 2017-08-21 10:39:00 +10:00
Justin Viiret
06bafae81d fdr_confirm: clean up use of flags 2017-08-21 10:39:00 +10:00
Justin Viiret
c878d5ec66 fdr: further tidy up layout 2017-08-21 10:39:00 +10:00
Justin Viiret
549062ec2b fdr_confirm: start FDRConfirm structs at cacheline 2017-08-21 10:38:59 +10:00
Justin Viiret
4f32a167d5 teddy: align major structures to cachelines 2017-08-21 10:38:59 +10:00
Justin Viiret
9bdd370163 fdr: align major structures to cachelines 2017-08-21 10:38:59 +10:00
Justin Viiret
c36c071564 fdr_confirm: remove dead flags
- Caseless was unused
 - NoFlags is a bit redundant
2017-08-21 10:38:59 +10:00
Justin Viiret
e8c0b5685f fdr_confirm: remove complex confirm 2017-08-21 10:38:59 +10:00
Matthew Barr
345897f096 cpuid: exclude AVX512 flag when target not enabled
If we have a fat runtime build without AVX512 enabled, we should not
pick up the AVX512 flag from cpuid.
2017-07-26 15:51:23 +10:00
Alex Coyte
d317d75615 character classes: handle \Q\E and utf8 2017-06-21 08:43:44 +10:00
Alex Coyte
a185be5a4f Treat characters between \Q \E as codepoints in UTF8 mode.
fixes github issue #57
2017-06-21 08:43:44 +10:00
Justin Viiret
dedfc34515 fdr_confirm_compile: fix bug in table sizing 2017-06-15 15:41:30 +10:00
Justin Viiret
09f5699df7 flat_set/map: workaround for gcc-4.8 C++11 defect
The STL shipped with gcc-4.8 does not provide
vector::erase(const_iterator) for C++11, instead only taking a mutable
iterator.  This causes problems with flat_set/map if we don't have
Boost small_vector available and we fall back to std::vector.

We work around this by providing a function to construct a mutable
iterator given a const_iterator for internal use.
2017-06-13 13:52:33 +10:00
Justin Viiret
9aee3b22b5 ng_expr_info: more complete analysis passes 2017-06-09 10:12:03 +10:00
Justin Viiret
c4e2459318 hs_compile: add note to hs_expression_info() docs
Successful analysis of a pattern with hs_expression_info() does not
imply that the pattern will successfully compile with hs_compile(), etc.
It is merely a utility function for pattern analysis.

Addresses Github issue #54.
2017-06-09 10:12:03 +10:00
Justin Viiret
9589ee9f90 hs_expression_info: check unsupported constructs 2017-06-09 10:12:03 +10:00
Matthew Barr
dba2470ec9 msvc: use the vectorcall calling convention
This requires declaring external interfaces with the cdecl
calling convention.
2017-06-09 10:12:02 +10:00
Justin Viiret
cfdac66404 accel: limit how far we will search in findBest 2017-05-30 14:00:45 +10:00
Matthew Barr
3e345c2567 If we can shift by an immediate, do it. Otherwise, don't. 2017-05-30 14:00:45 +10:00
Matthew Barr
0275869b3e Use our intrin header 2017-05-30 14:00:35 +10:00
Justin Viiret
4976f019f4 rose_build_engine_blob: rose unused data() func
We should no longer be reading out of the engine blob.
2017-05-30 14:00:12 +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
1089fa5018 avx512: noodle 2017-05-30 13:59:23 +10:00
Matthew Barr
ec7869711f avx512 fat runtime support: experimental 2017-05-30 13:59:23 +10:00
Matthew Barr
91db20d8eb avx512: CPU detection and platform hints 2017-05-30 13:59:23 +10:00