zlktree: replace std::vector<bool> by bitvect in ACD
On the example from previous patch, the number of instruction fetches goes from 18490399159 down to 18248898077. * spot/twaalgos/zlktree.cc, spot/twaalgos/zlktree.hh (acd): Use bitvect instead of std::vector<bool> in nodes. This make is easier to update an edge of a bitvector shared by multiple nodes set after pruning non-maximal sets from an SCC. Also compute the set of states hit by the edges at the very end, once all nodes are known. * spot/twaalgos/sccinfo.cc, spot/twaalgos/sccinfo.hh, spot/twaalgos/genem.cc, spot/twaalgos/genem.hh: Adjust to work with bitvect as filter.
This commit is contained in:
parent
6aa2079079
commit
2d1cb0ddcd
6 changed files with 41 additions and 33 deletions
|
|
@ -888,7 +888,7 @@ namespace spot
|
|||
if (auto choice = f(e, e.dst, si->get_filter_data());
|
||||
choice != edge_filter_choice::keep)
|
||||
return choice;
|
||||
if (!(*d.keep_)[d.aut_->edge_number(e)] || (d.cut_sets_ & e.acc))
|
||||
if (!(*d.keep_).get(d.aut_->edge_number(e)) || (d.cut_sets_ & e.acc))
|
||||
return edge_filter_choice::cut;
|
||||
return edge_filter_choice::keep;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue