mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-06-28 16:41:01 +03:00
rose: build fragments directly
This commit is contained in:
parent
79512bd5c3
commit
ea8d0bcb1c
@ -4722,31 +4722,18 @@ void buildLiteralPrograms(RoseBuildImpl &build, build_context &bc) {
|
|||||||
frag_to_final_map[m.second].insert(m.first);
|
frag_to_final_map[m.second].insert(m.first);
|
||||||
}
|
}
|
||||||
|
|
||||||
const u32 num_fragments = verify_u32(frag_to_final_map.size());
|
DEBUG_PRINTF("%zu fragments\n", build.fragments.size());
|
||||||
DEBUG_PRINTF("%u fragments\n", num_fragments);
|
|
||||||
|
|
||||||
auto lit_edge_map = findEdgesByLiteral(build);
|
auto lit_edge_map = findEdgesByLiteral(build);
|
||||||
|
|
||||||
vector<u32> litPrograms(num_fragments);
|
for (auto &frag : build.fragments) {
|
||||||
vector<u32> delayRebuildPrograms(num_fragments);
|
const auto &final_ids = frag_to_final_map[frag.fragment_id];
|
||||||
|
DEBUG_PRINTF("frag_id=%u, final_ids=[%s]\n", frag.fragment_id,
|
||||||
for (u32 frag_id = 0; frag_id != num_fragments; ++frag_id) {
|
|
||||||
const auto &final_ids = frag_to_final_map[frag_id];
|
|
||||||
DEBUG_PRINTF("frag_id=%u, final_ids=[%s]\n", frag_id,
|
|
||||||
as_string_list(final_ids).c_str());
|
as_string_list(final_ids).c_str());
|
||||||
|
frag.lit_program_offset =
|
||||||
litPrograms[frag_id] =
|
|
||||||
writeLiteralProgram(build, bc, final_ids, lit_edge_map);
|
writeLiteralProgram(build, bc, final_ids, lit_edge_map);
|
||||||
delayRebuildPrograms[frag_id] =
|
frag.delay_program_offset =
|
||||||
buildDelayRebuildProgram(build, bc, final_ids);
|
buildDelayRebuildProgram(build, bc, final_ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update LitFragment entries.
|
|
||||||
for (const auto &fragment_id : build.final_to_frag_map | map_values) {
|
|
||||||
auto &frag = build.fragments.at(fragment_id);
|
|
||||||
frag.lit_program_offset = litPrograms[frag.fragment_id];
|
|
||||||
frag.delay_program_offset = delayRebuildPrograms[frag.fragment_id];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static
|
static
|
||||||
|
Loading…
x
Reference in New Issue
Block a user