mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-06-28 16:41:01 +03:00
teddy: clean up compile to match fdr style
This commit is contained in:
parent
e9d85f7b51
commit
71bd1c8dfe
@ -313,14 +313,15 @@ bytecode_ptr<FDR> TeddyCompiler::build() {
|
|||||||
}
|
}
|
||||||
u32 maskWidth = eng.getNumBuckets() / 8;
|
u32 maskWidth = eng.getNumBuckets() / 8;
|
||||||
|
|
||||||
size_t headerSize = ROUNDUP_CL(sizeof(Teddy));
|
size_t headerSize = sizeof(Teddy);
|
||||||
size_t maskLen = ROUNDUP_CL(eng.numMasks * 16 * 2 * maskWidth);
|
size_t maskLen = eng.numMasks * 16 * 2 * maskWidth;
|
||||||
|
|
||||||
auto floodTable = setupFDRFloodControl(lits, eng, grey);
|
auto floodTable = setupFDRFloodControl(lits, eng, grey);
|
||||||
auto confirmTable = setupFullConfs(lits, eng, bucketToLits, make_small);
|
auto confirmTable = setupFullConfs(lits, eng, bucketToLits, make_small);
|
||||||
|
|
||||||
size_t size = headerSize + maskLen + ROUNDUP_CL(confirmTable.size()) +
|
// Note: we place each major structure here on a cacheline boundary.
|
||||||
floodTable.size();
|
size_t size = ROUNDUP_CL(headerSize) + ROUNDUP_CL(maskLen) +
|
||||||
|
ROUNDUP_CL(confirmTable.size()) + floodTable.size();
|
||||||
|
|
||||||
auto fdr = make_zeroed_bytecode_ptr<FDR>(size, 64);
|
auto fdr = make_zeroed_bytecode_ptr<FDR>(size, 64);
|
||||||
assert(fdr); // otherwise would have thrown std::bad_alloc
|
assert(fdr); // otherwise would have thrown std::bad_alloc
|
||||||
@ -333,7 +334,7 @@ bytecode_ptr<FDR> TeddyCompiler::build() {
|
|||||||
teddy->maxStringLen = verify_u32(maxLen(lits));
|
teddy->maxStringLen = verify_u32(maxLen(lits));
|
||||||
|
|
||||||
// Write confirm structures.
|
// Write confirm structures.
|
||||||
u8 *ptr = teddy_base + headerSize + maskLen;
|
u8 *ptr = teddy_base + ROUNDUP_CL(headerSize) + ROUNDUP_CL(maskLen);
|
||||||
assert(ISALIGNED_CL(ptr));
|
assert(ISALIGNED_CL(ptr));
|
||||||
teddy->confOffset = verify_u32(ptr - teddy_base);
|
teddy->confOffset = verify_u32(ptr - teddy_base);
|
||||||
memcpy(ptr, confirmTable.get(), confirmTable.size());
|
memcpy(ptr, confirmTable.get(), confirmTable.size());
|
||||||
@ -346,7 +347,7 @@ bytecode_ptr<FDR> TeddyCompiler::build() {
|
|||||||
ptr += floodTable.size();
|
ptr += floodTable.size();
|
||||||
|
|
||||||
// Write teddy masks.
|
// Write teddy masks.
|
||||||
u8 *baseMsk = teddy_base + headerSize;
|
u8 *baseMsk = teddy_base + ROUNDUP_CL(headerSize);
|
||||||
|
|
||||||
for (const auto &b2l : bucketToLits) {
|
for (const auto &b2l : bucketToLits) {
|
||||||
const u32 &bucket_id = b2l.first;
|
const u32 &bucket_id = b2l.first;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user