@@ -95,7 +95,7 @@ static bool timing_driven_route_sink(ConnectionRouter& router,
95
95
const t_conn_cost_params cost_params,
96
96
const t_router_opts& router_opts,
97
97
RouteTree& tree,
98
- std::vector<vtr::optional<RouteTreeNode&>>& rt_node_of_sink,
98
+ std::vector<vtr::optional<const RouteTreeNode&>>& rt_node_of_sink,
99
99
SpatialRouteTreeLookup& spatial_rt_lookup,
100
100
RouterStats& router_stats,
101
101
route_budgets& budgeting_inf,
@@ -121,7 +121,7 @@ static void setup_routing_resources(int itry,
121
121
unsigned num_sinks,
122
122
int min_incremental_reroute_fanout,
123
123
CBRR& connections_inf,
124
- std::vector<vtr::optional<RouteTreeNode&>>& rt_node_of_sink,
124
+ std::vector<vtr::optional<const RouteTreeNode&>>& rt_node_of_sink,
125
125
const t_router_opts& router_opts,
126
126
bool ripup_high_fanout_nets);
127
127
@@ -130,7 +130,7 @@ static bool timing_driven_check_net_delays(const Netlist<>& net_list,
130
130
131
131
static void update_net_delays_from_route_tree (float * net_delay,
132
132
const Netlist<>& net_list,
133
- std::vector<vtr::optional<RouteTreeNode&>>& rt_node_of_sink,
133
+ std::vector<vtr::optional<const RouteTreeNode&>>& rt_node_of_sink,
134
134
ParentNetId inet,
135
135
TimingInfo* timing_info,
136
136
NetPinTimingInvalidator* pin_timing_invalidator);
@@ -957,7 +957,7 @@ bool try_timing_driven_route_net(ConnectionRouter& router,
957
957
CBRR& connections_inf,
958
958
RouterStats& router_stats,
959
959
std::vector<float >& pin_criticality,
960
- std::vector<vtr::optional<RouteTreeNode&>>& rt_node_of_sink,
960
+ std::vector<vtr::optional<const RouteTreeNode&>>& rt_node_of_sink,
961
961
NetPinsMatrix<float >& net_delay,
962
962
const ClusteredPinAtomPinsLookup& netlist_pin_lookup,
963
963
std::shared_ptr<SetupHoldTimingInfo> timing_info,
@@ -1044,7 +1044,7 @@ bool timing_driven_route_net(ConnectionRouter& router,
1044
1044
CBRR& connections_inf,
1045
1045
RouterStats& router_stats,
1046
1046
std::vector<float >& pin_criticality,
1047
- std::vector<vtr::optional<RouteTreeNode&>>& rt_node_of_sink,
1047
+ std::vector<vtr::optional<const RouteTreeNode&>>& rt_node_of_sink,
1048
1048
float * net_delay,
1049
1049
const ClusteredPinAtomPinsLookup& netlist_pin_lookup,
1050
1050
std::shared_ptr<SetupHoldTimingInfo> timing_info,
@@ -1288,7 +1288,7 @@ static bool timing_driven_pre_route_to_clock_root(ConnectionRouter& router,
1288
1288
* netlist pin, but which can be reached from the global clock root drive *
1289
1289
* points. Therefore, we can set the net pin index of the sink node to *
1290
1290
* OPEN (meaning illegal) as it is not meaningful for this sink. */
1291
- vtr::optional<RouteTreeNode&> new_branch, new_sink;
1291
+ vtr::optional<const RouteTreeNode&> new_branch, new_sink;
1292
1292
std::tie (new_branch, new_sink) = tree.update_from_heap (&cheapest, OPEN, ((high_fanout) ? &spatial_rt_lookup : nullptr ), is_flat);
1293
1293
1294
1294
VTR_ASSERT_DEBUG (!high_fanout || validate_route_tree_spatial_lookup (tree.root (), spatial_rt_lookup));
@@ -1324,7 +1324,7 @@ static bool timing_driven_route_sink(ConnectionRouter& router,
1324
1324
const t_conn_cost_params cost_params,
1325
1325
const t_router_opts& router_opts,
1326
1326
RouteTree& tree,
1327
- std::vector<vtr::optional<RouteTreeNode&>>& rt_node_of_sink,
1327
+ std::vector<vtr::optional<const RouteTreeNode&>>& rt_node_of_sink,
1328
1328
SpatialRouteTreeLookup& spatial_rt_lookup,
1329
1329
RouterStats& router_stats,
1330
1330
route_budgets& budgeting_inf,
@@ -1395,7 +1395,7 @@ static bool timing_driven_route_sink(ConnectionRouter& router,
1395
1395
int inode = cheapest.index ;
1396
1396
route_ctx.rr_node_route_inf [inode].target_flag --; /* Connected to this SINK. */
1397
1397
1398
- vtr::optional<RouteTreeNode&> new_branch, new_sink;
1398
+ vtr::optional<const RouteTreeNode&> new_branch, new_sink;
1399
1399
std::tie (new_branch, new_sink) = tree.update_from_heap (&cheapest, target_pin, ((high_fanout) ? &spatial_rt_lookup : nullptr ), is_flat);
1400
1400
1401
1401
VTR_ASSERT_DEBUG (!high_fanout || validate_route_tree_spatial_lookup (tree.root (), spatial_rt_lookup));
@@ -1431,7 +1431,7 @@ static void setup_routing_resources(int itry,
1431
1431
unsigned num_sinks,
1432
1432
int min_incremental_reroute_fanout,
1433
1433
CBRR& connections_inf,
1434
- std::vector<vtr::optional<RouteTreeNode&>>& rt_node_of_sink,
1434
+ std::vector<vtr::optional<const RouteTreeNode&>>& rt_node_of_sink,
1435
1435
const t_router_opts& router_opts,
1436
1436
bool ripup_high_fanout_nets) {
1437
1437
/* Build and return a partial route tree from the legal connections from last iteration.
@@ -1609,7 +1609,7 @@ static bool timing_driven_check_net_delays(const Netlist<>& net_list, NetPinsMat
1609
1609
* the route_tree to the net_delay array. */
1610
1610
static void update_net_delays_from_route_tree (float * net_delay,
1611
1611
const Netlist<>& net_list,
1612
- std::vector<vtr::optional<RouteTreeNode&>>& rt_node_of_sink,
1612
+ std::vector<vtr::optional<const RouteTreeNode&>>& rt_node_of_sink,
1613
1613
ParentNetId inet,
1614
1614
TimingInfo* timing_info,
1615
1615
NetPinTimingInvalidator* pin_timing_invalidator) {
0 commit comments