diff --git a/passes/techmap/attrmap.cc b/passes/techmap/attrmap.cc index 96e65ff2e..58f5a47e5 100644 --- a/passes/techmap/attrmap.cc +++ b/passes/techmap/attrmap.cc @@ -270,26 +270,19 @@ struct AttrmapPass : public Pass { { for (auto module : design->selected_modules()) { - for (auto wire : module->selected_wires()) + for (auto wire : module->selected_members()) attrmap_apply(stringf("%s.%s", log_id(module), log_id(wire)), actions, wire->attributes); - for (auto cell : module->selected_cells()) - attrmap_apply(stringf("%s.%s", log_id(module), log_id(cell)), actions, cell->attributes); - - for (auto proc : module->processes) + for (auto proc : module->selected_processes()) { - if (!design->selected(module, proc.second)) - continue; - attrmap_apply(stringf("%s.%s", log_id(module), log_id(proc.first)), actions, proc.second->attributes); - - std::vector all_cases = {&proc.second->root_case}; + std::vector all_cases = {&proc->root_case}; while (!all_cases.empty()) { RTLIL::CaseRule *cs = all_cases.back(); all_cases.pop_back(); - attrmap_apply(stringf("%s.%s (case)", log_id(module), log_id(proc.first)), actions, cs->attributes); + attrmap_apply(stringf("%s.%s (case)", log_id(module), log_id(proc)), actions, cs->attributes); for (auto &sw : cs->switches) { - attrmap_apply(stringf("%s.%s (switch)", log_id(module), log_id(proc.first)), actions, sw->attributes); + attrmap_apply(stringf("%s.%s (switch)", log_id(module), log_id(proc)), actions, sw->attributes); all_cases.insert(all_cases.end(), sw->cases.begin(), sw->cases.end()); } }