sync - #2
Open
nanocoh wants to merge 2832 commits into
Open
Conversation
Allow trailing whitespace after the terminating semicolon in LEF58_MINWIDTH rules so properties like "MINWIDTH 1.0 WRONGDIRECTION ; " parse cleanly. Add C++ and Tcl regression tests with a multiline LEF58_MINWIDTH property matching production tech LEF formatting. Fixes #4252 Signed-off-by: Tyrone Marhguy <tyronemarhguy@gmail.com>
Signed-off-by: Tyrone Marhguy <tyronemarhguy@gmail.com>
Simplify trailing-whitespace handling per review feedback on #11107. Signed-off-by: Tyrone Marhguy <tyronemarhguy@gmail.com>
Fix integer truncation bug in RepairDesign::repairNetWire
web: fix bbox and add debugPrints
Register the tests from regression_tests_large.tcl (macro01-03, medium01-06, large01-02) as Bazel regression_test targets tagged 'manual' so they are excluded from the default 'bazel test //...' wildcard. Add a :large_tests test_suite to run them explicitly and update their stale golden .ok files to match current GPL log output. Run with: bazel test //src/gpl/test:large_tests Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
Extend the :test_resources exclude list to cover ALL_TESTS + LARGE_TESTS (not just TESTS) so editing a large or passfail test's .tcl/.py no longer invalidates the shared filegroup and re-runs every standard test. .ok golden files are intentionally left in test_resources: they reach each test only through this filegroup (the regression_test macro sets no per-test golden_file), so excluding them would break log diffing. Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
…-large-tests gpl: add separate Bazel targets for long-running regression tests
This code clearly articulates the intent that fixPointers *must* be run. If an exception is thrown or we add some early exit on futile runs (discovered in futility policy experiments), we're not suckerpunched by unfixed pointers. To prevent this, we inject a std::shared_ptr RAII guard (scope_exit at home) scoped around findResizeSlacks to guarantee nbc_->fixPointers() executes unconditionally upon exiting the scope. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Remove NewToolDocExample.md: it contradicted ReadmeFormat.md and produced READMEs the man page parser rejects. Its only reference was the conf.py entry excluding it from the build. Fix 14 broken relative links. est pointed at rsz sources, ifp at a misspelled InitFloorPlan.i, grt at a URL with no scheme. The empty [source file]() targets in ReadmeFormat.md propagated into every tool README that copied the template. Keep the main/docs exclude in conf.py: docs/main symlinks to the repo root, so dropping it makes Sphinx discover every page twice. Signed-off-by: Vitor Bandeira <vvbandeira@precisioninno.com>
…ROAD into grt-m1-congestion
Address review feedback from Matt to use boost scoped_exit instead of std::shared_ptr. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Added boost.scope_exit bazel dependency. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
…in-height odb/tap: cut row segments in narrow regions
Signed-off-by: Augusto Berndt <augusto.berndt@precisioninno.com>
Signed-off-by: Arthur Koucher <arthurkoucher@precisioninno.com>
Signed-off-by: Arthur Koucher <arthurkoucher@precisioninno.com>
FastRouteCore::getCongestionNets iterated over every overflow position and for each position, checked intersection with every net in the design. This created an O(P * N) bottleneck that caused the router to hang for hours on congested designs where P and N are both large. Replace the pointer-chasing intersection checks with a boolean grid map. First, project all overflow positions onto 2D boolean arrays. Then, iterate over the nets once to check if any segments overlap with a congested grid cell. This reduces the complexity to O(P + N), eliminating the bottleneck. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
Bring secure-replace-bracket up to the current private master before public synchronization. Preserve the namespace-collision fixes while incorporating upstream changes through a non-rewriting merge. Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Build the router state synthetically through the public API (addNet, addTreeEdge, updateEdge2DAnd3DUsage) on a 10x10 grid and pin the behavior of getCongestionNets: nets crossing overflowed gcells are selected, horizontal overflow only matches horizontal segments (and vice versa), clock nets are excluded, the search radius expands only until new nets are found, capped at 4, and nets already in the set do not stop the expansion. The same suite passes against the previous O(positions * nets) implementation, certifying the boolean-grid rewrite is behavior preserving without needing the large proprietary design that exposed the bottleneck. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
findNetsNearPosition lost its last caller when getCongestionNets switched to the boolean grid lookup. Also return early when there are no overflow positions (the net scan would otherwise walk every route against empty grids five times) and const-qualify locals. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Signed-off-by: arthurjolo <arthurjl@precisioninno.com>
Signed-off-by: Arthur Koucher <arthurkoucher@precisioninno.com>
…ate/OpenROAD into grt_cugr_jumper_insertion Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com> # Conflicts: # src/grt/test/repair_antennas2_cugr.guideok # src/grt/test/repair_antennas4_cugr.guideok
…heck Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
web: add rudy heatmap view as save_image -web display option
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: arthurjolo <arthurjl@precisioninno.com>
Signed-off-by: Minju Kim <mkim@precisioninno.com>
…_sta_update_0814 Update sta ptr to 08/14
…ROAD into cts-improve-cg-ndr
//docs:man_pages produced no man3 pages at all. md_roff_compat.py read ../src/<module>/messages.txt from the source tree, but those files are generated: CMake writes them in-tree while bazel writes them under bazel-out, and the unsandboxed action sees only declared inputs. Every message page was skipped with "doesn't exist. Continuing". cat3 and html3 now hold 3408 pages each, up from 0. md_roff_compat.py takes the layout root from MESSAGES_ROOT_DIR, defaulting to the repository root so the CMake paths are unchanged, and man_pages.bzl points it at the bin dir, whose layout already matches. Two inputs had nowhere to come from: the ORD messages, which live in src/ itself and had no bazel target, and //src/gui:messages_txt, which existed but was not visible to //docs. The generated messages.txt were incomplete as well. The messages_txt glob was not recursive and omitted .cxx and .i, so modules keeping logger calls below src/ lost them: 311 in drt, 90 in grt, 74 in dpl, 21 in rsz, 18 in utl, 15 in gui. The default glob now recurses over the extension set find_messages.py scans, and sub-packages hand their sources over through a shared message_srcs macro, new for dft's seven and replacing three divergent hand-written extension lists in odb and syn. cut and tst join the documented modules. cut's messages() call was the only one in a src/<module>/src/CMakeLists.txt without OUTPUT_DIR .., so CMake wrote src/cut/src/messages.txt where every other module writes src/<module>/messages.txt; tst had no messages() call. Neither exposes Tcl commands, so both are excluded from man2. tst's one logger call named utl::RSZ 0, which is not a resizer message, and is now utl::TST 1. //:dup_id_test passed unconditionally. It ran find_messages.py -d src from its runfiles directory, which holds only the script, so it walked a nonexistent path, found zero messages and exited 0; an injected duplicate left it green. It now resolves the workspace through its MODULE.bazel runfiles symlink, the handle the lint tests already use. That single walk also covers cross-module collisions, which the per-module genrules cannot see: each module's messages.txt is individually duplicate-free when the two sites sit in different modules. The lint and format tests shared the resulting caching hole. They scan the git worktree rather than declared inputs, so nothing invalidates a cached result and all five reported "(cached) PASSED" after a source edit. Tagging them external forces a re-run. Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
…3-messages docs: generate man3 pages in the bazel man page build
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
rcx: fix bench_wires segfault on duplicate pattern names
rcx: create struct for the unit scale factors to avoid duplicated code on 3D pass
Revert "Merge pull request #11066 from oharboe/rsz-futility-limit"
…ve-cg-ndr CTS: improve NDR for clock nets
…jumper_insertion grt/cugr: enable jumper insertion on repair_antennas
This adds a 64KB buffer size to boost::iostreams::gzip_compressor and boost::iostreams::gzip_decompressor in OutStreamHandler and InStreamHandler to improve write_db / read_db performance when using gzip. Signed-off-by: Debayan Bandyopadhyay <dbandyopadhyay@google.com>
Following review feedback, changed kGzipBufferSize to std::streamsize and moved it inside the anonymous namespace to avoid polluting the utl namespace and prevent narrowing conversions. Signed-off-by: Debayan Bandyopadhyay <dbandyopadhyay@google.com>
…o_max_cap_crash Cts: fix crash when library has no max_capacitance for clock buffers
docs(cts): fix -sink_clustering_size/-max_diameter auto-selection description (#10602)
…evel utl: Use 64KB buffer for gzip compression and decompression
…_actions/actions/setup-java-5.7.0 build(deps): bump actions/setup-java from 5.5.0 to 5.7.0
Signed-off-by: Debayan Bandyopadhyay <dbandyopadhyay@google.com>
…compression-level Revert "utl: Use 64KB buffer for gzip compression and decompression"
…ncurrent-io-e5 gpl: concurrent IO pin + cell placement in global placement
The test reports whether each report writer created its output file, and asserts write_pg_spice creates nothing before a solution exists. Since make_result_file only builds a path, output from an earlier run in the same results/ was still present, so the pre-analysis check read 1 and the test failed on every run after the first. Delete the three output files up front so the checks start from a known absent state. Bazel gives each run a fresh TEST_TMPDIR, so this only affected repeated local ctest runs. Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
…eport-writers-test-idempotency psm: clear stale outputs in report_writers_require_solution test
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.
Summary
[Describe your changes here]
Type of Change
Impact
[How does this change the tool's behavior?]
Verification
./etc/Build.sh).Related Issues
[Link issues here]