}
                extra_args(args, argidx, design);
 
-               for (auto &it : design->modules_)
+               for (auto mod : design->selected_modules())
                {
-                       if (!design->selected_module(it.first))
-                               continue;
-
                        if (!top_mod && design->full_selection())
-                               if (it.second->get_bool_attribute("\\top"))
-                                       top_mod = it.second;
+                               if (mod->get_bool_attribute("\\top"))
+                                       top_mod = mod;
 
-                       statdata_t data(design, it.second, width_mode);
-                       mod_stat[it.first] = data;
+                       statdata_t data(design, mod, width_mode);
+                       mod_stat[mod->name] = data;
 
                        log("\n");
-                       log("=== %s%s ===\n", RTLIL::id2cstr(it.first), design->selected_whole_module(it.first) ? "" : " (partially selected)");
+                       log("=== %s%s ===\n", RTLIL::id2cstr(mod->name), design->selected_whole_module(mod->name) ? "" : " (partially selected)");
                        log("\n");
                        data.log_data();
                }