summaryrefslogtreecommitdiff
path: root/passes
diff options
context:
space:
mode:
Diffstat (limited to 'passes')
-rw-r--r--passes/opt/opt_clean.cc26
-rw-r--r--passes/opt/opt_const.cc2
-rw-r--r--passes/opt/opt_muxtree.cc11
-rw-r--r--passes/opt/opt_reduce.cc11
-rw-r--r--passes/opt/opt_share.cc6
5 files changed, 20 insertions, 36 deletions
diff --git a/passes/opt/opt_clean.cc b/passes/opt/opt_clean.cc
index 98f83dff..447b7870 100644
--- a/passes/opt/opt_clean.cc
+++ b/passes/opt/opt_clean.cc
@@ -347,17 +347,10 @@ struct OptCleanPass : public Pass {
ct_reg.setup_internals_mem();
ct_reg.setup_stdcells_mem();
- for (auto mod : design->modules()) {
- if (!design->selected_whole_module(mod->name)) {
- if (design->selected(mod))
- log("Skipping module %s as it is only partially selected.\n", id2cstr(mod->name));
+ for (auto module : design->selected_whole_modules_warn()) {
+ if (module->has_processes_warn())
continue;
- }
- if (!mod->processes.empty()) {
- log("Skipping module %s as it contains processes.\n", mod->name.c_str());
- } else {
- rmunused_module(mod, purge_mode, true);
- }
+ rmunused_module(module, purge_mode, true);
}
ct.clear();
@@ -411,12 +404,13 @@ struct CleanPass : public Pass {
count_rm_cells = 0;
count_rm_wires = 0;
- for (auto mod : design->modules()) {
- if (design->selected_whole_module(mod->name) && mod->processes.empty())
- do {
- design->scratchpad_unset("opt.did_something");
- rmunused_module(mod, purge_mode, false);
- } while (design->scratchpad_get_bool("opt.did_something"));
+ for (auto mod : design->selected_whole_modules()) {
+ if (mod->has_processes())
+ continue;
+ do {
+ design->scratchpad_unset("opt.did_something");
+ rmunused_module(mod, purge_mode, false);
+ } while (design->scratchpad_get_bool("opt.did_something"));
}
if (count_rm_cells > 0 || count_rm_wires > 0)
diff --git a/passes/opt/opt_const.cc b/passes/opt/opt_const.cc
index 55da987a..1758a34f 100644
--- a/passes/opt/opt_const.cc
+++ b/passes/opt/opt_const.cc
@@ -1002,7 +1002,7 @@ struct OptConstPass : public Pass {
}
extra_args(args, argidx, design);
- for (auto module : design->modules())
+ for (auto module : design->selected_modules())
{
if (undriven)
replace_undriven(design, module);
diff --git a/passes/opt/opt_muxtree.cc b/passes/opt/opt_muxtree.cc
index 94e29eca..98287074 100644
--- a/passes/opt/opt_muxtree.cc
+++ b/passes/opt/opt_muxtree.cc
@@ -468,15 +468,10 @@ struct OptMuxtreePass : public Pass {
extra_args(args, 1, design);
int total_count = 0;
- for (auto mod : design->modules()) {
- if (!design->selected_whole_module(mod)) {
- if (design->selected(mod))
- log("Skipping module %s as it is only partially selected.\n", log_id(mod));
+ for (auto module : design->selected_whole_modules_warn()) {
+ if (module->has_processes_warn())
continue;
- }
- if (mod->has_processes_warn())
- continue;
- OptMuxtreeWorker worker(design, mod);
+ OptMuxtreeWorker worker(design, module);
total_count += worker.removed_count;
}
if (total_count)
diff --git a/passes/opt/opt_reduce.cc b/passes/opt/opt_reduce.cc
index 3e324cce..5c36eb26 100644
--- a/passes/opt/opt_reduce.cc
+++ b/passes/opt/opt_reduce.cc
@@ -371,16 +371,13 @@ struct OptReducePass : public Pass {
extra_args(args, argidx, design);
int total_count = 0;
- for (auto &mod_it : design->modules_) {
- if (!design->selected(mod_it.second))
- continue;
- do {
- OptReduceWorker worker(design, mod_it.second, do_fine);
+ for (auto module : design->selected_modules())
+ while (1) {
+ OptReduceWorker worker(design, module, do_fine);
total_count += worker.total_count;
if (worker.total_count == 0)
break;
- } while (1);
- }
+ }
if (total_count)
design->scratchpad_set_bool("opt.did_something", true);
diff --git a/passes/opt/opt_share.cc b/passes/opt/opt_share.cc
index 66e29b66..cce97d65 100644
--- a/passes/opt/opt_share.cc
+++ b/passes/opt/opt_share.cc
@@ -314,10 +314,8 @@ struct OptSharePass : public Pass {
extra_args(args, argidx, design);
int total_count = 0;
- for (auto &mod_it : design->modules_) {
- if (!design->selected(mod_it.second))
- continue;
- OptShareWorker worker(design, mod_it.second, mode_nomux);
+ for (auto module : design->selected_modules()) {
+ OptShareWorker worker(design, module, mode_nomux);
total_count += worker.total_count;
}