mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-06-28 16:41:01 +03:00
ng_violet: fix non-det in lookForCleanEarlySplits
This commit is contained in:
parent
d119dd95fd
commit
c58d9d04a1
@ -2529,15 +2529,22 @@ bool lookForCleanSplit(const NGHolder &h, const vector<RoseInEdge> &ee,
|
||||
static
|
||||
void lookForCleanEarlySplits(RoseInGraph &vg, const CompileContext &cc) {
|
||||
u32 gen = 0;
|
||||
set<RoseInVertex> prev = {getStart(vg)};
|
||||
|
||||
vector<RoseInVertex> prev = {getStart(vg)};
|
||||
|
||||
while (gen < MAX_DESIRED_CLEAN_SPLIT_DEPTH) {
|
||||
set<RoseInVertex> curr;
|
||||
/* collect vertices in edge order for determinism */
|
||||
vector<RoseInVertex> curr;
|
||||
set<RoseInVertex> curr_seen;
|
||||
for (RoseInVertex u : prev) {
|
||||
insert(&curr, adjacent_vertices(u, vg));
|
||||
for (auto v : adjacent_vertices_range(u, vg)) {
|
||||
if (curr_seen.insert(v).second) {
|
||||
curr.push_back(v);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
map<const NGHolder *, vector<RoseInEdge> > rightfixes;
|
||||
map<const NGHolder *, vector<RoseInEdge>> rightfixes;
|
||||
vector<NGHolder *> ordered_graphs;
|
||||
for (RoseInVertex v : curr) {
|
||||
for (const RoseInEdge &e : out_edges_range(v, vg)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user