Matthew Barr
8a56d16d57
avx512: add basic functions to simd_utils
...
Extends the m512 type to use avx512 and also changes required
for limex.
2017-05-30 13:59:18 +10:00
Matthew Barr
fedd48489f
Allow the full cpuid flags for fat runtimes
2017-05-30 13:59:00 +10:00
Matthew Barr
9acda484fe
debug: use before set
2017-05-30 13:59:00 +10:00
Matthew Barr
423569ec82
De-multiaccel
2017-05-30 13:59:00 +10:00
Alex Coyte
2b1a7da188
deterministic assembleProgramBlocks()
2017-05-30 13:59:00 +10:00
Matthew Barr
c510b85bf1
whitespace changes
2017-05-30 13:59:00 +10:00
Justin Viiret
923e602601
ng_equivalence: use flat_set for VertexInfoSet
2017-05-30 13:59:00 +10:00
Justin Viiret
4a417c42e5
smallwrite: remove unnecessary assertion
...
The alpha remap array is always big enough to remap characters. Silences
Coverity issue CID 167663.
2017-05-30 13:59:00 +10:00
Alex Coyte
29ad557b9c
smwr: more aggressive pruning of overlong paths in NFA
2017-05-30 13:59:00 +10:00
Alex Coyte
725de51f89
determinisation: cleanups, remove shrinkStateSet
2017-05-30 13:59:00 +10:00
Justin Viiret
c17085ba35
ng_depth: modernize findLoopReachable
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
Justin Viiret
1a04d1330e
verify_types: add type static assertions
2017-05-30 13:59:00 +10:00
Justin Viiret
16a00074c6
verify_types: throw on failure
...
In release builds, we would like a verify_u32 (etc) failure to be more
than just an assertion.
2017-05-30 13:58:59 +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
Justin Viiret
8a7ac432c0
ue2_literal: add hash_value()
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
Justin Viiret
9258592d0b
report_manager: more use of unordered_map
2017-05-30 13:58:32 +10:00
Justin Viiret
1878b9a857
report_manager: use unordered externalIdMap
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
d809e73d45
smallwrite: cope when everything has been pruned
2017-05-30 13:57:32 +10:00
Justin Viiret
c6f5275acc
mcclellancompile: docs for main compile function
2017-05-30 13:57:32 +10:00
Justin Viiret
42fca877a7
smallwrite: prune trie when rose is high quality
2017-05-30 13:57:32 +10:00
Justin Viiret
388c16c550
smallwrite: construct DFA states in BFS order
2017-05-30 13:57:32 +10:00
Justin Viiret
10f52346ca
smallwrite: bfs ordering, refine daddy selection
2017-05-30 13:57:32 +10:00
Justin Viiret
3b3f6b739c
smallwrite: use failure map to set dfa daddy state
2017-05-30 13:57:32 +10:00
Justin Viiret
beac58fcb4
dfa: allow smwr to avoid lengthy daddy recalc
2017-05-30 13:57:32 +10:00
Justin Viiret
1538d90a9e
mcsheng_compile: factor out find_daddy_candidates
2017-05-30 13:57:32 +10:00
Justin Viiret
f5d769118a
mcclellancompile: factor out find_daddy_candidates
2017-05-30 13:57:32 +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
Justin Viiret
41d7aa8281
dfa: prune_overlong -> clear_deeper_reports
...
Rather than pruning states, we simply clear reports on states that are
too deep and allow Hopcroft minimisation to reduce the size of the DFA
afterwards.
2017-05-30 13:57:32 +10:00
Justin Viiret
8650a1a33f
dfa_min: clean up and improve minimize code
2017-05-30 13:57:32 +10:00
Justin Viiret
8fdef3f3be
accel_dfa_build_strat: use flat_map for small maps
2017-05-30 13:49:49 +10:00
Justin Viiret
c9be18c7e2
accel_dfa_build_strat: use small_vector for paths
2017-05-30 13:49:49 +10:00
Justin Viiret
304bac3286
mcclellancompile_util: reduce malloc traffic, tidy
2017-05-30 13:49:49 +10:00
Justin Viiret
4cc998e4ab
ng_limex_accel: fix broken termination condition
2017-05-30 13:49:49 +10:00
Matthew Barr
0b8f25a036
Ensure simd types are aligned to what we assume
...
Turns out Clang is sensitive to the location of the alignment attribute.
2017-05-30 13:48:38 +10:00
Justin Viiret
c0d7960954
ng_limex_accel: compile time speedups, tidy up
2017-05-30 13:48:38 +10:00
Justin Viiret
40f03929be
find_better_daddy: use flat_set for hinted states
2017-05-30 13:47:20 +10:00
Justin Viiret
698653766b
find_escape_strings: find outs2_broken faster
2017-05-30 13:47:20 +10:00