diff options
author | Clifford Wolf <clifford@clifford.at> | 2016-11-06 00:03:35 +0100 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2016-11-06 00:03:35 +0100 |
commit | 914aa8a5d3c884df0eafbef87fdeb9c3594ebd5f (patch) | |
tree | 12225f822e438d7f8954a39a22999b27fb4997b4 /passes/cmds/scc.cc | |
parent | 2874914bcb45747b758508acd6a5884bfb206e8b (diff) | |
download | yosys-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.cc | 20 |
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); } |