297 Commits

Author SHA1 Message Date
Justin Viiret
4edf1e4195 dump: move openStdioFile() to util/dump_util.h 2017-08-21 11:10:11 +10:00
Justin Viiret
b09e3acd04 ng_misc_opt: improve performance in large cases 2017-08-21 11:10:11 +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
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
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
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
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
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
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
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
fedd48489f Allow the full cpuid flags for fat runtimes 2017-05-30 13:59:00 +10:00
Matthew Barr
c510b85bf1 whitespace changes 2017-05-30 13:59:00 +10:00
Justin Viiret
1a04d1330e verify_types: add type static assertions 2017-05-30 13:59:00 +10:00
Justin Viiret
16a00074c6 verify_types: throw on failure
In release builds, we would like a verify_u32 (etc) failure to be more
than just an assertion.
2017-05-30 13:58:59 +10:00
Justin Viiret
8a7ac432c0 ue2_literal: add hash_value() 2017-05-30 13:58:59 +10:00
Justin Viiret
9258592d0b report_manager: more use of unordered_map 2017-05-30 13:58:32 +10:00
Justin Viiret
1878b9a857 report_manager: use unordered externalIdMap 2017-05-30 13:58:32 +10:00
Justin Viiret
c9be18c7e2 accel_dfa_build_strat: use small_vector for paths 2017-05-30 13:49:49 +10:00
Matthew Barr
0b8f25a036 Ensure simd types are aligned to what we assume
Turns out Clang is sensitive to the location of the alignment attribute.
2017-05-30 13:48:38 +10:00
Justin Viiret
97bbb62504 bytecode_ptr: needs <stdexcept> for logic_error 2017-04-26 15:19:43 +10:00
Justin Viiret
37596c50cf bytecode_ptr: avoid shadowing size() 2017-04-26 15:19:43 +10:00
Justin Viiret
d4146059db bytecode_ptr: add shrink() member function 2017-04-26 15:19:43 +10:00
Justin Viiret
82b889f4a2 bytecode_ptr: fix shadow/conversion issues (gcc48) 2017-04-26 15:19:43 +10:00
Justin Viiret
820f1432aa alloc: remove aligned_unique_ptr 2017-04-26 15:19:43 +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
5653fa55a1 bytecode_ptr updates 2017-04-26 15:19:36 +10:00
Justin Viiret
67779e0c0a bytecode_ptr: some small improvements 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
6499d306ec bytecode_ptr: new smart pointer type
bytecode_ptr<T> is an aligned_unique_ptr<T> that can be queried for its
size and alignment.
2017-04-26 15:19:35 +10:00
Alex Coyte
7920b1086b default the move special functions 2017-04-26 15:19:35 +10:00
Justin Viiret
aa4ae755d8 depth: use hash_all() 2017-04-26 15:19:22 +10:00
Justin Viiret
5d1922327e depth: use totally_ordered 2017-04-26 15:19:22 +10:00
Justin Viiret
cf82924a39 depth: make constructor explicit 2017-04-26 15:19:19 +10:00
Alex Coyte
37cb93e60f rose_build: reduce size/scope of context objects 2017-04-26 15:19:01 +10:00
Xu, Chi
ae3cb7de6f rose: add multi-path shufti 16x8, 32x8, 32x16, 64x8 and multi-path lookaround instructions. 2017-04-26 15:18:56 +10:00
Justin Viiret
1ef87c43ee noncopyable: switch over from boost 2017-04-26 15:18:26 +10:00
Justin Viiret
a9844fbf74 noncopyable: add simple ue2::noncopyable class 2017-04-26 15:18:26 +10:00
Justin Viiret
a61b92f8d1 operators: add simple ue2::totally_ordered class 2017-04-26 15:18:26 +10:00
Matthew Barr
cd418ea6a8 Wrapper for system intrin header 2017-04-26 15:18:26 +10:00
Matthew Barr
8201183138 Check compiler architecture flags in one place 2017-04-26 15:18:26 +10:00
Matthew Barr
803f61d818 ICC doesn't have a __POPCNT__ macro 2017-04-26 15:18:26 +10:00
Justin Viiret
1f3a000bfa dump_util: move into namespace ue2 2017-04-26 15:18:26 +10:00
Matthew Barr
1d9a5421ce ICC doesn't have a __BMI2__ macro 2017-04-26 15:18:13 +10:00
Alex Coyte
0cbec2c1c3 mmbBuildInitRangePlan: correct offset if initial block is not block 0 2017-04-26 15:18:13 +10:00
Justin Viiret
5dfae12a62 ng: split NGWrapper into NGHolder, ExpressionInfo
We now use NGHolder for all graph information, while other expression
properties (report, flag information, etc) go in new class
ExpressionInfo.
2017-04-26 15:18:09 +10:00
Matthew Barr
01b91da1cd Use the default allocator for std::vector 2017-04-26 15:17:19 +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