Skip to content

Commit 3f55f4b

Browse files
Merge pull request #3332 from verilog-to-routing/temp_remove_hash
Remove an unsed hash functor
2 parents 3d0cca9 + 7efa841 commit 3f55f4b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+187
-230
lines changed

libs/libarchfpga/src/arch_util.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -545,7 +545,7 @@ void ProcessLutClass(t_pb_type* lut_pb_type) {
545545
for (size_t i = 0; i < num_annotations; i++) {
546546
lut_pb_type->modes[0].interconnect[0].annotations[i].clock = lut_pb_type->annotations[i].clock;
547547
lut_pb_type->modes[0].interconnect[0].annotations[i].input_pins = lut_pb_type->annotations[i].input_pins;
548-
lut_pb_type->modes[0].interconnect[0].annotations[i].output_pins =lut_pb_type->annotations[i].output_pins;
548+
lut_pb_type->modes[0].interconnect[0].annotations[i].output_pins = lut_pb_type->annotations[i].output_pins;
549549
lut_pb_type->modes[0].interconnect[0].annotations[i].line_num = lut_pb_type->annotations[i].line_num;
550550
lut_pb_type->modes[0].interconnect[0].annotations[i].format = lut_pb_type->annotations[i].format;
551551
lut_pb_type->modes[0].interconnect[0].annotations[i].type = lut_pb_type->annotations[i].type;

libs/libarchfpga/src/physical_types_util.cpp

Lines changed: 29 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ static std::tuple<int, int, int, int, int> get_pin_index_for_inst(t_physical_til
155155
logical_block_idx = -1;
156156
pb_type_idx = 0;
157157
} else {
158-
auto logical_block = get_logical_block_from_pin_physical_num(type, pin_physical_num);
158+
t_logical_block_type_ptr logical_block = get_logical_block_from_pin_physical_num(type, pin_physical_num);
159159
auto pb_type = get_pb_pin_from_pin_physical_num(type, pin_physical_num)->parent_node->pb_type;
160160
VTR_ASSERT(logical_block != nullptr);
161161
logical_block_idx = logical_block->index;
@@ -236,10 +236,9 @@ static int get_logical_block_physical_pin_num_offset(t_physical_tile_type_ptr ph
236236
const t_sub_tile* curr_sub_tile,
237237
t_logical_block_type_ptr curr_logical_block,
238238
const int curr_relative_cap) {
239-
int offset;
240-
offset = get_sub_tile_inst_physical_pin_num_offset(physical_tile, curr_sub_tile, curr_relative_cap);
239+
int offset = get_sub_tile_inst_physical_pin_num_offset(physical_tile, curr_sub_tile, curr_relative_cap);
241240

242-
for (auto eq_site : curr_sub_tile->equivalent_sites) {
241+
for (t_logical_block_type_ptr eq_site : curr_sub_tile->equivalent_sites) {
243242
if (eq_site == curr_logical_block)
244243
break;
245244
offset += (int)eq_site->pin_logical_num_to_pb_pin_mapping.size();
@@ -255,13 +254,11 @@ static int get_pin_logical_num_from_pin_physical_num(t_physical_tile_type_ptr ph
255254
VTR_ASSERT(sub_tile_cap != -1);
256255
auto logical_block = get_logical_block_from_pin_physical_num(physical_tile, physical_num);
257256

258-
int pin_logical_num;
259-
260257
int offset = get_logical_block_physical_pin_num_offset(physical_tile,
261258
sub_tile,
262259
logical_block,
263260
sub_tile_cap);
264-
pin_logical_num = physical_num - offset;
261+
int pin_logical_num = physical_num - offset;
265262

266263
return pin_logical_num;
267264
}
@@ -273,7 +270,6 @@ static std::vector<int> get_pb_pin_src_pins(t_physical_tile_type_ptr physical_ty
273270
const t_pb_graph_pin* pin) {
274271
std::vector<int> driving_pins;
275272
const auto& edges = pin->input_edges;
276-
t_pb_graph_pin** connected_pins_ptr;
277273
int num_edges = pin->num_input_edges;
278274
int num_pins = 0;
279275

@@ -285,7 +281,7 @@ static std::vector<int> get_pb_pin_src_pins(t_physical_tile_type_ptr physical_ty
285281

286282
for (int edge_idx = 0; edge_idx < num_edges; edge_idx++) {
287283
const t_pb_graph_edge* pb_graph_edge = edges[edge_idx];
288-
connected_pins_ptr = pb_graph_edge->input_pins;
284+
t_pb_graph_pin** connected_pins_ptr = pb_graph_edge->input_pins;
289285
num_pins = pb_graph_edge->num_input_pins;
290286

291287
for (int pin_idx = 0; pin_idx < num_pins; pin_idx++) {
@@ -315,7 +311,6 @@ static std::vector<int> get_pb_pin_sink_pins(t_physical_tile_type_ptr physical_t
315311
const t_pb_graph_pin* pin) {
316312
std::vector<int> sink_pins;
317313
const auto& edges = pin->output_edges;
318-
t_pb_graph_pin** connected_pins_ptr;
319314
int num_edges = pin->num_output_edges;
320315
int num_pins = 0;
321316

@@ -327,7 +322,7 @@ static std::vector<int> get_pb_pin_sink_pins(t_physical_tile_type_ptr physical_t
327322

328323
for (int edge_idx = 0; edge_idx < num_edges; edge_idx++) {
329324
const t_pb_graph_edge* pb_graph_edge = edges[edge_idx];
330-
connected_pins_ptr = pb_graph_edge->output_pins;
325+
t_pb_graph_pin** connected_pins_ptr = pb_graph_edge->output_pins;
331326
num_pins = pb_graph_edge->num_output_pins;
332327

333328
for (int pin_idx = 0; pin_idx < num_pins; pin_idx++) {
@@ -392,12 +387,12 @@ static int get_num_reachable_sinks(t_physical_tile_type_ptr physical_tile,
392387
const auto& connected_sinks = pb_pin->connected_sinks_ptc;
393388

394389
// If ref_sink_num is not reachable by pin_physical_num return 0
395-
if (connected_sinks.find(ref_sink_num) == connected_sinks.end()) {
390+
if (!connected_sinks.contains(ref_sink_num)) {
396391
return 0;
397392
}
398393

399394
for (auto sink_num : sink_grp) {
400-
if (connected_sinks.find(sink_num) != connected_sinks.end()) {
395+
if (connected_sinks.contains(sink_num)) {
401396
num_reachable_sinks++;
402397
}
403398
}
@@ -431,7 +426,7 @@ int get_logical_block_physical_sub_tile_index(t_physical_tile_type_ptr physical_
431426
int sub_tile_index = ARCH_FPGA_UNDEFINED_VAL;
432427
for (const auto& sub_tile : physical_tile->sub_tiles) {
433428
auto eq_sites = sub_tile.equivalent_sites;
434-
auto it = std::find(eq_sites.begin(), eq_sites.end(), logical_block);
429+
auto it = std::ranges::find(eq_sites, logical_block);
435430
if (it != eq_sites.end()) {
436431
sub_tile_index = sub_tile.index;
437432
}
@@ -467,7 +462,7 @@ int get_logical_block_physical_sub_tile_index(t_physical_tile_type_ptr physical_
467462
int sub_tile_index = ARCH_FPGA_UNDEFINED_VAL;
468463
for (const auto& sub_tile : physical_tile->sub_tiles) {
469464
auto eq_sites = sub_tile.equivalent_sites;
470-
auto it = std::find(eq_sites.begin(), eq_sites.end(), logical_block);
465+
auto it = std::ranges::find(eq_sites, logical_block);
471466
if (it != eq_sites.end()
472467
&& (sub_tile.capacity.is_in_range(sub_tile_capacity))) {
473468
sub_tile_index = sub_tile.index;
@@ -497,13 +492,13 @@ t_logical_block_type_ptr pick_logical_type(t_physical_tile_type_ptr physical_til
497492

498493
bool is_tile_compatible(t_physical_tile_type_ptr physical_tile, t_logical_block_type_ptr logical_block) {
499494
const auto& equivalent_tiles = logical_block->equivalent_tiles;
500-
return std::find(equivalent_tiles.begin(), equivalent_tiles.end(), physical_tile) != equivalent_tiles.end();
495+
return std::ranges::find(equivalent_tiles, physical_tile) != equivalent_tiles.end();
501496
}
502497

503498
bool is_sub_tile_compatible(t_physical_tile_type_ptr physical_tile, t_logical_block_type_ptr logical_block, int sub_tile_loc) {
504499
bool capacity_compatible = false;
505-
for (auto& sub_tile : physical_tile->sub_tiles) {
506-
auto result = std::find(sub_tile.equivalent_sites.begin(), sub_tile.equivalent_sites.end(), logical_block);
500+
for (const t_sub_tile& sub_tile : physical_tile->sub_tiles) {
501+
auto result = std::ranges::find(sub_tile.equivalent_sites, logical_block);
507502

508503
if (sub_tile.capacity.is_in_range(sub_tile_loc) && result != sub_tile.equivalent_sites.end()) {
509504
capacity_compatible = true;
@@ -687,18 +682,16 @@ std::vector<std::string> block_type_class_index_to_pin_names(t_physical_tile_typ
687682
pin_info.push_back(block_type_pin_index_to_pin_inst(type, pin_physical_num, is_flat));
688683
}
689684

690-
auto cmp = [](const t_pin_inst_port& lhs, const t_pin_inst_port& rhs) {
685+
// Ensure all the pins are in order
686+
std::ranges::sort(pin_info, [](const t_pin_inst_port& lhs, const t_pin_inst_port& rhs) noexcept {
691687
return lhs.pin_physical_num < rhs.pin_physical_num;
692-
};
688+
});
693689

694-
//Ensure all the pins are in order
695-
std::sort(pin_info.begin(), pin_info.end(), cmp);
696-
697-
//Determine ranges for each capacity instance and port pair
690+
// Determine ranges for each capacity instance and port pair
698691
std::map<std::tuple<int, int, int, int, int>, std::array<int, 4>> pin_ranges;
699-
for (const auto& pin_inf : pin_info) {
692+
for (const t_pin_inst_port& pin_inf : pin_info) {
700693
auto key = std::make_tuple(pin_inf.sub_tile_index, pin_inf.capacity_instance, pin_inf.logical_block_index, pin_inf.pb_type_idx, pin_inf.port_index);
701-
if (!pin_ranges.count(key)) {
694+
if (!pin_ranges.contains(key)) {
702695
pin_ranges[key][0] = pin_inf.pin_index_in_port;
703696
pin_ranges[key][1] = pin_inf.pin_index_in_port;
704697
pin_ranges[key][2] = pin_inf.pin_physical_num;
@@ -783,7 +776,7 @@ std::tuple<const t_sub_tile*, int> get_sub_tile_from_class_physical_num(t_physic
783776
int num_seen_class = (is_on_tile) ? 0 : (int)physical_tile->class_inf.size();
784777
int class_num_offset = num_seen_class;
785778

786-
for (auto& sub_tile : physical_tile->sub_tiles) {
779+
for (const t_sub_tile& sub_tile : physical_tile->sub_tiles) {
787780
int sub_tile_num_class = is_on_tile ? sub_tile.class_range.total_num() : get_sub_tile_num_internal_classes(&sub_tile);
788781
num_seen_class += sub_tile_num_class;
789782

@@ -801,8 +794,8 @@ std::tuple<const t_sub_tile*, int> get_sub_tile_from_class_physical_num(t_physic
801794

802795
t_logical_block_type_ptr get_logical_block_from_class_physical_num(t_physical_tile_type_ptr physical_tile,
803796
int class_physical_num) {
804-
auto pin_list = get_pin_list_from_class_physical_num(physical_tile, class_physical_num);
805-
VTR_ASSERT((int)pin_list.size() != 0);
797+
std::vector<int> pin_list = get_pin_list_from_class_physical_num(physical_tile, class_physical_num);
798+
VTR_ASSERT(!pin_list.empty());
806799
return get_logical_block_from_pin_physical_num(physical_tile, pin_list[0]);
807800
}
808801

@@ -895,7 +888,7 @@ std::tuple<const t_sub_tile*, int> get_sub_tile_from_pin_physical_num(t_physical
895888
int total_pin_counts = pin_on_tile ? 0 : physical_tile->num_pins;
896889
int pin_offset = total_pin_counts;
897890

898-
for (auto& sub_tile : physical_tile->sub_tiles) {
891+
for (const t_sub_tile& sub_tile : physical_tile->sub_tiles) {
899892
int sub_tile_num_pins = pin_on_tile ? sub_tile.num_phy_pins : sub_tile.total_num_internal_pins();
900893
total_pin_counts += sub_tile_num_pins;
901894

@@ -1269,9 +1262,7 @@ bool intra_tile_nodes_connected(t_physical_tile_type_ptr physical_type,
12691262
} else {
12701263
const t_pb_graph_pin* from_pb_graph_pin = get_pb_pin_from_pin_physical_num(physical_type, pin_physical_num);
12711264

1272-
auto res = from_pb_graph_pin->connected_sinks_ptc.find(sink_physical_num);
1273-
1274-
if (res == from_pb_graph_pin->connected_sinks_ptc.end()) {
1265+
if (!from_pb_graph_pin->connected_sinks_ptc.contains(sink_physical_num)) {
12751266
return false;
12761267
} else {
12771268
return true;
@@ -1304,8 +1295,7 @@ float get_pin_primitive_comb_delay(t_physical_tile_type_ptr physical_type,
13041295
pin_physical_num);
13051296
VTR_ASSERT(pb_pin->is_primitive_pin());
13061297

1307-
auto it = std::max_element(pb_pin->pin_timing_del_max.begin(), pb_pin->pin_timing_del_max.end());
1308-
1298+
auto it = std::ranges::max_element(pb_pin->pin_timing_del_max);
13091299
if (it == pb_pin->pin_timing_del_max.end()) {
13101300
return 0.;
13111301
} else {
@@ -1323,9 +1313,9 @@ bool classes_in_same_block(t_physical_tile_type_ptr physical_tile,
13231313
}
13241314

13251315
// Two functions are considered to be in the same group if share at least two level of blocks
1326-
const int NUM_SIMILAR_PB_NODE_THRESHOLD = 2;
1327-
auto first_class_pin_list = get_pin_list_from_class_physical_num(physical_tile, first_class_ptc_num);
1328-
auto second_class_pin_list = get_pin_list_from_class_physical_num(physical_tile, second_class_ptc_num);
1316+
constexpr int NUM_SIMILAR_PB_NODE_THRESHOLD = 2;
1317+
std::vector<int> first_class_pin_list = get_pin_list_from_class_physical_num(physical_tile, first_class_ptc_num);
1318+
std::vector<int> second_class_pin_list = get_pin_list_from_class_physical_num(physical_tile, second_class_ptc_num);
13291319

13301320
auto first_pb_graph_pin = get_pb_pin_from_pin_physical_num(physical_tile, first_class_pin_list[0]);
13311321
auto second_pb_graph_pin = get_pb_pin_from_pin_physical_num(physical_tile, second_class_pin_list[0]);
@@ -1340,7 +1330,7 @@ bool classes_in_same_block(t_physical_tile_type_ptr physical_tile,
13401330
int num_shared_pb_graph_node = 0;
13411331
curr_pb_graph_node = second_pb_graph_pin->parent_node;
13421332
while (curr_pb_graph_node != nullptr) {
1343-
auto find_res = std::find(first_pb_graph_node_chain.begin(), first_pb_graph_node_chain.end(), curr_pb_graph_node);
1333+
auto find_res = std::ranges::find(first_pb_graph_node_chain, curr_pb_graph_node);
13441334
if (find_res != first_pb_graph_node_chain.end()) {
13451335
num_shared_pb_graph_node++;
13461336
if (num_shared_pb_graph_node >= NUM_SIMILAR_PB_NODE_THRESHOLD)

libs/librrgraph/src/base/rr_graph_utils.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ void rr_set_sink_locs(const RRGraphView& rr_graph, RRGraphBuilder& rr_graph_buil
180180

181181
// See if we have encountered this tile type/ptc combo before, and used saved offset if so
182182
vtr::Point<int> new_loc(-1, -1);
183-
if ((physical_type_offsets.find(tile_type) != physical_type_offsets.end()) && (physical_type_offsets[tile_type].find(node_ptc) != physical_type_offsets[tile_type].end())) {
183+
if (physical_type_offsets.contains(tile_type) && physical_type_offsets[tile_type].contains(node_ptc)) {
184184
new_loc = tile_bb.bottom_left() + physical_type_offsets[tile_type].at(node_ptc);
185185
} else { /* We have not seen this tile type/ptc combo before */
186186
// The IPINs of the current SINK node
@@ -197,7 +197,7 @@ void rr_set_sink_locs(const RRGraphView& rr_graph, RRGraphBuilder& rr_graph_buil
197197
std::vector<float> y_coords;
198198

199199
// Add coordinates of each "cluster-edge" pin to vectors
200-
for (const auto& pin : sink_ipins) {
200+
for (const RRNodeId pin : sink_ipins) {
201201
int pin_x = rr_graph.node_xlow(pin);
202202
int pin_y = rr_graph.node_ylow(pin);
203203

@@ -212,7 +212,7 @@ void rr_set_sink_locs(const RRGraphView& rr_graph, RRGraphBuilder& rr_graph_buil
212212
(int)round(std::accumulate(y_coords.begin(), y_coords.end(), 0.f) / (double)y_coords.size())};
213213

214214
// Save offset for this tile/ptc combo
215-
if (physical_type_offsets.find(tile_type) == physical_type_offsets.end())
215+
if (!physical_type_offsets.contains(tile_type))
216216
physical_type_offsets[tile_type] = {};
217217

218218
physical_type_offsets[tile_type].insert({node_ptc, new_loc - tile_bb.bottom_left()});

libs/libvtrutil/src/vtr_strong_id.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -160,10 +160,10 @@ class StrongId;
160160
* friend them
161161
*/
162162
template<typename tag, typename T, T sentinel>
163-
constexpr bool operator==(const StrongId<tag, T, sentinel>& lhs, const StrongId<tag, T, sentinel>& rhs);
163+
constexpr bool operator==(const StrongId<tag, T, sentinel>& lhs, const StrongId<tag, T, sentinel>& rhs) noexcept;
164164

165165
template<typename tag, typename T, T sentinel>
166-
constexpr bool operator!=(const StrongId<tag, T, sentinel>& lhs, const StrongId<tag, T, sentinel>& rhs);
166+
constexpr bool operator!=(const StrongId<tag, T, sentinel>& lhs, const StrongId<tag, T, sentinel>& rhs) noexcept;
167167

168168
template<typename tag, typename T, T sentinel>
169169
constexpr bool operator<(const StrongId<tag, T, sentinel>& lhs, const StrongId<tag, T, sentinel>& rhs) noexcept;
@@ -211,9 +211,9 @@ class StrongId {
211211
* Note that since these are templated functions we provide an empty set of template parameters
212212
* after the function name (i.e. <>)
213213
*/
214-
friend constexpr bool operator== <>(const StrongId<tag, T, sentinel>& lhs, const StrongId<tag, T, sentinel>& rhs);
214+
friend constexpr bool operator== <>(const StrongId<tag, T, sentinel>& lhs, const StrongId<tag, T, sentinel>& rhs) noexcept;
215215
///@brief != operator
216-
friend constexpr bool operator!= <>(const StrongId<tag, T, sentinel>& lhs, const StrongId<tag, T, sentinel>& rhs);
216+
friend constexpr bool operator!= <>(const StrongId<tag, T, sentinel>& lhs, const StrongId<tag, T, sentinel>& rhs) noexcept;
217217
///@brief < operator
218218
friend constexpr bool operator< <>(const StrongId<tag, T, sentinel>& lhs, const StrongId<tag, T, sentinel>& rhs) noexcept;
219219

@@ -228,13 +228,13 @@ class StrongId {
228228

229229
///@brief == operator
230230
template<typename tag, typename T, T sentinel>
231-
constexpr bool operator==(const StrongId<tag, T, sentinel>& lhs, const StrongId<tag, T, sentinel>& rhs) {
231+
constexpr bool operator==(const StrongId<tag, T, sentinel>& lhs, const StrongId<tag, T, sentinel>& rhs) noexcept {
232232
return lhs.id_ == rhs.id_;
233233
}
234234

235235
///@brief != operator
236236
template<typename tag, typename T, T sentinel>
237-
constexpr bool operator!=(const StrongId<tag, T, sentinel>& lhs, const StrongId<tag, T, sentinel>& rhs) {
237+
constexpr bool operator!=(const StrongId<tag, T, sentinel>& lhs, const StrongId<tag, T, sentinel>& rhs) noexcept {
238238
return !(lhs == rhs);
239239
}
240240

vpr/src/base/vpr_context.h

Lines changed: 9 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
class SetupHoldTimingInfo;
4545
class PostClusterDelayCalculator;
4646

47-
#endif /* NO_SERVER */
47+
#endif // NO_SERVER
4848

4949
struct t_rr_node_route_inf;
5050

@@ -143,22 +143,10 @@ struct TimingContext : public Context {
143143

144144
t_timing_analysis_profile_info stats;
145145

146-
/* Represents whether or not VPR should fail if timing constraints aren't met. */
146+
/// Represents whether VPR should fail if timing constraints aren't met.
147147
bool terminate_if_timing_fails = false;
148148
};
149149

150-
namespace std {
151-
template<>
152-
struct hash<std::tuple<int, int, short>> {
153-
std::size_t operator()(const std::tuple<int, int, short>& ok) const noexcept {
154-
std::size_t seed = std::hash<int>{}(std::get<0>(ok));
155-
vtr::hash_combine(seed, std::get<1>(ok));
156-
vtr::hash_combine(seed, std::get<2>(ok));
157-
return seed;
158-
}
159-
};
160-
} // namespace std
161-
162150
/**
163151
* @brief State relating the device
164152
*
@@ -200,11 +188,9 @@ struct DeviceContext : public Context {
200188
std::vector<t_physical_tile_type> physical_tile_types;
201189
std::vector<t_logical_block_type> logical_block_types;
202190

203-
/*
204-
* Keep which layer in multi-die FPGA require inter-cluster programmable routing resources [0..number_of_layers-1]
205-
* If a layer doesn't require inter-cluster programmable routing resources,
206-
* RRGraph generation will ignore building SBs and CBs for that specific layer.
207-
*/
191+
/// Keep which layer in multi-die FPGA require inter-cluster programmable routing resources [0..number_of_layers-1]
192+
/// If a layer doesn't require inter-cluster programmable routing resources,
193+
/// RRGraph generation will ignore building SBs and CBs for that specific layer.
208194
std::vector<bool> inter_cluster_prog_routing_resources;
209195

210196
/**
@@ -373,7 +359,7 @@ struct ClusteringContext : public Context {
373359
/**
374360
* @brief State relating to packing multithreading
375361
*
376-
* This contain data structures to synchronize multithreading of packing iterative improvement.
362+
* This contains data structures to synchronize multithreading of packing iterative improvement.
377363
*/
378364
struct PackingMultithreadingContext : public Context {
379365
vtr::vector<ClusterBlockId, bool> clb_in_flight;
@@ -770,7 +756,7 @@ struct ServerContext : public Context {
770756
*/
771757
std::shared_ptr<PostClusterDelayCalculator> routing_delay_calc;
772758
};
773-
#endif /* NO_SERVER */
759+
#endif // NO_SERVER
774760

775761
/**
776762
* @brief This object encapsulates VPR's state.
@@ -855,7 +841,7 @@ class VprContext : public Context {
855841
#ifndef NO_SERVER
856842
const ServerContext& server() const { return server_; }
857843
ServerContext& mutable_server() { return server_; }
858-
#endif /* NO_SERVER */
844+
#endif // NO_SERVER
859845

860846
private:
861847
DeviceContext device_;
@@ -873,7 +859,7 @@ class VprContext : public Context {
873859

874860
#ifndef NO_SERVER
875861
ServerContext server_;
876-
#endif /* NO_SERVER */
862+
#endif // NO_SERVER
877863

878864
PackingMultithreadingContext packing_multithreading_;
879865
};

0 commit comments

Comments
 (0)