diff options
-rw-r--r-- | passes/opt/opt_clean.cc | 26 | ||||
-rw-r--r-- | passes/opt/opt_const.cc | 2 | ||||
-rw-r--r-- | passes/opt/opt_muxtree.cc | 11 | ||||
-rw-r--r-- | passes/opt/opt_reduce.cc | 11 | ||||
-rw-r--r-- | passes/opt/opt_share.cc | 6 |
5 files changed, 20 insertions, 36 deletions
diff --git a/passes/opt/opt_clean.cc b/passes/opt/opt_clean.cc index 98f83dffc..447b7870f 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 55da987af..1758a34fa 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 94e29eca9..982870745 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 3e324ccef..5c36eb26b 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 66e29b66a..cce97d65b 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; } |