mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-10-10 00:02:24 +03:00
Rose: use program for all literal matches
Unifies all literal match paths so that the Rose program is used for all of them. This removes the previous specialised "direct report" and "multi direct report" paths. Some additional REPORT instruction work was necessary for this. Reworked literal construction path at compile time in prep for using program offsets as literal IDs. Completely removed the anchored log runtime, which is no longer worth the extra complexity.
This commit is contained in:
committed by
Matthew Barr
parent
b58d05dfec
commit
67b9784dae
@@ -122,8 +122,6 @@ struct RoseContext {
|
||||
RoseCallback cb;
|
||||
RoseCallbackSom cb_som;
|
||||
u32 filledDelayedSlots;
|
||||
u32 curr_anchored_loc; /**< last read/written row */
|
||||
u32 curr_row_offset; /**< last read/written entry */
|
||||
u32 curr_qi; /**< currently executing main queue index during
|
||||
* \ref nfaQueueExec */
|
||||
};
|
||||
@@ -158,15 +156,11 @@ struct ALIGN_CL_DIRECTIVE hs_scratch {
|
||||
struct fatbit *aqa; /**< active queue array; fatbit of queues that are valid
|
||||
* & active */
|
||||
struct fatbit **delay_slots;
|
||||
struct fatbit **am_log;
|
||||
struct fatbit **al_log;
|
||||
u64a am_log_sum;
|
||||
u64a al_log_sum;
|
||||
struct catchup_pq catchup_pq;
|
||||
struct core_info core_info;
|
||||
struct match_deduper deduper;
|
||||
u32 anchored_region_len;
|
||||
u32 anchored_region_width;
|
||||
u32 anchored_literal_region_len;
|
||||
u32 anchored_literal_count;
|
||||
u32 delay_count;
|
||||
@@ -192,11 +186,6 @@ struct hs_scratch *tctxtToScratch(struct RoseContext *tctxt) {
|
||||
((char *)tctxt - offsetof(struct hs_scratch, tctxt));
|
||||
}
|
||||
|
||||
static really_inline
|
||||
struct fatbit **getAnchoredLog(struct hs_scratch *scratch) {
|
||||
return scratch->am_log;
|
||||
}
|
||||
|
||||
/* array of fatbit ptr; TODO: why not an array of fatbits? */
|
||||
static really_inline
|
||||
struct fatbit **getAnchoredLiteralLog(struct hs_scratch *scratch) {
|
||||
|
Reference in New Issue
Block a user