diff options
author | Clifford Wolf <clifford@clifford.at> | 2019-06-05 09:50:15 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-05 09:50:15 +0200 |
commit | 00d32eb73dd636a5cf4f6a580caa3c22be016e02 (patch) | |
tree | 1aabcea9e21d3b5f412bb5d028f50a02db2d2f40 /passes/cmds | |
parent | 4190d7c09477f4bdd35cbd7bf5388254764b2321 (diff) | |
parent | f06cb75b930d6ef5d8f4f12825ce0ef8f296ce17 (diff) | |
download | yosys-00d32eb73dd636a5cf4f6a580caa3c22be016e02.tar.gz yosys-00d32eb73dd636a5cf4f6a580caa3c22be016e02.tar.bz2 yosys-00d32eb73dd636a5cf4f6a580caa3c22be016e02.zip |
Merge pull request #999 from jakobwenzel/setundefInitFix
initialize more registers in setundef -init
Diffstat (limited to 'passes/cmds')
-rw-r--r-- | passes/cmds/setundef.cc | 39 |
1 files changed, 23 insertions, 16 deletions
diff --git a/passes/cmds/setundef.cc b/passes/cmds/setundef.cc index f6949c820..5b43d528c 100644 --- a/passes/cmds/setundef.cc +++ b/passes/cmds/setundef.cc @@ -404,22 +404,29 @@ struct SetundefPass : public Pass { initwires.insert(wire); } - for (int wire_types = 0; wire_types < 2; wire_types++) - for (auto wire : module->wires()) - { - if (wire->name[0] == (wire_types ? '\\' : '$')) - next_wire: - continue; - - for (auto bit : sigmap(wire)) - if (!ffbits.count(bit)) - goto next_wire; - - for (auto bit : sigmap(wire)) - ffbits.erase(bit); - - initwires.insert(wire); - } + for (int wire_types = 0; wire_types < 2; wire_types++) { + pool<SigBit> ffbitsToErase; + for (auto wire : module->wires()) { + if (wire->name[0] == (wire_types ? '\\' : '$')) { + next_wire: + continue; + } + + for (auto bit : sigmap(wire)) + if (!ffbits.count(bit)) { + goto next_wire; + } + + for (auto bit : sigmap(wire)) { + ffbitsToErase.insert(bit); + } + + initwires.insert(wire); + } + for (const auto &bit : ffbitsToErase) { + ffbits.erase(bit); + } + } for (auto wire : initwires) { |