9 #include <unordered_set>
17 std::unordered_set<u32> parents_m1;
20 parents_m1.insert(m1->
get_id());
25 if (parents_m1.find(m2->
get_id()) != parents_m1.end())
36 if (modules.empty() && gates.empty())
40 std::unordered_set<Module*> modules_resolved;
43 for (
auto m : modules)
50 modules_resolved.insert(p);
53 for (
const auto&
g : gates)
55 modules_resolved.insert(
g->get_module());
58 auto module_list = std::vector<Module*>(modules_resolved.begin(), modules_resolved.end());
59 auto result = module_list[0];
60 for (
u32 i = 1; i < module_list.size(); ++i)
63 if (result->get_parent_module() ==
nullptr)
Module * get_parent_module() const
Module * firstCommonAncestor(std::unordered_set< Module * > modules, const std::unordered_set< Gate * > &gates)
QSet< u32 > parentModules(Gate *g)
QSet::iterator insert(const T &value)