@@ -286,7 +286,6 @@ void reset_path_costs(const std::vector<RRNodeId>& visited_rr_nodes) {
286286 for (auto node : visited_rr_nodes) {
287287 route_ctx.rr_node_route_inf [node].path_cost = std::numeric_limits<float >::infinity ();
288288 route_ctx.rr_node_route_inf [node].backward_path_cost = std::numeric_limits<float >::infinity ();
289- route_ctx.rr_node_route_inf [node].prev_node = RRNodeId::INVALID ();
290289 route_ctx.rr_node_route_inf [node].prev_edge = RREdgeId::INVALID ();
291290 }
292291}
@@ -315,34 +314,6 @@ float get_rr_cong_cost(RRNodeId inode, float pres_fac) {
315314 return (cost);
316315}
317316
318- /* Mark all the SINKs of this net as targets by setting their target flags *
319- * to the number of times the net must connect to each SINK. Note that *
320- * this number can occasionally be greater than 1 -- think of connecting *
321- * the same net to two inputs of an and-gate (and-gate inputs are logically *
322- * equivalent, so both will connect to the same SINK). */
323- void mark_ends (const Netlist<>& net_list, ParentNetId net_id) {
324- unsigned int ipin;
325- RRNodeId inode;
326-
327- auto & route_ctx = g_vpr_ctx.mutable_routing ();
328-
329- for (ipin = 1 ; ipin < net_list.net_pins (net_id).size (); ipin++) {
330- inode = route_ctx.net_rr_terminals [net_id][ipin];
331- route_ctx.rr_node_route_inf [inode].target_flag ++;
332- }
333- }
334-
335- /* * like mark_ends, but only performs it for the remaining sinks of a net */
336- void mark_remaining_ends (ParentNetId net_id) {
337- auto & route_ctx = g_vpr_ctx.mutable_routing ();
338- const auto & tree = route_ctx.route_trees [net_id].value ();
339-
340- for (int sink_pin : tree.get_remaining_isinks ()) {
341- RRNodeId inode = route_ctx.net_rr_terminals [net_id][sink_pin];
342- ++route_ctx.rr_node_route_inf [inode].target_flag ;
343- }
344- }
345-
346317// Calculates how many (and allocates space for) OPINs which must be reserved to
347318// respect 'instance' equivalence.
348319//
@@ -448,12 +419,10 @@ void reset_rr_node_route_structs() {
448419 for (const RRNodeId& rr_id : device_ctx.rr_graph .nodes ()) {
449420 auto & node_inf = route_ctx.rr_node_route_inf [rr_id];
450421
451- node_inf.prev_node = RRNodeId::INVALID ();
452422 node_inf.prev_edge = RREdgeId::INVALID ();
453423 node_inf.acc_cost = 1.0 ;
454424 node_inf.path_cost = std::numeric_limits<float >::infinity ();
455425 node_inf.backward_path_cost = std::numeric_limits<float >::infinity ();
456- node_inf.target_flag = 0 ;
457426 node_inf.set_occ (0 );
458427 }
459428}
@@ -937,8 +906,8 @@ void print_rr_node_route_inf() {
937906 for (size_t inode = 0 ; inode < route_ctx.rr_node_route_inf .size (); ++inode) {
938907 const auto & inf = route_ctx.rr_node_route_inf [RRNodeId (inode)];
939908 if (!std::isinf (inf.path_cost )) {
940- RRNodeId prev_node = inf.prev_node ;
941909 RREdgeId prev_edge = inf.prev_edge ;
910+ RRNodeId prev_node = rr_graph.edge_src_node (prev_edge);
942911 auto switch_id = rr_graph.rr_nodes ().edge_switch (prev_edge);
943912 VTR_LOG (" rr_node: %d prev_node: %d prev_edge: %zu" ,
944913 inode, prev_node, (size_t )prev_edge);
@@ -973,8 +942,8 @@ void print_rr_node_route_inf_dot() {
973942 for (size_t inode = 0 ; inode < route_ctx.rr_node_route_inf .size (); ++inode) {
974943 const auto & inf = route_ctx.rr_node_route_inf [RRNodeId (inode)];
975944 if (!std::isinf (inf.path_cost )) {
976- RRNodeId prev_node = inf.prev_node ;
977945 RREdgeId prev_edge = inf.prev_edge ;
946+ RRNodeId prev_node = rr_graph.edge_src_node (prev_edge);
978947 auto switch_id = rr_graph.rr_nodes ().edge_switch (prev_edge);
979948
980949 if (prev_node.is_valid () && prev_edge.is_valid ()) {
0 commit comments