rose: Extend the interpreter to handle more work

- Use program for EOD sparse iterator
- Use program for literal sparse iterator
- Eliminate RoseRole, RosePred, RoseVertexProps::role
- Small performance optimizations
This commit is contained in:
Justin Viiret
2015-12-04 16:17:28 +11:00
committed by Matthew Barr
parent 9cb2233589
commit d67c7583ea
15 changed files with 766 additions and 1359 deletions

View File

@@ -172,15 +172,6 @@ const struct internal_report *getInternalReport(const struct RoseEngine *t,
return reports + intId;
}
static really_inline
const struct RoseRole *getRoleByOffset(const struct RoseEngine *t, u32 offset) {
const struct RoseRole *tr = (const void *)((const char *)t + offset);
assert((size_t)(tr - getRoleTable(t)) < t->roleCount);
DEBUG_PRINTF("get root role %zu\n", tr - getRoleTable(t));
return tr;
}
#define ANCHORED_MATCH_SENTINEL (~0U)
static really_inline