You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[ClusterLegalizer] Cleaned Up Cluster Placement Stats
Removed external access to the cluster placement stats.
Made the cluster palcement info private for each cluster. The cluster
placement info of each cluster was being shared per cluster
type. This caused issues when two clusters were being created at the
same time.
* @brief Move all the primitives from (in_flight and tried) maps to valid primitives and clear (in_flight and tried)
481
-
*/
482
-
voidflush_intermediate_queues();
483
-
484
-
/**
485
-
* @brief Move all the primitives from invalid to valid_primitives and clear the invalid map
486
-
*/
487
-
voidflush_invalid_queue();
488
-
489
-
/**
490
-
* @brief Return true if the in_flight map is empty (no primitive is in_flight currently)
491
-
*/
492
-
boolin_flight_empty();
493
-
494
-
/**
495
-
* @brief Return the type of the first element of the primitives currently being considered
496
-
*/
497
-
t_pb_type* in_flight_type();
498
-
499
-
/**
500
-
* @brief free the dynamically allocated memory for primitives
501
-
*/
502
-
voidfree_primitives();
503
-
504
-
private:
505
-
std::unordered_multimap<int, t_cluster_placement_primitive*> in_flight; ///<ptrs to primitives currently being considered to pack into
506
-
std::unordered_multimap<int, t_cluster_placement_primitive*> tried; ///<ptrs to primitives that are already tried but current logic block unable to pack to
507
-
std::unordered_multimap<int, t_cluster_placement_primitive*> invalid; ///<ptrs to primitives that are invalid (already occupied by another primitive in this cluster)
508
-
509
-
/**
510
-
* @brief iterate over elements of a queue and move its elements to valid_primitives
511
-
*
512
-
* @param queue the unordered_multimap to work on (e.g. in_flight, tried, or invalid)
0 commit comments