@@ -83,8 +83,10 @@ void ClusteringEngine::setTree(PhysicalHierarchy* tree)
8383}
8484
8585void ClusteringEngine::setHalos (
86- std::map<odb::dbInst*, HardMacro::Halo>& macro_to_halo)
86+ const HardMacro::Halo& default_halo,
87+ const std::map<odb::dbInst*, HardMacro::Halo>& macro_to_halo)
8788{
89+ default_halo_ = default_halo;
8890 macro_to_halo_ = macro_to_halo;
8991}
9092
@@ -315,10 +317,10 @@ void ClusteringEngine::reportDesignData()
315317 block_->dbuAreaToMicrons (design_metrics_->getStdCellArea ()),
316318 design_metrics_->getNumMacro (),
317319 block_->dbuAreaToMicrons (design_metrics_->getMacroArea ()),
318- block_->dbuToMicrons (tree_-> default_halo .left ),
319- block_->dbuToMicrons (tree_-> default_halo .bottom ),
320- block_->dbuToMicrons (tree_-> default_halo .right ),
321- block_->dbuToMicrons (tree_-> default_halo .top ),
320+ block_->dbuToMicrons (default_halo_ .left ),
321+ block_->dbuToMicrons (default_halo_ .bottom ),
322+ block_->dbuToMicrons (default_halo_ .right ),
323+ block_->dbuToMicrons (default_halo_ .top ),
322324 block_->dbuAreaToMicrons (tree_->macro_with_halo_area ),
323325 block_->dbuAreaToMicrons (design_metrics_->getStdCellArea ()
324326 + design_metrics_->getMacroArea ()),
@@ -2084,13 +2086,13 @@ void ClusteringEngine::createHardMacros()
20842086 if (inst->getHalo ()->isSoft ()) {
20852087 halo = HardMacro::Halo (inst->getHalo ());
20862088 } else {
2087- halo = {std::max (inst_halo.xMin (), tree_-> default_halo .left ),
2088- std::max (inst_halo.yMin (), tree_-> default_halo .bottom ),
2089- std::max (inst_halo.xMax (), tree_-> default_halo .right ),
2090- std::max (inst_halo.yMax (), tree_-> default_halo .top )};
2089+ halo = {std::max (inst_halo.xMin (), default_halo_ .left ),
2090+ std::max (inst_halo.yMin (), default_halo_ .bottom ),
2091+ std::max (inst_halo.xMax (), default_halo_ .right ),
2092+ std::max (inst_halo.yMax (), default_halo_ .top )};
20912093 }
20922094 } else {
2093- halo = tree_-> default_halo ;
2095+ halo = default_halo_ ;
20942096 }
20952097
20962098 auto macro = std::make_unique<HardMacro>(inst, halo);
0 commit comments