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
Matthew Barr
73765f1f84
cmake: Improve the microarch checks
2017-06-09 10:12:02 +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
055ff7391c
cmake: build shared libs with the PIC objs
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
423569ec82
De-multiaccel
2017-05-30 13:59:00 +10:00
Alex Coyte
15c8a7bd98
rose: rework storage of extra lookaround information
...
- remove explicit lookaround table from bytecode
- make the RoseInstr responsible for adding required info to blob
2017-05-30 13:59:00 +10:00
Alex Coyte
bb29aeb298
rose: shift program construction functions to rose_build_program
2017-05-30 13:58:32 +10:00
Justin Viiret
82838f5728
rose_build: move dedupe analysis into own file
2017-05-30 13:58:32 +10:00
Alex Coyte
1287b70f4b
split out instruction details to own files
2017-05-30 13:58:32 +10:00
Matthew Barr
b1c57f9f54
cmake: check for libc++ directly
...
Rather than trying to infer libc++ use from platform and compiler, just
look for a defined symbol.
2017-04-26 15:19:52 +10:00
Justin Viiret
1ef87c43ee
noncopyable: switch over from boost
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
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
ce50ff6119
Use GNUInstallDirs for install paths
2017-04-26 15:17:19 +10:00
Matthew Barr
5daa191313
cmake: simplify g++ version check
2017-04-26 15:17:19 +10:00
Matthew Barr
11aac07855
cmake: override gcc's tuning guess
2017-04-26 15:17:19 +10:00
Matthew Barr
b68e4ea336
cmake: move boost tests
2017-04-26 15:17:19 +10:00
Matthew Barr
287f519205
cmake: look for Boost in-tree first
...
During development we tend to use a symlink to the most recent version of
Boost from the Hyperscan source tree, so look there first.
Also, unset some cached results so we recheck when the Boost version changes.
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
Matthew Barr
79308e6791
cmake: don't build static libs if we don't have to
2017-04-26 15:17: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
Alex Coyte
fddcdbb129
determinisation: use unordered_map to hold state set -> id mapping
2017-04-26 14:59:22 +10:00
Matthew Barr
9363ae7486
Clear upper half of AVX register before libm call
...
Clearing the upper half of the AVX register is required before calling SSE
code to avoid AVX-to-SSE transition penalties.
2017-04-26 14:59:22 +10:00
Justin Viiret
1875d55cf1
parser: add initial parser for control verbs
...
This more reliably handles control verbs like (*UTF8) that can only
happen at the start of the pattern, and allows them in any ordering.
2017-04-26 14:57:46 +10:00
Justin Viiret
c6bf1919d0
rose: merge all dump code into rose_build_dump.cpp
2017-04-26 14:49:35 +10:00
Alex Coyte
c32d7d51d9
remove ng_rose
2017-04-26 14:44:49 +10:00
Justin Viiret
2fda8c0b20
hwlm: move accel from hwlm build to rose
2017-04-26 14:41:29 +10:00
Matthew Barr
f7d3ccc7e5
Bump version number for release
2017-03-01 13:05:44 +11:00
Matthew Barr
53a8d97e77
Bump version number for release
2017-01-20 14:15:53 +11:00
Matthew Barr
8c2e033540
cmake: test reverse_graph instead of using version
...
It seems that some distros are using a patched Boost 1.62.0 which means our
workaround in reverse_graph has a conflict. Add a CMake test to see if we
need to use the patched reverse_graph.
2017-01-20 09:26:34 +11:00
Matthew Barr
e23316f453
Boost 1.61 required for clang/libc++
...
The libc++ headers aren't specific enough and causes the compiler to think
there are ambiguous functions when using older Boost versions.
2017-01-17 11:38:31 +11:00
Matthew Barr
1c9f38e98d
Silence ABI notes in release builds
2017-01-17 11:38:16 +11:00
Matthew Barr
2f57681bb6
cmake: check the generator for fat runtime builds
...
The RULE_LAUNCH_COMPILE property only works for Unix Makefiles, or
for Ninja with CMake newer than v3.0.
2016-12-14 15:35:44 +11:00
Matthew Barr
0d87116d33
cmake: check clang version for fat runtime support
2016-12-14 15:35:44 +11:00
Matthew Barr
f29b203a86
cmake: combine hs_exec src lists correctly
2016-12-14 15:35:28 +11:00
Matthew Barr
1ed2bdc46f
Don't set flags for common files
2016-12-14 15:35:22 +11:00
Matthew Barr
c337ac665b
cmake: default to fat runtime for release builds
2016-12-14 15:35:19 +11:00
Matthew Barr
6967c7ddf1
cmake: unneeded header check
2016-12-14 15:35:16 +11:00
Matthew Barr
0d0e1a5106
api: hs_valid_platform
2016-12-14 15:35:13 +11:00
Matthew Barr
c3a73446ee
Fat runtime
2016-12-14 15:34:54 +11:00
Matthew Barr
2214296b7f
Convert compile-time code to not require SIMD
2016-12-14 15:29:01 +11:00
Justin Viiret
e271781d95
multibit, fatbit: make _size build-time only
...
This commit makes mmbit_size() and fatbit_size compile-time only, and
adds a resource limit for very large multibits.
2016-12-14 15:28:54 +11:00
Alex Coyte
e51b6d23b9
introduce Sheng-McClellan hybrid
2016-12-14 15:27:18 +11:00
Alex Coyte
32c826e9c6
have single dump function per engine
2016-12-02 11:32:36 +11:00
Alex Coyte
e1e9010cac
Introduce custom adjacency-list based graph
2016-12-02 11:31:33 +11:00
Matthew Barr
be8bd41ec4
Merge master into develop
2016-12-02 11:21:29 +11:00
Matthew Barr
0a16e6f78c
Bump version number for release
2016-11-15 10:09:59 +11:00
Justin Viiret
68bf473e2e
fdr: move long literal handling into Rose
...
Move the hash table used for long literal support in streaming mode from
FDR to Rose, and introduce new instructions CHECK_LONG_LIT and
CHECK_LONG_LIT_NOCASE for doing literal confirm for long literals.
This simplifies FDR confirm, and guarantees that HWLM matchers will only
be used for literals < 256 bytes long.
2016-10-28 14:52:26 +11:00
Matthew Barr
6ed30194ce
Disable asserts everywhere when we say so
2016-10-28 14:52:15 +11:00