Further clean up `passes/techmap/techmap.cc`.
authorAlberto Gonzalez <boqwxp@airmail.cc>
Mon, 20 Apr 2020 21:57:23 +0000 (21:57 +0000)
committerAlberto Gonzalez <boqwxp@airmail.cc>
Thu, 14 May 2020 20:06:54 +0000 (20:06 +0000)
Co-Authored-By: Eddie Hung <eddie@fpgeh.com>
passes/techmap/techmap.cc

index d137365c2cff528dd58d6a3a51fb6a72ef029e57..898aceccd59ba4eaf097322ff70f24c71efafd74 100644 (file)
@@ -568,7 +568,7 @@ struct TechmapWorker
                        {
                                IdString derived_name = tpl_name;
                                RTLIL::Module *tpl = map->module(tpl_name);
-                               dict<IdString, RTLIL::Const> parameters(cell->parameters.begin(), cell->parameters.end());
+                               dict<IdString, RTLIL::Const> parameters(cell->parameters);
 
                                if (tpl->get_blackbox_attribute(ignore_wb))
                                        continue;
@@ -782,16 +782,17 @@ struct TechmapWorker
                                        // do not register techmap_wrap modules with techmap_cache
                                } else {
                                        std::pair<IdString, dict<IdString, RTLIL::Const>> key(tpl_name, parameters);
-                                       if (techmap_cache.count(key) > 0) {
-                                               tpl = techmap_cache[key];
+                                       auto it = techmap_cache.find(key);
+                                       if (it != techmap_cache.end()) {
+                                               tpl = it->second;
                                        } else {
                                                if (parameters.size() != 0) {
                                                        mkdebug.on();
-                                                       derived_name = tpl->derive(map, dict<IdString, RTLIL::Const>(parameters.begin(), parameters.end()));
+                                                       derived_name = tpl->derive(map, parameters);
                                                        tpl = map->module(derived_name);
                                                        log_continue = true;
                                                }
-                                               techmap_cache[key] = tpl;
+                                               techmap_cache.emplace(std::move(key), tpl);
                                        }
                                }