Justin Viiret
1ff17a2ea3
rose: clear reports in removeFalsePaths
2016-08-10 15:06:01 +10:00
Justin Viiret
7f49958824
rose: only write out report programs if in use
...
These programs are only used by output-exposed engines.
2016-08-10 15:05:53 +10:00
Alex Coyte
d574557200
take mask overhang into account for hwlm accel, float min dist
2016-08-10 15:05:19 +10:00
Alex Coyte
5c5ec905cc
violet: initial implementation
2016-08-10 15:01:08 +10:00
Alex Coyte
b13a90e5d2
compiledump: allow disabling of early graphs for large compiles
2016-08-10 15:00:44 +10:00
Justin Viiret
9eb349a343
rose: expose smwr builder, tidy up engine build
2016-08-10 14:59:10 +10:00
Justin Viiret
a427a2843b
rose_build_anchored: clean up remapping
...
Note that there are no EOD reports in the anchored matcher raw_dfas.
2016-08-10 14:59:10 +10:00
Justin Viiret
210246af01
rose_build_anchored: remove unused forward decls
2016-08-10 14:59:10 +10:00
Justin Viiret
8754cbbd24
rose: use program offset, not final_id, in atable
...
This removes the need to look up the program offset in a table when
handling an anchored literal match.
2016-08-10 14:59:10 +10:00
Justin Viiret
4dbbc4eaa5
rose: add RECORD_ANCHORED instruction to program
...
Moves recordAnchoredLiteralMatch from an unconditional call in the
anchored callback to being driven by a program instruction.
2016-08-10 14:59:10 +10:00
Alex Coyte
981b59fd05
minor eager prefixes improvements
...
- count eager prefixes as always run engine when comparing with smwr
- only check if a prefix is vacuous after adding back literal fragments
2016-08-10 14:59:10 +10:00
Justin Viiret
aed2e721f4
rose: tidy up CHECK_{BYTE,MASK} dump code
2016-08-10 14:57:48 +10:00
Xu, Chi
4d7469392d
rose: add CHECK_BYTE/CHECK_MASK instructions
...
These instructions are specialisations of the "lookaround" code for
performance.
2016-08-10 14:57:48 +10:00
Justin Viiret
1bab10698f
rose_build_convert: improve history selection
...
Fixes assertion failures introduced by last commit.
2016-08-10 14:57:42 +10:00
Justin Viiret
3e96cd48ef
rose: sanity check CHECK_BOUNDS instruction
2016-08-10 14:57:36 +10:00
Justin Viiret
8d31607556
rose: only use anch history when there are bounds
2016-08-10 14:57:36 +10:00
Justin Viiret
6ec93a54c4
rose: only dump small-block table in block mode
2016-08-10 14:57:20 +10:00
Justin Viiret
39c6a0c7bf
rose: check literal bounds when building SB table
...
Literals that cannot lead to a report in the first ROSE_SMALL_BLOCK_LEN
bytes may be dropped from the small block table.
2016-08-10 14:56:12 +10:00
Justin Viiret
790683b641
rose: don't always dedupe small-block lit variants
2016-08-10 14:52:56 +10:00
Alex Coyte
691b08d170
use NGHolder::foo in favour of NFAGraph::foo
2016-08-10 14:52:56 +10:00
Alex Coyte
2471b770a8
we no longer store the history len
2016-08-10 14:52:56 +10:00
Alex Coyte
3a1429a621
group_weak_end is no longer used
2016-08-10 14:52:56 +10:00
Justin Viiret
d497a1259a
rose: use normal callback for pure-literal cases
2016-08-10 14:52:56 +10:00
Justin Viiret
7cc5346c11
assign groups: turn pair<pair> into a tuple
2016-08-10 14:49:24 +10:00
Justin Viiret
bfaa0acaea
rose: preserve lit properties when building masks
...
This fixes a bug with commit 6a6b0e5, which did not preserve the
requires_explode and requires_benefits properties when a new literal was
generated to add an HWLM and/cmp mask.
Also extends the requires_explode handling to allow masked literals.
2016-08-10 14:48:29 +10:00
Justin Viiret
e9cfbae68f
workaround for freebsd/clang/libc++ build issues
...
Rather than relying on set's constructor from {}, explicitly construct
the set.
2016-07-08 11:07: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
4d6934fc77
Move limex specific shuffle utils and ssse3 funcs
2016-07-08 11:07:50 +10:00
Justin Viiret
9f98f4c7b2
nfa: standardise callback start, end naming
2016-07-08 11:02:05 +10:00
Justin Viiret
cf9e40ae1c
nfa: unify NfaCallback and SomNfaCallback
...
Use just one callback type, with both start and end offsets.
2016-07-08 11:01:56 +10:00
Xiang Wang
9087d59be5
tamarama: add container engine for exclusive nfas
...
Add the new Tamarama engine that acts as a container for infix/suffix
engines that can be proven to run exclusively of one another.
This reduces stream state for pattern sets with many exclusive engines.
2016-07-08 11:01:34 +10:00
Justin Viiret
013dbd3b3c
rose: re-inline literal handling program exec
2016-07-08 11:01:34 +10:00
Justin Viiret
76d96809f8
rose: move roseRunProgram into its own unit
...
The roseRunProgram function had gotten very large for the number of
sites it was being inlined into, with negative effects on performance in
large cases. This change moves it into its own translation unit.
2016-07-08 11:01:34 +10:00
Alex Coyte
f166bc5658
allow some prefixes that may squash the literal match to run eagerly
2016-07-08 11:01:34 +10:00
Alex Coyte
8699e35c09
prevent merging the e and f tables if the ftable is squashable
2016-07-08 10:59:40 +10:00
Alex Coyte
575e8c06dc
only show floating groups to the floating table
2016-07-08 10:59:40 +10:00
Justin Viiret
1c2b0a271d
role aliasing: tidy up naming
2016-07-08 10:59:40 +10:00
Justin Viiret
1d18852dc9
role aliasing: unify map update code
2016-07-08 10:59:40 +10:00
Justin Viiret
6239805561
rose: don't build empty sparse iter subprograms
2016-07-08 10:59:40 +10:00
Justin Viiret
679042779a
role aliasing: use a reverse ghost map
2016-07-08 10:59:40 +10:00
Justin Viiret
1e5fcd5e80
tighten ghost vertex checks
2016-07-08 10:59:40 +10:00
Justin Viiret
0749f7c06d
rose: allow ghosts to be aliased
2016-07-08 10:59:40 +10:00
Justin Viiret
cdaf705a87
rose: pick up more prefix->lookaround conversions
2016-07-08 10:57:29 +10:00
Justin Viiret
d3c56b532b
rose build: dedupe hasLastByteHistorySucc func
2016-07-08 10:57:00 +10:00
Justin Viiret
cf8e8c90ff
eod: move stream eod code to stream.c
2016-07-08 10:55:36 +10:00
Justin Viiret
d5c1280b9f
eod: tidy up, rename to roseStreamEodExec
2016-07-08 10:55:36 +10:00
Justin Viiret
66e0b77aa4
block: unify roseBlockExec and roseBlockExec_i
2016-07-08 10:55:36 +10:00
Justin Viiret
513ac11dbc
block: move matcher invocations into functions
2016-07-08 10:55:36 +10:00
Justin Viiret
a9eba12cce
rose: inline block-mode eod check
2016-07-08 10:55:36 +10:00
Justin Viiret
159c09b70e
roseEnginesEod: trust the queue structure
2016-07-08 10:55:36 +10:00