diff options
author | Clifford Wolf <clifford@clifford.at> | 2019-04-30 10:51:51 +0200 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2019-04-30 10:51:51 +0200 |
commit | 4306bebe586dc3a6a954a6630b9f0292c1b1b1dd (patch) | |
tree | c1ce3ddfd05225ccea33288459b63dc1814902cf /passes/pmgen/peepopt.cc | |
parent | d2d402e62567abe15873c0357b4e34b8f83d03cd (diff) | |
download | yosys-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.cc | 13 |
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; |