dbSta: use public LevelizeObserver API from OpenSTA#10556
Conversation
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
There was a problem hiding this comment.
Code Review
This pull request refactors DbStaLevelizeObserver to inherit from StaLevelizeObserver instead of LevelizeObserver, delegating the forwarding of level change events to the base class and removing redundant calls. Additionally, it cleans up the build configuration by removing unnecessary private OpenSTA include paths from CMakeLists.txt and updates the includes in dbSta.cc. There are no review comments, and I have no feedback to provide.
|
Even though the secure-ci shows some secure designs drift QoR, they are unrelated to my change and a separate metric update is already being done with a different PR from @maliberty to update those metrics. So this is okay to merge now |
|
@codex review |
|
Codex Review: Didn't find any major issues. What shall we delve into next? ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Summary
Switch dbSta's level-change observer over to the newly-exposed OpenSTA public API (sta/LevelizeObserver.hh + Sta::setLevelizeObserver), removing three workarounds that were needed when the observer machinery was internal to OpenSTA.
Cleanup code from #10352 post merge of upstream PR parallaxsw/OpenSTA#433
This is a cleanup PR only; behavior of dbSta::levelizedDrvrVertices() and its cache-invalidation path is identical.
Background
dbSta installs a LevelizeObserver so that its levelized_drvr_vertices_ cache is invalidated whenever the timing graph's vertex levels change. Levelize has a single observer slot, so dbSta's observer replaces the default StaLevelizeObserver that Sta::makeObservers installs. The default observer forwards level-change events to Search and GraphDelayCalc to keep their incremental-update iterators consistent — so dbSta's replacement must preserve that forwarding.
Before this change, doing that required:
OpenSTA now exposes:
OpenROAD changes in this PR
src/dbSta/src/dbSta.cc
src/dbSta/src/CMakeLists.txt
Type of Change
Impact
None. Better maintainability
Verification
./etc/Build.sh).Related Issues
[Link issues here]