diff options
author | Eddie Hung <eddie@fpgeh.com> | 2019-08-23 14:32:17 -0700 |
---|---|---|
committer | Eddie Hung <eddie@fpgeh.com> | 2019-08-23 14:32:17 -0700 |
commit | 1d88887cfdbeedff7dce9024d8fb4ceb014cb2ef (patch) | |
tree | 2e9a2d955a7e13dea4531af29a4662d5f2f9ab4a | |
parent | 8ecfd55d5a02854abf2f59f4bc19ce94479b82fb (diff) | |
download | yosys-1d88887cfdbeedff7dce9024d8fb4ceb014cb2ef.tar.gz yosys-1d88887cfdbeedff7dce9024d8fb4ceb014cb2ef.tar.bz2 yosys-1d88887cfdbeedff7dce9024d8fb4ceb014cb2ef.zip |
Add a unique argument to pmgen's nusers()
-rw-r--r-- | passes/pmgen/pmgen.py | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/passes/pmgen/pmgen.py b/passes/pmgen/pmgen.py index 573722d68..2f2545c22 100644 --- a/passes/pmgen/pmgen.py +++ b/passes/pmgen/pmgen.py @@ -458,12 +458,16 @@ with open(outfile, "w") as f: print(" }", file=f) print("", file=f) - print(" int nusers(const SigSpec &sig) {", file=f) + print(" int nusers(const SigSpec &sig, bool unique=true) {", file=f) + print(" int i = 0;", file=f) print(" pool<Cell*> users;", file=f) print(" for (auto bit : sigmap(sig))", file=f) - print(" for (auto user : sigusers[bit])", file=f) - print(" users.insert(user);", file=f) - print(" return GetSize(users);", file=f) + print(" if (unique)", file=f); + print(" i += GetSize(sigusers[bit]);", file=f); + print(" else", file=f); + print(" for (auto user : sigusers[bit])", file=f) + print(" users.insert(user);", file=f) + print(" return unique ? GetSize(users) : i;", file=f) print(" }", file=f) print("", file=f) |