Skip to content

Commit a25b7ec

Browse files
authored
optimize computation in librrgraph utils
In one hot loop, swap three expensive FDIVs for a single FDIV and three FMULs.
1 parent c7b9ce0 commit a25b7ec

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

libs/librrgraph/src/utils/alloc_and_load_rr_indexed_data.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -678,9 +678,10 @@ static void calculate_average_switch(const RRGraphView& rr_graph, int inode, dou
678678
}
679679

680680
if (num_switches > 0) {
681-
avg_switch_R /= num_switches;
682-
avg_switch_T /= num_switches;
683-
avg_switch_Cinternal /= num_switches;
681+
double inv_num_switches = 1.0 / num_switches;
682+
avg_switch_R *= inv_num_switches;
683+
avg_switch_T *= inv_num_switches;
684+
avg_switch_Cinternal *= inv_num_switches;
684685
}
685686

686687
VTR_ASSERT(std::isfinite(avg_switch_R));

0 commit comments

Comments
 (0)