Function sequant::eval::enclosing_instances

Function Documentation

inline container::svector<LoopInstance> sequant::eval::enclosing_instances(OccurrenceRec const &occ, std::unordered_map<std::size_t, PointOccurrence> const &point_occ)

The loop instances enclosing occ, one per OccurrenceRec::ectx entry, each resolved through the occurrence that opened it (ectx_opener_point) and that opener’s stamps (opened_instance). point_occ is point_occurrences of the forest’s rich schedule.

Throws Exception when an entry cannot be resolved: the record names no opener for it, the opener is not in point_occ, opens no such mode, or carries no stamp for it. Each of those is a defect in the boulevard’s record, and a guess here (a label-only comparison, say) would turn it into a silently wrong schedule.