Fix OpenDP bugs#11
Merged
Merged
Conversation
tspyrou
pushed a commit
that referenced
this pull request
Sep 10, 2020
gudeh
pushed a commit
to gudeh/OpenROAD
that referenced
this pull request
Sep 29, 2025
…private/osama-master Merging post-dpl-dpo-merge branch.
oharboe
added a commit
to oharboe/OpenROAD
that referenced
this pull request
May 6, 2026
…message 1. Bazel test detail (The-OpenROAD-Project#7). The actual stderr (e.g. `AssertionError: 20 != 19`) lives in a Bazel `==================== Test output for <target>:` block — usually thousands of lines *before* the FAILED summary row in the same log. Restructure the parser to: - record FAILED summary rows into a per-target dict (collapses re-runs from `--keep_going`); - buffer Test-output block lines unconditionally as we see them, so blocks that precede their FAILED row aren't dropped; - use a length-78+ `=` rule as the block end (Bazel's closing fence is 80 wide; the unittest framework's internal 70-wide separator no longer terminates capture early). PR The-OpenROAD-Project#10287 dogfood: `//src/odb/test:odb_man_tcl_check` finding now carries `AssertionError: 20 != 19 : ./src/odb: help count (20) != readme count (19)` in its detail / AI directive. 2. Per-finding log URL (The-OpenROAD-Project#11). cli._scan_check threads `check.details_url` into every emitted finding; render_markdown appends "Full log: <url>." to each item in the AI directive. 3. "Couldn't extract" message (The-OpenROAD-Project#10). When the discovery layer reports N failing checks but no parser produced a finding, the table now says "Found N failing check(s) but couldn't extract any actionable findings — see <urls>" instead of an empty screen. `discover_findings` returns `(findings, failing_check_urls)` so the renderer can show the URL list. fix_main.py + 4 unit tests updated for the new tuple shape. Tests added/updated: - test_bazel_test: 3 new cases covering block-before-summary, block-truncation, no-block-fallback, plus the existing assertion cases. - test_render_table: empty-with-failing-urls case. - test_cli, test_fix_runs_recipes: updated stubs for tuple return. 30/30 Bazel tests pass. Final 10-PR dogfood survey (the same set used to motivate P0): - All 10 PRs produce useful output. - PR The-OpenROAD-Project#10287's bazel_test_fail finding now contains the actual `AssertionError`. - PR The-OpenROAD-Project#10288's purged-build case shows a `log_unavailable` info finding alongside the 5 reviewable Gemini comments on its diff. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
RamboJHB
pushed a commit
to RamboJHB/OpenROAD
that referenced
this pull request
May 8, 2026
Number every PG-DRC code change in the order data flows from the user-facing Tcl flag down to the FlexGC checks, so a reader can grep for [PG-DRC #1] .. [PG-DRC The-OpenROAD-Project#11] and walk the chain end to end: #1 TritonRoute.tcl -- parse -check_pg_nets The-OpenROAD-Project#2 TritonRoute.i -- SWIG bridge The-OpenROAD-Project#3 TritonRoute.h -- public API param The-OpenROAD-Project#4 TritonRoute.cpp -- write router_cfg_->CHECK_PG_NETS The-OpenROAD-Project#5 global.h -- RouterConfiguration field The-OpenROAD-Project#6 serialization.h -- distributed-worker serialization The-OpenROAD-Project#7 frRegionQuery.cpp -- feed PG snets to drObjs rtree The-OpenROAD-Project#8 FlexGC_init.cpp -- skip PG in fixed-obstacle pass The-OpenROAD-Project#9 FlexGC_cut.cpp -- gate via-table supply-skip The-OpenROAD-Project#10 drc_test_pg.tcl -- end-to-end smoke regression The-OpenROAD-Project#11 CMakeLists.txt / BUILD -- register test in both build systems Also document why FlexGCWorker::Impl::checkCutSpacing_spc() is deliberately left alone: that skip honors LEF SAMENETPGONLY and must keep exempting same-PG-net cuts even when PG DRC is on. Signed-off-by: Claude <noreply@anthropic.com>
RamboJHB
pushed a commit
to RamboJHB/OpenROAD
that referenced
this pull request
May 8, 2026
Previously the flag added PG geometry to the GC engine but the report file still contained every signal-vs-signal marker the engine produced, so the user had to grep for VDD/VSS by hand to see what PG-DRC found. Make -check_pg_nets a true "PG QA pass": after getDRCMarkers() returns, drop every marker whose srcs do not include a supply (frNet / frBTerm / frInstTerm) before calling reportDRC. Default check_drc is unchanged. Renumber the chain markers so the new filter is [PG-DRC The-OpenROAD-Project#10]; test moves to The-OpenROAD-Project#11, build registration to Signed-off-by: Claude <noreply@anthropic.com> The-OpenROAD-Project#12.
4 tasks
RamboJHB
pushed a commit
to RamboJHB/OpenROAD
that referenced
this pull request
May 15, 2026
… rtree under -check_pg_nets
Phase 7 [PG-DRC INV] traces have confirmed two things:
1. routePolygons_ on signal frNet gcNets is empty (no leak from
drObjs ingestion -- The-OpenROAD-Project#7 / #8b are working correctly).
2. RULE-1 markers still fire between two would-be-fixed shapes
(instBlockage + signal pin), which means a gcRect on a signal
frNet gcNet is getting setFixed(false) inside
initNet_pins_maxRectangles_helper despite all source polygons
being fixed. This is a boost.polygon max-rect decomposition
mismatch after union; it has nothing to do with the data
ingestion path.
Per user direction, sidestep the FlexGC internal bug by keeping
signal-net pin / block-term geometry out of the rtree FlexGC reads
in the first place. New filter at frRegionQuery::Impl::init() (the
`shapes` rtree builder):
- When router_cfg->CHECK_PG_NETS is on, skip any frInstTerm whose
connected net is non-supply, and skip any frBTerm whose type is
non-supply.
- Floating supply pins (no net) are unaffected -- they go through
the fakeVDD/fakeVSS path.
- SNets / blockages / inst blockages untouched.
Result under -check_pg_nets: the FlexGC obstacle pass sees only
supply pins + blockages + SNet geometry. No frInstTerm or frBTerm
attached to a signal frNet ever calls getNet() inside FlexGC, so no
signal frNet gcNet is ever constructed, so the buggy
initNet_pins_maxRectangles_helper code path never runs on signal
nets, so no spurious signal-vs-anything markers can be emitted.
Pairs with [PG-DRC The-OpenROAD-Project#7] (signal nets out of drObjs rtree). Together
the two gates keep every signal-net object out of every region-query
path that check_drc touches.
Default check_drc (flag off) is unchanged: the filter lambda
short-circuits on !CHECK_PG_NETS.
Signed-off-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
setOrigin -> setLocation will solve Austin's problem.