MCPcopy Create free account
hub / github.com/chipsalliance/Surelog / orderPackages

Method orderPackages

src/Design/Design.cpp:465–496  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

463}
464
465void Design::orderPackages() {
466 if (m_orderedPackageNames.empty()) return;
467 m_orderedPackageDefinitions.resize(m_orderedPackageNames.size());
468 uint32_t index = 0;
469 typedef std::map<std::string, int32_t> MultiDefCount;
470 MultiDefCount multiDefCount;
471 for (const auto& packageName : m_orderedPackageNames) {
472 for (uint32_t i = 0; i < m_packageDefinitions.size(); i++) {
473 PackageNamePackageDefinitionMultiMap::iterator pos =
474 m_packageDefinitions.begin();
475 std::advance(pos, i);
476 std::pair<const std::string, Package*>* name_pack;
477 name_pack = &(*pos);
478
479 if (packageName == name_pack->first) {
480 MultiDefCount::iterator itr = multiDefCount.find(packageName);
481 if (itr == multiDefCount.end()) {
482 multiDefCount.emplace(packageName, 1);
483 } else {
484 int32_t level = (*itr).second;
485 (*itr).second++;
486 pos = m_packageDefinitions.begin();
487 std::advance(pos, i + level);
488 name_pack = &(*pos);
489 }
490 m_orderedPackageDefinitions[index] = name_pack->second;
491 index++;
492 break;
493 }
494 }
495 }
496}
497
498Package* Design::addPackageDefinition(std::string_view packageName,
499 Package* package) {

Callers 1

compilation_Method · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected