3232// /////////////////////////////////////////////////////////////////////////////
3333#pragma once
3434#include < boost/icl/interval_set.hpp>
35+ #include < boost/unordered/unordered_flat_map.hpp>
3536
3637#include " db/tech/frTechObject.h"
3738#include " frDesign.h"
@@ -173,7 +174,7 @@ class GuideProcessor
173174 */
174175 void genGuides_split (std::vector<frRect>& rects,
175176 const TrackIntervalsByLayer& intvs,
176- const std::map <Point3D, frBlockObjectSet>& gcell_pin_map,
177+ const boost::unordered_flat_map <Point3D, frBlockObjectSet>& gcell_pin_map,
177178 frBlockObjectMap<std::set<Point3D>>& pin_gcell_map,
178179 bool via_access_only) const ;
179180 /* *
@@ -188,7 +189,7 @@ class GuideProcessor
188189 */
189190 void initGCellPinMap (
190191 const frNet* net,
191- std::map <Point3D, frBlockObjectSet>& gcell_pin_map) const ;
192+ boost::unordered_flat_map <Point3D, frBlockObjectSet>& gcell_pin_map) const ;
192193 /* *
193194 * Populates gcell_pin_map with the values associated with the passed term
194195 * based on pin shapes.
@@ -200,7 +201,7 @@ class GuideProcessor
200201 * @param gcell_pin_map The map to be populated with the results.
201202 * @param term The current pin we are processing.
202203 */
203- void mapPinShapesToGCells (std::map <Point3D, frBlockObjectSet>& gcell_pin_map,
204+ void mapPinShapesToGCells (boost::unordered_flat_map <Point3D, frBlockObjectSet>& gcell_pin_map,
204205 frBlockObject* term) const ;
205206 /* *
206207 * Populates gcell_pin_map with the values associated with the passed pin
@@ -214,7 +215,7 @@ class GuideProcessor
214215 * @param term The current pin we are processing.
215216 */
216217 void mapTermAccessPointsToGCells (
217- std::map <Point3D, frBlockObjectSet>& gcell_pin_map,
218+ boost::unordered_flat_map <Point3D, frBlockObjectSet>& gcell_pin_map,
218219 frBlockObject* pin) const ;
219220
220221 void initPinGCellMap (frNet* net,
@@ -423,7 +424,7 @@ class GuidePathFinder
423424 Logger* logger_{nullptr };
424425 frNet* net_{nullptr };
425426 bool force_feed_through_{false };
426- std::map <Point3D, std::set<int >> node_map_;
427+ boost::unordered_flat_map <Point3D, std::set<int >> node_map_;
427428 int guide_count_{0 };
428429 int node_count_{0 };
429430 bool allow_warnings_{false };
@@ -434,4 +435,4 @@ class GuidePathFinder
434435 frBlockObjectMap<std::set<Point3D>> pin_gcell_map_;
435436 std::vector<frRect> rects_;
436437};
437- } // namespace drt::io
438+ } // namespace drt::io
0 commit comments