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