]> git.ipfire.org Git - thirdparty/vectorscan.git/commitdiff
remove lit program tables from bytecode
authorJustin Viiret <justin.viiret@intel.com>
Tue, 31 Jan 2017 00:14:51 +0000 (11:14 +1100)
committerMatthew Barr <matthew.barr@intel.com>
Wed, 26 Apr 2017 04:49:51 +0000 (14:49 +1000)
src/rose/rose_build_bytecode.cpp
src/rose/rose_build_dump.cpp
src/rose/rose_internal.h

index 42142936b7b936f66745e867044805ebcdbae0b7..d8404db101b79959497e0c7374a0f54bcae6c19f 100644 (file)
@@ -4700,15 +4700,10 @@ map<u32, LitFragment> groupByFragment(const RoseBuildImpl &build) {
 /**
  * \brief Build the interpreter programs for each literal.
  *
- * Returns the following as a tuple:
- *
- * - base of the literal program list
- * - base of the delay rebuild program list
- * - total number of literal fragments
+ * Returns the total number of literal fragments.
  */
 static
-tuple<u32, u32, u32> buildLiteralPrograms(RoseBuildImpl &build,
-                                          build_context &bc) {
+u32 buildLiteralPrograms(RoseBuildImpl &build, build_context &bc) {
     // Build a reverse mapping from fragment -> final_id.
     map<u32, flat_set<u32>> frag_to_final_map;
     for (const auto &m : build.final_to_frag_map) {
@@ -4740,13 +4735,7 @@ tuple<u32, u32, u32> buildLiteralPrograms(RoseBuildImpl &build,
         frag.delay_program_offset = delayRebuildPrograms[frag.fragment_id];
     }
 
-    u32 litProgramsOffset =
-        bc.engine_blob.add(begin(litPrograms), end(litPrograms));
-    u32 delayRebuildProgramsOffset = bc.engine_blob.add(
-        begin(delayRebuildPrograms), end(delayRebuildPrograms));
-
-    return tuple<u32, u32, u32>{litProgramsOffset, delayRebuildProgramsOffset,
-                                num_fragments};
+    return num_fragments;
 }
 
 static
@@ -5475,12 +5464,7 @@ aligned_unique_ptr<RoseEngine> RoseBuildImpl::buildFinalEngine(u32 minWidth) {
                        queue_count - leftfixBeginQueue, leftInfoTable,
                        &laggedRoseCount, &historyRequired);
 
-    u32 litProgramOffset;
-    u32 litDelayRebuildProgramOffset;
-    u32 litProgramCount;
-    tie(litProgramOffset, litDelayRebuildProgramOffset, litProgramCount) =
-        buildLiteralPrograms(*this, bc);
-
+    u32 litProgramCount = buildLiteralPrograms(*this, bc);
     u32 delayProgramOffset = buildDelayPrograms(*this, bc);
     u32 anchoredProgramOffset = buildAnchoredPrograms(*this, bc);
 
@@ -5676,8 +5660,6 @@ aligned_unique_ptr<RoseEngine> RoseBuildImpl::buildFinalEngine(u32 minWidth) {
     engine->needsCatchup = bc.needs_catchup ? 1 : 0;
 
     engine->literalCount = litProgramCount;
-    engine->litProgramOffset = litProgramOffset;
-    engine->litDelayRebuildProgramOffset = litDelayRebuildProgramOffset;
     engine->reportProgramOffset = reportProgramOffset;
     engine->reportProgramCount = reportProgramCount;
     engine->delayProgramOffset = delayProgramOffset;
index 608141ed87f6189a504dfe43cb24ea81cedc5461..f5cc86f06711f6d11bd087f8b8485bd7630a10dd 100644 (file)
@@ -1783,8 +1783,6 @@ void roseDumpStructRaw(const RoseEngine *t, FILE *f) {
     DUMP_U32(t, eodmatcherMinWidth);
     DUMP_U32(t, amatcherMaxBiAnchoredWidth);
     DUMP_U32(t, fmatcherMaxBiAnchoredWidth);
-    DUMP_U32(t, litProgramOffset);
-    DUMP_U32(t, litDelayRebuildProgramOffset);
     DUMP_U32(t, reportProgramOffset);
     DUMP_U32(t, reportProgramCount);
     DUMP_U32(t, delayProgramOffset);
index 8e55a37d1d176e7aeb7786ddb781cbe2733aa846..c8f47041f5112e2d5fbe0ba163c0926293d7e0a3 100644 (file)
@@ -344,12 +344,6 @@ struct RoseEngine {
     u32 fmatcherMaxBiAnchoredWidth; /**< maximum number of bytes that can still
                                      * produce a match for a pattern involved
                                      * with the anchored table. */
-    /** \brief Offset of u32 array of program offsets for literals. */
-    u32 litProgramOffset;
-
-    /** \brief Offset of u32 array of delay rebuild program offsets for
-     * literals. */
-    u32 litDelayRebuildProgramOffset;
 
     /**
      * \brief Offset of u32 array of program offsets for reports used by