aboutsummaryrefslogtreecommitdiffstats
path: root/passes/pmgen/peepopt.cc
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2019-04-30 10:51:51 +0200
committerClifford Wolf <clifford@clifford.at>2019-04-30 10:51:51 +0200
commit4306bebe586dc3a6a954a6630b9f0292c1b1b1dd (patch)
treec1ce3ddfd05225ccea33288459b63dc1814902cf /passes/pmgen/peepopt.cc
parentd2d402e62567abe15873c0357b4e34b8f83d03cd (diff)
downloadyosys-4306bebe586dc3a6a954a6630b9f0292c1b1b1dd.tar.gz
yosys-4306bebe586dc3a6a954a6630b9f0292c1b1b1dd.tar.bz2
yosys-4306bebe586dc3a6a954a6630b9f0292c1b1b1dd.zip
pmgen progress
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Diffstat (limited to 'passes/pmgen/peepopt.cc')
-rw-r--r--passes/pmgen/peepopt.cc13
1 files changed, 10 insertions, 3 deletions
diff --git a/passes/pmgen/peepopt.cc b/passes/pmgen/peepopt.cc
index e9aa8e37a..0584878c3 100644
--- a/passes/pmgen/peepopt.cc
+++ b/passes/pmgen/peepopt.cc
@@ -19,11 +19,14 @@
#include "kernel/yosys.h"
#include "kernel/sigtools.h"
-#include "passes/pmgen/peepopt_pm.h"
USING_YOSYS_NAMESPACE
PRIVATE_NAMESPACE_BEGIN
+bool did_something;
+
+#include "passes/pmgen/peepopt_pm.h"
+
struct PeepoptPass : public Pass {
PeepoptPass() : Pass("peepopt", "collection of peephole optimizers") { }
void help() YS_OVERRIDE
@@ -51,8 +54,12 @@ struct PeepoptPass : public Pass {
extra_args(args, argidx, design);
for (auto module : design->selected_modules()) {
- peepopt_pm pm(module, module->selected_cells());
- pm.run_shiftmul();
+ did_something = true;
+ while (did_something) {
+ did_something = false;
+ peepopt_pm pm(module, module->selected_cells());
+ pm.run_shiftmul();
+ }
}
}
} PeepoptPass;