Alex Coyte
2b1a7da188
deterministic assembleProgramBlocks()
2017-05-30 13:59:00 +10:00
Justin Viiret
dfe1b8a2af
ng_depth: rename calcDepth functions, return vec
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
097d73c7ff
pass roleStateIndices by reference
2017-05-30 13:58:59 +10:00
Alex Coyte
b30e5021f1
Strengthen assert to indicate that q->end is less than q->cur
...
Coverity CID-167665
2017-05-30 13:58:59 +10:00
Justin Viiret
8b9328fe9e
rose: replace RoseLiteralMap use of bimap
...
This apoproach is simpler and more efficient for cases with large
numbers of literals.
2017-05-30 13:58:59 +10:00
Justin Viiret
a75b2ba2e5
rose: remove hasLiteral()
2017-05-30 13:58:59 +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
Alex Coyte
f74f475189
rose_program: merge RECORD_ANCHORED instruction into ANCHORED_DELAY
2017-05-30 13:58:32 +10:00
Alex Coyte
e24c38a85c
rose: minor improvements to avoid unneeded program instructions
...
- strip out lonely check handled instructions
- avoid producing programs for empty ghost roles
2017-05-30 13:58:32 +10:00
Alex Coyte
88fd95e38a
rose: minor clean up of catchup
...
- anchored dfa do not mean that catchup is required
- remove needsCatchup from rose bytecode as catchup is based on interpreter
2017-05-30 13:58:32 +10:00
Alex Coyte
a810bac8f7
be more selective about generating CLEAR_WORK_DONE instructions
2017-05-30 13:58:32 +10:00
Alex Coyte
cd424bdb45
minor clean up of rose_build_bytecode.cpp
...
- consistently name functions creating programs as makeFoo()
- replace writeLiteralProgram() with makeFragmentProgram()
- make applyFinalSpecialisation() part of writeProgram(bc, prog)
- seperate users who want to make a program for a single literal and fragments
2017-05-30 13:58:04 +10:00
Justin Viiret
0dd8536c6e
dfa: only accel init states from smwr path
...
If the small-write DFA has been built from literals, then we only need
to look for accel states at init.
2017-05-30 13:57:32 +10:00
Matthew Barr
19c7161d04
Use ue2::noncopyable instead of deleting copy ctor
2017-04-26 15:19:51 +10:00
Xu, Chi
2f9d063190
rose: fix CHECK_MULTIPATH_LOOKAROUND match difference bug
2017-04-26 15:19:49 +10:00
Justin Viiret
3e5a8c9c90
rose: eliminate roseSize, use bytecode_ptr size
2017-04-26 15:19:43 +10:00
Justin Viiret
d269b83dda
rose_build_long_lit: use bytecode_ptr
2017-04-26 15:19:43 +10:00
Justin Viiret
b6047ea5d4
rose: use bytecode_ptr for interpreter programs
2017-04-26 15:19:36 +10:00
Justin Viiret
0a3bd455ad
rose_build_bytecode: fix up indentation
2017-04-26 15:19:36 +10:00
Justin Viiret
63fe84c3f1
bytecode_ptr: add make_zeroed_bytecode_ptr
...
Rather than always zeroing memory.
2017-04-26 15:19:36 +10:00
Justin Viiret
a197074c5d
nfa: switch to using bytecode_ptr<NFA>
2017-04-26 15:19:36 +10:00
Justin Viiret
905ac78061
rose_build_anchored: use bytecode_ptr
2017-04-26 15:19:36 +10:00
Justin Viiret
7b17d418e7
hwlm: use bytecode_ptr for HWLM structures
2017-04-26 15:19:36 +10:00
Justin Viiret
813f1e3fb9
rose: use bytecode_ptr<RoseEngine>
2017-04-26 15:19:36 +10:00
Justin Viiret
a5ed9a9330
smallwrite_build: use bytecode_ptr
2017-04-26 15:19:35 +10:00
Justin Viiret
befdbb781d
rose_build_engine_blob: add func for bytecode_ptr
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
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
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
Justin Viiret
1ef87c43ee
noncopyable: switch over from boost
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
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
Alex Coyte
de52b30c3e
make rose responsible for dumping its bytecode
2017-04-26 15:17:19 +10:00
Alex Coyte
aeba9bc42c
rose_build_bytecode: make build_context, RoseBuildImpl params const
2017-04-26 15:17:19 +10:00
Justin Viiret
96fdca6f54
rose: guard writeNfaInfo from zero NFAs
2017-04-26 15:16:03 +10:00
Matthew Barr
c50a931bb4
Use std::move explicitly to avoid ambiguity with boost
2017-04-26 15:16:03 +10:00
Justin Viiret
60fc975c81
rose: use ROUNDUP_N for alignment
2017-04-26 15:11:10 +10:00
Justin Viiret
09d19c7c57
rose: remove unnecessary engine blob size check
2017-04-26 15:11:10 +10:00
Justin Viiret
2ec3019e04
rose: do state work before writing NfaInfo structs
2017-04-26 15:11:10 +10:00
Justin Viiret
96be1190ef
rose: move matcher bytecode to engine blob
2017-04-26 15:11:10 +10:00
Justin Viiret
b2aae060d8
rose: consistent naming in updateNfaState
2017-04-26 15:11:10 +10:00
Justin Viiret
6013fb1546
engine_blob: add_range() member function
2017-04-26 15:11:10 +10:00
Justin Viiret
10aa806d67
rose: clean up nfa state alloc
2017-04-26 15:11:10 +10:00
Justin Viiret
246f9f4f86
rose: update nfa info earlier, in engine blob
2017-04-26 15:11:10 +10:00