Justin Viiret
d9bac2bdb3
teddy: fix forward decl (namespace ue2)
2017-04-26 15:19:36 +10:00
Justin Viiret
3590f73151
fdr: use bytecode_ptr in fdr/teddy compilers
2017-04-26 15:19:36 +10:00
Justin Viiret
2698e534e4
fdr_confirm_compile: use bytecode_ptr
2017-04-26 15:19:35 +10:00
Justin Viiret
97516eccb6
fdr: use bytecode_ptr internally
2017-04-26 15:19:35 +10:00
Justin Viiret
1ef87c43ee
noncopyable: switch over from boost
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
Wang, Xiang W
448ce8a496
UE-3098: add unaligned load for andn without BMI
2017-04-26 15:17:03 +10:00
Wang, Xiang W
ffab97ca8c
FDR: delete dead confirm code
2017-04-26 15:16:27 +10:00
Wang, Xiang W
90216921b0
FDR: front end loop improvement
2017-04-26 15:11:10 +10:00
Justin Viiret
1be1293491
fdr: add grey box control for flood detection
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
Alex Coyte
8af4850d85
remove 'fast teddy' models
2017-04-26 14:43:43 +10:00
Justin Viiret
05b5265aff
fdr: remove dead code to do with link structures
2017-04-26 14:43:43 +10:00
Wang, Xiang W
df7bc22ae0
fdr: remove confirm split and pull-back
2017-04-26 14:43:09 +10:00
Justin Viiret
a55bbe657c
fdr: remove clamp on confirm size
2017-04-26 14:41:30 +10:00
Justin Viiret
12edb07f6e
fdr_compile: remove dead var
2017-04-26 14:41:29 +10:00
Justin Viiret
7984b26b14
fdr: rely on fixed size confirm structures
2017-04-26 14:41:29 +10:00
Justin Viiret
1b36594bda
fdr: simplify confirm for 8-byte fragments
2017-04-26 14:41:29 +10:00
Justin Viiret
07a6b6510c
rose/hwlm: limit literals to eight bytes
...
Rework HWLM to work over literals of eight bytes ("medium length"),
doing confirm in the Rose interpreter.
2017-04-26 14:41:29 +10:00
Justin Viiret
22edaad1dd
fdr: compile algo/heuristics improvements
...
These changes fix a small bug in the algorithm used for bucket
assignment in FDR's compile process, and also tweak a few of the
heuristics governing it.
2017-04-26 14:41:29 +10:00
Justin Viiret
f7cc8a618d
fdr: reduce confirm size to a u8
...
Also removes the flexible array member from the LitInfo structure.
2016-10-28 14:52:52 +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
89ddb85637
Remove enum typedef
2016-08-10 15:07:01 +10:00
Matthew Barr
cbd115f7fe
Don't shadow names
2016-08-10 15:06:57 +10:00
Justin Viiret
04634f2e87
flood_compile: escape chars in debugging
2016-08-10 15:06:05 +10:00
Justin Viiret
3d9a60d023
teddy: apply poison mask after prep_conf_ work
...
This simplifies the code, and removes all the all-ones p_mask uses,
which we were otherwise trusting the optimizer to remove.
2016-08-10 15:05:23 +10:00
Justin Viiret
9346a9090e
fdr: remove groups from struct FDR_Runtime_Args
2016-08-10 14:55:52 +10:00
Justin Viiret
42f23c2c91
teddy: no need to write control out at the end
2016-08-10 14:55:51 +10:00
Justin Viiret
b6a77b7329
teddy: remove extra control ptr
2016-08-10 14:55:51 +10:00
Justin Viiret
85f049edb2
fdr: remove extra control ptr
2016-08-10 14:55:51 +10:00
Matthew Barr
e3d416a6ea
Apply some consistency to the names we give shifts
2016-07-08 11:07:50 +10:00
Matthew Barr
1b3e795fc9
teddy: we only need the upper lane
...
Just use an extract, no need to shuffle first.
2016-07-08 11:07:50 +10:00
Matthew Barr
4d6934fc77
Move limex specific shuffle utils and ssse3 funcs
2016-07-08 11:07:50 +10:00
Justin Viiret
08d44fbed5
fdr: remove unused typedef 'ConfirmIndex'
2016-07-08 10:50:03 +10:00
Justin Viiret
ad74f3b895
fdr: use braced init syntax for pairs
2016-07-08 10:49:59 +10:00
Justin Viiret
b8cd169cde
teddy compile: rename loop var for readability
2016-07-08 10:49:56 +10:00
Justin Viiret
bae7a072ca
TeddySet: doesn't need a reference to lits
2016-07-08 10:49:52 +10:00
Justin Viiret
d626cb68e0
fdr_confirm_compile: clean up debugging code
2016-07-08 10:49:48 +10:00
Justin Viiret
37e7c96424
teddy_compile: modernise
2016-07-08 10:49:45 +10:00
Justin Viiret
88e6485e75
fdr_compile: tidy up
2016-07-08 10:49:42 +10:00
Justin Viiret
466fc940e5
fdr_streaming_compile: modernise loops, etc
2016-07-08 10:49:38 +10:00
Justin Viiret
57cd2331f5
fdr/teddy: switch over remaining smart ptrs
2016-07-08 10:49:35 +10:00
Justin Viiret
aebbd4f169
setupFullMultiConfs: return smart ptr
2016-07-08 10:49:31 +10:00
Justin Viiret
9953a026f8
setupFDRFloodControl: return smart ptr
2016-07-08 10:49:27 +10:00
Justin Viiret
81880d5a8d
fdr_confirm_compile: clean up for loops, iterators
2016-07-08 10:49:24 +10:00
Justin Viiret
139a472af0
fdr_confirm_compile: typedef -> using
2016-07-08 10:49:20 +10:00
Justin Viiret
69653aaec5
fdr_confirm_compile: use smart ptrs
2016-07-08 10:49:17 +10:00
Justin Viiret
964fc22b1a
fdr_compile_internal: remove unused decl
...
getFDRConfirm() is static.
2016-07-08 10:49:12 +10:00
Justin Viiret
142e74e8e6
fdr: teddy.h does not need to include hwlm.h
2016-05-24 11:26:13 +10:00