mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-06-28 16:41:01 +03:00
rose: write fragment ids into literal_info
This commit is contained in:
parent
1eae677d73
commit
8b25d83415
@ -5409,6 +5409,15 @@ aligned_unique_ptr<RoseEngine> RoseBuildImpl::buildFinalEngine(u32 minWidth) {
|
|||||||
allocateFinalLiteralId(*this, bc);
|
allocateFinalLiteralId(*this, bc);
|
||||||
final_to_frag_map = groupByFragment(*this, bc);
|
final_to_frag_map = groupByFragment(*this, bc);
|
||||||
|
|
||||||
|
// Write the fragment IDs into the literal_info structures.
|
||||||
|
for (auto &info : literal_info) {
|
||||||
|
if (info.final_id == MO_INVALID_IDX) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
assert(contains(final_to_frag_map, info.final_id));
|
||||||
|
info.fragment_id = final_to_frag_map.at(info.final_id).fragment_id;
|
||||||
|
}
|
||||||
|
|
||||||
auto anchored_dfas = buildAnchoredDfas(*this);
|
auto anchored_dfas = buildAnchoredDfas(*this);
|
||||||
|
|
||||||
bc.floatingMinLiteralMatchOffset =
|
bc.floatingMinLiteralMatchOffset =
|
||||||
|
@ -264,7 +264,8 @@ struct rose_literal_info {
|
|||||||
ue2::flat_set<RoseVertex> vertices;
|
ue2::flat_set<RoseVertex> vertices;
|
||||||
rose_group group_mask = 0;
|
rose_group group_mask = 0;
|
||||||
u32 undelayed_id = MO_INVALID_IDX;
|
u32 undelayed_id = MO_INVALID_IDX;
|
||||||
u32 final_id = MO_INVALID_IDX; /* id reported by fdr */
|
u32 final_id = MO_INVALID_IDX; // TODO: remove
|
||||||
|
u32 fragment_id = MO_INVALID_IDX; //!< ID corresponding to literal prog.
|
||||||
bool squash_group = false;
|
bool squash_group = false;
|
||||||
bool requires_benefits = false;
|
bool requires_benefits = false;
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user