aboutsummaryrefslogtreecommitdiffstats
path: root/passes/cmds/scc.cc
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2016-11-06 00:03:35 +0100
committerClifford Wolf <clifford@clifford.at>2016-11-06 00:03:35 +0100
commit914aa8a5d3c884df0eafbef87fdeb9c3594ebd5f (patch)
tree12225f822e438d7f8954a39a22999b27fb4997b4 /passes/cmds/scc.cc
parent2874914bcb45747b758508acd6a5884bfb206e8b (diff)
downloadyosys-914aa8a5d3c884df0eafbef87fdeb9c3594ebd5f.tar.gz
yosys-914aa8a5d3c884df0eafbef87fdeb9c3594ebd5f.tar.bz2
yosys-914aa8a5d3c884df0eafbef87fdeb9c3594ebd5f.zip
Bugfix in "scc" command
Diffstat (limited to 'passes/cmds/scc.cc')
-rw-r--r--passes/cmds/scc.cc20
1 files changed, 11 insertions, 9 deletions
diff --git a/passes/cmds/scc.cc b/passes/cmds/scc.cc
index bb6d74474..6b8f3f512 100644
--- a/passes/cmds/scc.cc
+++ b/passes/cmds/scc.cc
@@ -163,16 +163,8 @@ struct SccWorker
}
for (auto cell : workQueue)
- cellToNextCell[cell] = sigToNextCells.find(cellToNextSig[cell]);
-
- labelCounter = 0;
- cellLabels.clear();
-
- while (workQueue.size() > 0)
{
- RTLIL::Cell *cell = *workQueue.begin();
- log_assert(cellStack.size() == 0);
- cellDepth.clear();
+ cellToNextCell[cell] = sigToNextCells.find(cellToNextSig[cell]);
if (!nofeedbackMode && cellToNextCell[cell].count(cell)) {
log("Found an SCC:");
@@ -183,6 +175,16 @@ struct SccWorker
sccList.push_back(scc);
log("\n");
}
+ }
+
+ labelCounter = 0;
+ cellLabels.clear();
+
+ while (!workQueue.empty())
+ {
+ RTLIL::Cell *cell = *workQueue.begin();
+ log_assert(cellStack.size() == 0);
+ cellDepth.clear();
run(cell, 0, maxDepth);
}