39 Commits

Author SHA1 Message Date
Matthew Barr
f9ded59361 Disable strict aliasing
Strict aliasing allows to compiler to make some optimisations, but they aren't
without risk. The benefits do not appear to be worth the risk.
2016-07-08 10:59:40 +10:00
Kirill Rybalchenko
9d2403e8bb limex: implement variable shift NFA engines
Replaces the old LimEx NFA engines, which were specialised for model
size and number of shifts, with a new set of engines that can handle a
variable number of shifts.
2016-07-08 10:57:29 +10:00
Justin Viiret
cf8e8c90ff eod: move stream eod code to stream.c 2016-07-08 10:55:36 +10:00
Matthew Barr
c7212a7478 Only omit frame pointers on 32bit release builds
Frame pointers are very useful for debugging and testing, and only
really make a difference to performance on IA32.
2016-07-08 10:50:08 +10:00
Justin Viiret
c2496fbf76 rose: elide SET_GROUPS when possible 2016-07-08 10:47:07 +10:00
Matthew Barr
212ed92ac5 Bump version number for release 2016-06-01 11:04:43 +10:00
Matthew Barr
89bc2b4b39 cmake: invoke the compiler to test arch features
We require SSSE3, and optionally support AVX2, and the best way of testing
the compiler and compile flags is to run the compiler.
2016-05-24 11:26:38 +10:00
Matthew Barr
e52783017e pkgconfig: Add Libs.private for static linking 2016-05-24 11:26:06 +10:00
Matthew Barr
74d5d0e819 cmake: fix optimise define 2016-05-24 11:26:03 +10:00
Boris Nagaev
ba77229c02 install .dll to bin/, not to lib/ 2016-05-22 15:56:49 +03:00
Mohammad Abdul Awal
ed772380c0 teddy: remove python codegen, refactor code
Major cleanup of the Teddy runtime code. Removes python code generation,
splits AVX2 models into their own file, improves readability.
2016-05-18 16:28:11 +10:00
Mohammad Abdul Awal
598f0565cf fdr: Remove python codegen, add safezones 2016-05-18 16:22:52 +10:00
Alex Coyte
e86688e313 add m128 byte shift functions
variable_byte_shift_m128 taken from pug-interpreter branch
2016-05-18 16:22:44 +10:00
Justin Viiret
1f41a921f2 mcclellan, gough: native report remapping 2016-05-18 16:20:45 +10:00
Justin Viiret
611579511c rose: remap reports to program offsets 2016-05-18 16:20:42 +10:00
Justin Viiret
36150bbc19 Rose: replace internal_report with program
Replace the use of the internal_report structure (for reports from
engines, MPV etc) with the Rose program interpreter.

SOM processing was reworked to use a new som_operation structure that is
embedded in the appropriate instructions.
2016-04-20 13:34:57 +10:00
Alex Coyte
ff721ed8e4 unify some accel code/structures between limex and mcclellan 2016-04-20 13:34:56 +10:00
Alex Coyte
f53c093baa simple offset accel for mcclellan start state 2016-04-20 13:34:56 +10:00
Justin Viiret
b093616aff Rose build: move HWLM build code to own file
To reduce the size of rose_build_bytecode.cpp a little, move the code
that deals with HWLM literal tables into its own new file.
2016-04-20 13:34:54 +10:00
Matthew Barr
78b780c550 Don't enable -Werror for release builds
Using -Werror is a very good thing during development, but it has the
potential to break the user's build, for example, if they are using a slightly
different compiler combination to one that has been tested previously.
2016-03-01 11:42:49 +11:00
Matthew Barr
82438a567f Fix typo 2016-03-01 11:42:49 +11:00
Matthew Barr
5537f9da78 Install pkgconfig file everywhere but Windows 2016-03-01 11:42:49 +11:00
Justin Viiret
060defe6c4 Rose: move more report handling work into program
Move report preconditions (bounds, exhaustion, etc) into program
instructions and use a more direct path to the user match callback than
the adaptor functions.

Report handling has been moved to new file src/report.h. Reporting from
EOD now uses the same instructions as normal report handling, rather
than its own.

Jump target tracking in rose_build_bytecode.cpp has been cleaned up.
2016-03-01 11:32:01 +11:00
Anatoly Burakov
87424713a7 Multibyte acceleration compile side 2016-03-01 11:21:39 +11:00
Anatoly Burakov
081b3ef369 Multibyte truffle runtime 2016-03-01 11:21:39 +11:00
Anatoly Burakov
47b17ade27 Multibyte shufti runtime 2016-03-01 11:21:39 +11:00
Anatoly Burakov
dd2ec6bdac Multibyte vermicelli runtime 2016-03-01 11:21:39 +11:00
Anatoly Burakov
77ff826bbf Adding bitmatchers 2016-03-01 11:21:39 +11:00
Matthew Barr
b460f47476 Build the tools dir only if the cmake file exists 2016-03-01 11:19:32 +11:00
Justin Viiret
b2ebdac642 rose: Extend program to handle literals, iterators
- cleanups
- add sparse iter instructions
- merge "root" and "sparse iter" programs together
- move program execution to new file program_runtime.h
- simplify EOD execution
2016-03-01 11:17:31 +11:00
Justin Viiret
9cb2233589 rose: Use an interpreter for role runtime
Replace much of the RoseRole structure with an interpreted program,
simplifying the Rose runtime and making it much more flexible.
2016-03-01 11:16:02 +11:00
Alex Coyte
a7d8dafb71 detach the sidecar 2016-03-01 11:13:23 +11:00
Alex Coyte
5e0d10d805 Allow lag on castle infixes to be reduced
Reducing lag allows for castles to be merged more effectively
2016-03-01 11:10:13 +11:00
Matthew Barr
a5944067d4 Bump version number 2015-12-18 14:37:29 +11:00
Matthew Barr
f65170da5b cmake: improve build paths for nested builds
If Hyperscan is built as a subproject of another cmake project, it helps to
refer to PROJECT_xx_DIR instead of CMAKE_xx_DIR, etc.
2015-11-10 14:36:39 +11:00
Matthew Barr
91343b00e9 Bump version number 2015-10-30 11:28:38 +11:00
Matthew Barr
ba0b2b788b cmake: collection of fixes 2015-10-30 11:28:38 +11:00
Matthew Barr
b77613802d Update CMake required min version to 2.8.11
RedHat/CentOS 7 ship with 2.8.11 so this is a sane minimum.
2015-10-30 11:28:37 +11:00
Matthew Barr
904e436f11 Initial commit of Hyperscan 2015-10-20 09:13:35 +11:00