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
Justin Viiret
9a82689d00
limex: more general CANNOT_DIE analysis
2017-04-26 15:19:35 +10:00
Justin Viiret
152552423f
limex: refactor non-accel loops into function
2017-04-26 15:19:35 +10:00
Justin Viiret
578277e535
limex_dump: dump LimEx type and flags in text
2017-04-26 15:19:35 +10:00
Justin Viiret
8713cfbd9e
limex: add CANNOT_DIE flag and loop without test
2017-04-26 15:19:35 +10:00
Alex Coyte
7920b1086b
default the move special functions
2017-04-26 15:19:35 +10:00
Alex Coyte
894e6835e6
ensure that engines added to the leftQueueMap are real rather than lookarounds
2017-04-26 15:19:33 +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
Justin Viiret
a2b2940f85
limex: move load from input closer to use
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
Matthew Barr
7533e3341e
Don't fail if sqlite is not present.
2017-04-26 15:18:38 +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
Justin Viiret
5fe524fbb3
rose: allow lits that squash to share fragments
2017-04-26 15:18:26 +10:00
Justin Viiret
18f843bcc1
rose: add CLEAR_WORK_DONE instruction
...
Preparatory work for allowing fragments to be shared between literals
that squash groups and those that don't.
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
Justin Viiret
7d23a7e2d3
som: move som_type into namespace ue2
2017-04-26 15:18:26 +10:00
Justin Viiret
a4df49dd66
unit: better output from expr_info unit tests
2017-04-26 15:18:25 +10:00
Justin Viiret
a871f70c25
ng_extparam: split up work and do per-comp reduce
...
This change breaks extparam processing up into:
- propagateExtendedParams: propagates min_length, min_offset and
max_offset into the reports on the graph
- reduceExtendedParams: runs graph reductions based on extparams
Then, we apply the reduce pass to the whole graph, and later as well to
each component after calc_components.
2017-04-26 15:18:22 +10:00
Justin Viiret
0a163b5535
rose: only use live reports for dedupe assignment
2017-04-26 15:18:13 +10:00
Justin Viiret
a1bc69f3dd
rose_build_groups: allow simple-exh lits to squash
2017-04-26 15:18:13 +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
1200f33116
ng_region: no need to copy enters
2017-04-26 15:18:13 +10:00
Justin Viiret
699ab4190a
ng_region: clean up and modernise
2017-04-26 15:18:13 +10:00
Justin Viiret
ca22edc9d3
ng_region: don't realloc exits
2017-04-26 15:18:13 +10:00
Justin Viiret
d63fdcd860
ng_region: simplify checkAndAddExitCandidate
2017-04-26 15:18:13 +10:00
Justin Viiret
7396c93990
ng_region: clean up refineExits
2017-04-26 15:18:13 +10:00
Justin Viiret
8823a8fbfd
ng_region: use flat_sets in exit_info
2017-04-26 15:18:13 +10:00
Justin Viiret
546091f819
ng_calc_components: filter vertices from ug
2017-04-26 15:18:13 +10:00
Justin Viiret
4b3ff085d3
ng_undirected: avoid parallel edge at construction
...
(Rather than using setS for out edges)
2017-04-26 15:18:13 +10:00
Justin Viiret
9724f8c3cc
ng_undirected: modernize code
2017-04-26 15:18:13 +10:00
Justin Viiret
560e522457
ng_calc_components: add Grey box control
2017-04-26 15:18:13 +10:00
Justin Viiret
ba867ebaff
ng_calc_components: rework to move graphs
...
Rather than cloning graphs for output, rework calc components so that it
moves them.
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
fadfab6d8c
Install example source in docdir/examples
2017-04-26 15:17:19 +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
Matthew Barr
01b91da1cd
Use the default allocator for std::vector
2017-04-26 15:17:19 +10:00
Alex Coyte
de52b30c3e
make rose responsible for dumping its bytecode
2017-04-26 15:17:19 +10:00