The-OpenROAD-Project / OpenROAD

OpenROAD's unified application implementing an RTL-to-GDS Flow. Documentation at https://openroad.readthedocs.io/en/latest/
https://theopenroadproject.org/
BSD 3-Clause "New" or "Revised" License
1.41k stars 494 forks source link

rsz: RepairSetup: reduce calls to findRequireds #5226

Closed kamilrakoczy closed 2 weeks ago

kamilrakoczy commented 2 weeks ago

This MR reduces the number of calls to sta::Sta::findRequireds.

Previously, we would always call sta::Sta::findRequireds in the beginning of the loop, but instead we should only call it after anything changes in the graph. This approach reduces the number of calls to this function from 5029 to 1927 in ariane133 design.

I also checked that the sha of the resulting .odb file matches the original version. I measured the run times of CTS in 5 runs of ariane133:

min time [min] avg time [min] med time [min] max time [min]
master (74da93a32) 42:46 43:70 44:06 44:32
this PR 36:51 38:02 38:52 38:55

Signed-off-by: Kamil Rakoczy krakoczy@antmicro.com

github-actions[bot] commented 2 weeks ago

clang-tidy review says "All clean, LGTM! :+1:"