Skip to content

Commit bed49ed

Browse files
committed
fix compile errors after rebase
1 parent 89ed907 commit bed49ed

13 files changed

+2567
-285
lines changed

utils/fasm/test/wire.net.post_routing

Lines changed: 2532 additions & 0 deletions
Large diffs are not rendered by default.

utils/route_diag/src/main.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,7 @@ int main(int argc, const char **argv) {
347347
vpr_setup.Segments,
348348
is_flat);
349349
}
350-
free_routing_structs(net_list);
350+
free_routing_structs();
351351

352352
/* free data structures */
353353
vpr_free_all(net_list, Arch, vpr_setup);

vpr/src/base/place_and_route.cpp

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -223,8 +223,7 @@ int binary_search_place_and_route(const Netlist<>& placement_net_list,
223223
}
224224

225225
/* Save routing in case it is best. */
226-
save_routing(router_net_list,
227-
best_routing,
226+
save_routing(best_routing,
228227
route_ctx.clb_opins_used_locally,
229228
saved_clb_opins_used_locally);
230229

@@ -348,8 +347,7 @@ int binary_search_place_and_route(const Netlist<>& placement_net_list,
348347

349348
if (success && Fc_clipped == false) {
350349
final = current;
351-
save_routing(router_net_list,
352-
best_routing,
350+
save_routing(best_routing,
353351
route_ctx.clb_opins_used_locally,
354352
saved_clb_opins_used_locally);
355353

@@ -398,8 +396,7 @@ int binary_search_place_and_route(const Netlist<>& placement_net_list,
398396
router_opts.has_choking_spot,
399397
is_flat);
400398

401-
restore_routing(router_net_list,
402-
best_routing,
399+
restore_routing(best_routing,
403400
route_ctx.clb_opins_used_locally,
404401
saved_clb_opins_used_locally);
405402

vpr/src/place/timing_place_lookup.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ std::unique_ptr<PlaceDelayModel> compute_place_delay_model(const t_placer_opts&
210210
}
211211

212212
/*free all data structures that are no longer needed */
213-
free_routing_structs(net_list);
213+
free_routing_structs();
214214

215215
return place_delay_model;
216216
}

vpr/src/route/check_route.cpp

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -602,7 +602,6 @@ static bool check_non_configurable_edges(const Netlist<>& net_list,
602602
bool is_flat) {
603603
const auto& device_ctx = g_vpr_ctx.device();
604604
auto& route_ctx = g_vpr_ctx.mutable_routing();
605-
auto& cluster_ctx = g_vpr_ctx.clustering();
606605

607606
if(!route_ctx.rt_roots[net]) // no routing
608607
return true;
@@ -759,9 +758,7 @@ static bool check_non_configurable_edges(const Netlist<>& net_list,
759758
// are children of a configurable node have at least one sink.
760759
class StubFinder {
761760
public:
762-
StubFinder(const Netlist<>& net_list, bool is_flat)
763-
: net_list_(net_list)
764-
, is_flat_(is_flat) {}
761+
StubFinder() {}
765762

766763
// Checks specified net for stubs, return true if at least one stub is
767764
// found.
@@ -779,8 +776,6 @@ class StubFinder {
779776
// Note this is an ordered set so that node output is sorted by node
780777
// id.
781778
std::set<int> stub_nodes_;
782-
const Netlist<>& net_list_;
783-
bool is_flat_;
784779
};
785780

786781
//Cheks for stubs in a net's routing.
@@ -792,7 +787,7 @@ class StubFinder {
792787
void check_net_for_stubs(const Netlist<>& net_list,
793788
ParentNetId net,
794789
bool is_flat) {
795-
StubFinder stub_finder(net_list, is_flat);
790+
StubFinder stub_finder;
796791

797792
bool any_stubs = stub_finder.CheckNet(net);
798793
if (any_stubs) {
@@ -806,6 +801,7 @@ void check_net_for_stubs(const Netlist<>& net_list,
806801
inode, is_flat)
807802
.c_str());
808803
}
804+
print_route_tree(g_vpr_ctx.routing().rt_roots[net].value());
809805

810806
VPR_THROW(VPR_ERROR_ROUTE, msg.c_str());
811807
}

vpr/src/route/route_common.cpp

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -406,17 +406,11 @@ void init_route_structs(const Netlist<>& net_list,
406406
int bb_factor,
407407
bool has_choking_point,
408408
bool is_flat) {
409-
auto& cluster_ctx = g_vpr_ctx.clustering();
410409
auto& device_ctx = g_vpr_ctx.device();
411410
auto& route_ctx = g_vpr_ctx.mutable_routing();
412411

413-
// Free everything in current_rt
414-
//for(auto rt_node : route_ctx.current_rt){
415-
// free_route_tree(rt_node);
416-
//}
417-
418412
// Allocate and clear a new rt_roots
419-
route_ctx.rt_roots.resize(cluster_ctx.clb_nlist.nets().size());
413+
route_ctx.rt_roots.resize(net_list.nets().size());
420414
std::fill(route_ctx.rt_roots.begin(), route_ctx.rt_roots.end(), vtr::nullopt);
421415

422416
//Various look-ups

vpr/src/route/route_timing.cpp

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -125,15 +125,13 @@ static void setup_routing_resources(int itry,
125125
CBRR& connections_inf,
126126
std::vector<vtr::optional<RouteTreeNode&>>& rt_node_of_sink,
127127
const t_router_opts& router_opts,
128-
bool ripup_high_fanout_nets,
129-
bool is_flat);
128+
bool ripup_high_fanout_nets);
130129

131130
static bool timing_driven_check_net_delays(const Netlist<>& net_list,
132131
NetPinsMatrix<float>& net_delay,
133132
bool is_flat);
134133

135134
static bool should_route_net(ParentNetId net_id,
136-
const vtr::vector<ParentNetId, t_traceback>& net_trace,
137135
CBRR& connections_inf,
138136
bool if_force_reroute);
139137

@@ -204,8 +202,7 @@ static void generate_route_timing_reports(const t_router_opts& router_opts,
204202
bool is_flat);
205203

206204
static void prune_unused_non_configurable_nets(CBRR& connections_inf,
207-
const Netlist<>& net_list,
208-
bool is_flat);
205+
const Netlist<>& net_list);
209206

210207
static void init_net_delay_from_lookahead(const RouterLookahead& router_lookahead,
211208
const Netlist<>& net_list,
@@ -501,7 +498,7 @@ bool try_timing_driven_route_tmpl(const Netlist<>& net_list,
501498

502499
RouterStats router_stats;
503500
init_route_stats(router_stats);
504-
timing_driven_route_structs route_structs(std::max(get_max_pins_per_net(net_list) - 1, 0));
501+
timing_driven_route_structs route_structs(net_list);
505502
float prev_iter_cumm_time = 0;
506503
vtr::Timer iteration_timer;
507504
int num_net_bounding_boxes_updated = 0;
@@ -895,7 +892,7 @@ bool try_timing_driven_route_tmpl(const Netlist<>& net_list,
895892
router_ctx.rt_roots = best_routing;
896893
router_ctx.clb_opins_used_locally = best_clb_opins_used_locally;
897894

898-
prune_unused_non_configurable_nets(connections_inf, net_list, is_flat);
895+
prune_unused_non_configurable_nets(connections_inf, net_list);
899896

900897
if (timing_info) {
901898
VTR_LOG("Critical path: %g ns\n", 1e9 * best_routing_metrics.critical_path.delay());
@@ -955,7 +952,7 @@ bool try_timing_driven_route_net(ConnectionRouter& router,
955952
RouterStats& router_stats,
956953
std::vector<float> pin_criticality,
957954
std::vector<vtr::optional<RouteTreeNode&>>& rt_node_of_sink,
958-
ClbNetPinsMatrix<float>& net_delay,
955+
NetPinsMatrix<float>& net_delay,
959956
const ClusteredPinAtomPinsLookup& netlist_pin_lookup,
960957
std::shared_ptr<SetupHoldTimingInfo> timing_info,
961958
NetPinTimingInvalidator* pin_timing_invalidator,
@@ -981,7 +978,7 @@ bool try_timing_driven_route_net(ConnectionRouter& router,
981978
is_routed = true;
982979
} else if (net_list.net_is_ignored(net_id)) { /* Skip ignored nets. */
983980
is_routed = true;
984-
} else if (!(reroute_for_hold) && !should_route_net(net_id, route_ctx.trace, connections_inf, true)) {
981+
} else if (!(reroute_for_hold) && !should_route_net(net_id, connections_inf, true)) {
985982
is_routed = true;
986983
} else {
987984
// track time spent vs fanout
@@ -1085,8 +1082,7 @@ bool timing_driven_route_net(ConnectionRouter& router,
10851082
connections_inf,
10861083
rt_node_of_sink,
10871084
router_opts,
1088-
check_hold(router_opts, worst_neg_slack),
1089-
is_flat
1085+
check_hold(router_opts, worst_neg_slack)
10901086
);
10911087

10921088
VTR_ASSERT(route_ctx.rt_roots[net_id]);
@@ -1458,8 +1454,7 @@ static void setup_routing_resources(int itry,
14581454
CBRR& connections_inf,
14591455
std::vector<vtr::optional<RouteTreeNode&>>& rt_node_of_sink,
14601456
const t_router_opts& router_opts,
1461-
bool ripup_high_fanout_nets,
1462-
bool is_flat) {
1457+
bool ripup_high_fanout_nets) {
14631458
/* Build and return a partial route tree from the legal connections from last iteration.
14641459
* along the way do:
14651460
* update pathfinder costs to be accurate to the partial route tree
@@ -1510,7 +1505,7 @@ static void setup_routing_resources(int itry,
15101505
VTR_ASSERT_SAFE(is_valid_skeleton_tree(rt_root.value()));
15111506

15121507
// Skip this check if RCV is enabled, as RCV can use another method to cause reroutes
1513-
VTR_ASSERT_SAFE(should_route_net(net_id, route_ctx.trace, connections_inf, true) || router_opts.routing_budgets_algorithm == YOYO);
1508+
VTR_ASSERT_SAFE(should_route_net(net_id, connections_inf, true) || router_opts.routing_budgets_algorithm == YOYO);
15141509

15151510
// Prune the copy (using congestion data before subtraction)
15161511
vtr::optional<RouteTreeRoot&> rt_root_pruned = prune_route_tree(rt_root2, connections_inf);
@@ -2172,8 +2167,7 @@ static void generate_route_timing_reports(const t_router_opts& router_opts,
21722167
// non-configurable sets. This function tracks non-configurable set usage,
21732168
// and if the sets are unused, prunes them.
21742169
static void prune_unused_non_configurable_nets(CBRR& connections_inf,
2175-
const Netlist<>& net_list,
2176-
bool is_flat) {
2170+
const Netlist<>& net_list) {
21772171
auto& device_ctx = g_vpr_ctx.device();
21782172
auto& route_ctx = g_vpr_ctx.mutable_routing();
21792173

@@ -2183,7 +2177,6 @@ static void prune_unused_non_configurable_nets(CBRR& connections_inf,
21832177
continue;
21842178
RouteTreeRoot& rt_root = route_ctx.rt_roots[net_id].value();
21852179

2186-
21872180
connections_inf.prepare_routing_for_net(net_id);
21882181
connections_inf.clear_force_reroute_for_net();
21892182

vpr/src/route/route_timing.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#include <unordered_map>
33
#include <vector>
44
#include "connection_based_routing.h"
5+
#include "netlist.h"
56
#include "vpr_types.h"
67

78
#include "vpr_utils.h"
@@ -94,8 +95,8 @@ class timing_driven_route_structs {
9495
std::vector<int> sink_order; /* [1..max_pins_per_net-1] */
9596
std::vector<vtr::optional<RouteTreeNode&>> rt_node_of_sink; /* [1..max_pins_per_net-1] */
9697

97-
timing_driven_route_structs(){
98-
int max_sinks = std::max(get_max_pins_per_net() - 1, 0);
98+
timing_driven_route_structs(const Netlist<>& net_list){
99+
int max_sinks = std::max(get_max_pins_per_net(net_list) - 1, 0);
99100
pin_criticality.resize(max_sinks+1);
100101
sink_order.resize(max_sinks+1);
101102
rt_node_of_sink.resize(max_sinks+1);

0 commit comments

Comments
 (0)