-
Notifications
You must be signed in to change notification settings - Fork 427
Closed
Description
In the GreedyCandidateSelector class, used within the packer, a list of feasible blocks is maintained which is used to select the next candidate to propose:
vtr-verilog-to-routing/vpr/src/pack/greedy_candidate_selector.h
Lines 86 to 91 in e46e9c2
/// @brief Array of feasible blocks to select from [0..max_array_size-1] | |
/// | |
/// Sorted in ascending gain order so that the last cluster_ctx.blocks is | |
/// the most desirable (this makes it easy to pop blocks off the list. | |
std::vector<t_pack_molecule*> feasible_blocks; | |
int num_feasible_blocks; |
Currently this is stored as a vector where it is ordered based on the gain of the block. To maintain the order, an insertion sort is used every time a block is added to the list. Not only is this code confusing to read, it may also be slow. This should instead be an std::priority_queue
.
Metadata
Metadata
Assignees
Labels
No labels