Skip to content

Remove redundant STA calls in RepairDesign#10744

Open
dsengupta0628 wants to merge 2 commits into
The-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:test-resizer6-apply
Open

Remove redundant STA calls in RepairDesign#10744
dsengupta0628 wants to merge 2 commits into
The-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:test-resizer6-apply

Conversation

@dsengupta0628

Copy link
Copy Markdown
Contributor

Summary

Cleans up redundant STA calls in the resizer's RepairDesign, continuing the work started in #10480

Changes

  • RepairDesign::performEarlySizingRound / repairDesign: drop redundant searchPreamble() + findAllArrivals(), the explicit findRequireds(drvr->level()+1), the delaysInvalid() call, and the per-net incremental-timing block (ensureLevelized/findDelays/findArrivals). These are consolidated into a single findRequired(drvr) prerequisite in performGainBuffering.
  • performGainBuffering: take the driver Vertex* instead of const Pin* (avoids redundant pin→vertex lookups), and add the explicit findRequired(drvr) needed before vertexWorstSlackPath.
  • Replace manual Vertex::setSlewAnnotated(false, ...) loops with the Sta::unsetAnnotatedSlew(...) API; use RiseFall::range() instead of explicit rise/fall pairs.
  • RepairTargetCollector: route makeExceptionTo and findPathEnds through the Sta API instead of sdc_/search_ directly.

Note: this is the first of two steps. A follow-up will add findRequired inside Sta::vertexWorstSlackPath (the proper place for it), after which the explicit findRequireds/findRequired calls that remain in the resizer can be removed.

Type of Change

  • Refactoring

Impact

None

Verification

  • I have verified that the local build succeeds (./etc/Build.sh).
  • I have run the relevant tests and they pass.
  • My code follows the repository's formatting guidelines.
  • I have signed my commits (DCO).

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
@dsengupta0628 dsengupta0628 self-assigned this Jun 23, 2026
@dsengupta0628 dsengupta0628 marked this pull request as ready for review June 23, 2026 23:54
@dsengupta0628 dsengupta0628 requested a review from a team as a code owner June 23, 2026 23:54

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request refactors the timing analysis and repair flow in RepairDesign and RepairTargetCollector. Key changes include updating performGainBuffering to accept a sta::Vertex* instead of a sta::Pin*, adding a prerequisite call to sta_->findRequired(drvr), and removing redundant incremental timing updates and arrival/required search calls. Additionally, manual loops for un-annotating slews are replaced with sta_->unsetAnnotatedSlew, and sdc_->makeExceptionTo and search_->findPathEnds are updated to use sta_ equivalents. There are no review comments, so I have no feedback to provide.

@dsengupta0628

Copy link
Copy Markdown
Contributor Author

@dsengupta0628 dsengupta0628 requested review from maliberty and povik June 24, 2026 01:50
@maliberty

Copy link
Copy Markdown
Member

@codex review

@maliberty

Copy link
Copy Markdown
Member

If the CI is ok I don't have anything to add.

@dsengupta0628

Copy link
Copy Markdown
Contributor Author

If the CI is ok I don't have anything to add.

secure CI was fine. Public CI had a small variation in GRT TNS though CF TNS was fine. I created a metric PR The-OpenROAD-Project/OpenROAD-flow-scripts#4308

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants