fixed a bug involving stale vertex ordering aftrer netlist change#9852
fixed a bug involving stale vertex ordering aftrer netlist change#9852openroad-ci wants to merge 2 commits intoThe-OpenROAD-Project:masterfrom
Conversation
Signed-off-by: Cho Moon <cmoon@precisioninno.com>
There was a problem hiding this comment.
Code Review
This pull request fixes a bug where vertex level ordering could become stale after netlist changes by invalidating the ordering at various modification points. A new method invalidateVertexOrdering() is introduced in Resizer for this purpose.
My review focuses on ensuring consistent use of this new method. While the fix is functionally correct, several places directly modify the level_drvr_vertices_valid_ flag instead of calling the new method. Using the method consistently improves encapsulation and maintainability. I've added comments with suggestions to use invalidateVertexOrdering() throughout the modified files.
| clang-tidy review says "All clean, LGTM! 👍" |
Signed-off-by: Cho Moon <cmoon@precisioninno.com>
| clang-tidy review says "All clean, LGTM! 👍" |
| It would be more general to listen to odb callbacks then start introduce these sorts of linkages (gpl-drt). I'm sure there are more of these bugs lurking. |
I agree. Perhaps this can be a stop gap solution until we come up with a better ODB observer based solution. |
Summary
This fixes a bug that can leave vertex level ordering stale after netlist change.
Stale ordering can lead to ORD-2018 error and other issues.
Type of Change
Impact
This can lead to abnormal termination due to error.
Verification
./etc/Build.sh).Related Issues
(#9851)