Skip to content

sync#2

Open
nanocoh wants to merge 310 commits into
keplertech:masterfrom
The-OpenROAD-Project:master
Open

sync#2
nanocoh wants to merge 310 commits into
keplertech:masterfrom
The-OpenROAD-Project:master

Conversation

@nanocoh
Copy link
Copy Markdown

@nanocoh nanocoh commented May 23, 2026

Summary

[Describe your changes here]

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Refactoring
  • Documentation update

Impact

[How does this change the tool's behavior?]

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 included tests to prevent regressions.
  • I have signed my commits (DCO).

Related Issues

[Link issues here]

bnmfw and others added 30 commits May 7, 2026 16:43
Signed-off-by: osamahammad21 <osama21@aucegypt.edu>
To avoid non-deterministic behavior caused by pointer comparisons, this change introduces a new header OdbPtrSetMap.h which defines ODBPtrLess (comparing by ID) and aliases OdbPtrSet and OdbPtrMap.

It also modifies dbCompare.inc to explicitly delete specializations of std::less for all dbObject-derived types. This forces the use of the new aliases or custom comparators.

Signed-off-by: Drew Lewis <cannada@google.com>
Refactored usage of std::set and std::map with ODB pointer keys to use custom OdbPtrSet and OdbPtrMap to avoid issues with deleted std::less.

TAG=agy

CONV=e06fe1f4-ec0b-4f12-8531-168335e1a959

Signed-off-by: Drew Lewis <cannada@google.com>
Signed-off-by: Drew Lewis <cannada@google.com>
Signed-off-by: osamahammad21 <osama21@aucegypt.edu>
Signed-off-by: bnmfw <bernardoborgessandoval@gmail.com>
Added fallback to ifp.site_set if openroad.site_set is not available, resolving AttributeError in CMake builds where Python bindings are modular.

TAG=agy

CONV=7a636c20-220b-489a-b173-266014ed9ffd

Signed-off-by: Drew Lewis <cannada@google.com>
…ormat violation

Upstream clang-format (version 18.1.3) complained about the alignment of parameters in combineMapData. My local version (Google) did not make any changes, so I manually reformatted it to use broken lines with indentation to satisfy both.

TAG=agy

CONV=7a636c20-220b-489a-b173-266014ed9ffd

Signed-off-by: Drew Lewis <cannada@google.com>
This matches the upstream formatter and resolves the violation by putting = 0; on a new line while keeping parameters aligned.

TAG=agy

CONV=7a636c20-220b-489a-b173-266014ed9ffd

Signed-off-by: Drew Lewis <cannada@google.com>
Signed-off-by: Drew Lewis <cannada@google.com>
Signed-off-by: Drew Lewis <cannada@google.com>
… files

Signed-off-by: Drew Lewis <cannada@google.com>
Signed-off-by: Drew Lewis <cannada@google.com>
Signed-off-by: Drew Lewis <cannada@google.com>
- Break line in via.h before `= 0` to fix clang-format violation.

- Apply black formatting suggestions to init_floorplan_flip_sites.py and init_floorplan_gap.py.

Signed-off-by: Drew Lewis <cannada@google.com>
Used Docker (Ubuntu 24.04) to run clang-format 18.1.3 on src/rsz/src/SwapArithModules.hh to fix violations, as local clang-format versions were not working correctly.

TAG=agy

CONV=c4c586ce-ce7f-4a27-abb1-99ad4b9ef37a

Signed-off-by: Drew Lewis <cannada@google.com>
Formatted src/odb/include/odb/dbCompare.inc using clang-format-18 to resolve differences produced by the code generator.

TAG=agy

CONV=c4c586ce-ce7f-4a27-abb1-99ad4b9ef37a

Signed-off-by: Drew Lewis <cannada@google.com>
Renamed OdbPtrSet and OdbPtrMap to PtrSet and PtrMap across the entire codebase.
Also renamed the OdbPtrSetMap.h header file to PtrSetMap.h and updated all includes
and build definitions.

TAG=agy
CONV=9aa3f328-c1ec-4454-a257-bc93f42fe188

Signed-off-by: Drew Lewis <cannada@google.com>
Following the upstream master changes that deleted std::less for dbObject pointers,
using std::set<odb::dbNet*> fails to compile.
This fix updates CUGR to use odb::PtrSet<odb::dbNet>, ensuring it compiles and
sorts deterministically using the database ID comparison.

TAG=agy
CONV=9aa3f328-c1ec-4454-a257-bc93f42fe188

Signed-off-by: Drew Lewis <cannada@google.com>
Signed-off-by: Drew Lewis <cannada@google.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
…le in the routing layers

Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
jorge-ferreira-pii and others added 25 commits May 21, 2026 18:58
Signed-off-by: Jorge Ferreira <jorge.ferreira@precisioninno.com>
Mirrors the Qt GUI's display-controls "selectable" column in the web
viewer: a second checkbox per row alongside the visibility checkbox.
Picks (selectAt) require both visible AND selectable; rendering is
unchanged.

- TileVisibility gains *_selectable peers for every Qt-parity flag,
  plus selectable_layers / site_selectable maps.  Instance classification
  is factored into a shared classifyInstance() so isInstVisible and
  the new isInstSelectable cannot drift.
- parseFromJson reads s_* keys, selectable_layers, and s_site_<name>.
- selectAt() gates instance picks by isInstSelectable, net picks by
  isNetSelectable, layer iteration by isLayerSelectable, and BTerm
  picks by pins_selectable.
- VisTree renders a second checkbox column when a leaf opts in with
  selectable:true or inherits addSelectable from an ancestor group.
  Visibility unchecked auto-disables the selectability checkbox.
  Node ids are path-qualified to avoid collisions between same-labeled
  subtrees (e.g. top-level Instances vs Misc / Instances).
- display-controls layer subtree gets a parallel layerSelModel and a
  second checkbox per layer, persisted to or_nonselectable_layers.
- main.js initializes a selectability object (Qt defaults true) and
  app.selectableLayers, persisted to or_selectability, and includes
  s_* + selectable_layers on every tile/select request.
- New JS tests cover the second column, tri-state propagation,
  visibility-off-disables-selectability, and the same-label-collision
  regression.  New C++ tests cover parseFromJson, the new helpers,
  and selectAt gating by instance and layer selectability.

Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
The layerSelModel callback was add/delete-ing names incrementally, so
in multi-chiplet / multi-tech designs where the same layer name appears
in multiple subtrees the final state of app.selectableLayers depended
on traversal order — an unchecked M1 leaf could delete the name even
when another M1 leaf was still checked, dropping it from the wire
payload's selectable_layers.

Mirror the visibility callback's pattern: clear() the Set in place
(WebSocketTileLayer holds the reference) and re-add only checked
nodes' names so Set semantics handle duplicates correctly.

Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
parseFromJson already bounded visible_layers and visible_chiplets so a
malformed or oversized websocket payload can't force unbounded set
inserts, but selectable_layers was iterating the whole input array.
Apply the same std::min(arr.size(), kMaxVisibilityEntries) cap.

Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
…ay-selectability

web: add selectability column to display controls
The helper was checking app.wsManager.isStaticMode, but the app object
only ever exposes app.websocketManager. As a result isStaticMode() always
returned false, so the per-widget Update buttons (and auto-update calls)
were not actually hidden in saved/static HTML reports.

Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
…tton-update-static-GUI

web: Remove 'Update' button in static HTML GUI (#10220)
syn/synthesis.h was including syn/ir/Graph.h which was no accessible
to clients.  This was for a std::optional<Graph> which is replaced by
a std::unique_ptr<Graph>.

Misc other clang-tidy cleanups.

Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
Signed-off-by: Peter Gadfort <gadfort@zeroasic.com>
Signed-off-by: Peter Gadfort <gadfort@zeroasic.com>
sta: expose the dbMod* in tcl
Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
Signed-off-by: Mike Inouye <mikeinouye@google.com>
Partially revert a recent tidying commit which introduced a bug
by removing those casts.

Signed-off-by: Martin Povišer <povik@cutebit.org>
ord: fix a crash when link_design is called twice.
Assisted-by: Claude (various models)
Signed-off-by: Martin Povišer <povik@cutebit.org>
Assisted-by: Claude (various models)
Signed-off-by: Martin Povišer <povik@cutebit.org>
Assisted-by: Claude (various models)
Signed-off-by: Martin Povišer <povik@cutebit.org>
pdn: add basic handling of lef58 area rule
Signed-off-by: Martin Povišer <povik@cutebit.org>
syn: Fix combinational mapper; extend tests
Osama and others added 4 commits May 24, 2026 18:06
Signed-off-by: Osama <osama@precisioninno.com>
DRT: add unit test for FlexTAWorker
…ment-markers

ODB: Initial support for alignment markers
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.