Optimize routing and geometry hot paths - #1012
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #1012 +/- ##
==========================================
+ Coverage 71.07% 71.24% +0.17%
==========================================
Files 72 74 +2
Lines 14809 15269 +460
Branches 2882 2944 +62
==========================================
+ Hits 10525 10879 +354
- Misses 3386 3461 +75
- Partials 898 929 +31 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Add shared bbox overlap pruning and cached instance-region extraction for collision checks. Also keeps merge diagnostics named and avoids extra layout cell scans during reads.
Cache repeated router state inside the side-routing loop and keep the prior state fix in the same focused routing commit.
Replace BasePort's pydantic model with a slotted implementation, add lightweight RoutePort views for routing internals, cache DBU cross sections, and reduce straight/route placement object materialization.
Vectorize Bezier, circular, simplify, Euler, and static path extrusion point generation paths without carrying the pytest-benchmark files on this branch.
Reuse recursive per-instance regions when rendering merge differences so repeated array transforms do not rebuild the same regions.
Build the bbox obstacle region first and merge it once, avoiding repeated region merges during smart-route setup.
|
Can we split this a bit up? I am certain there are some critical paths that impact run time. But this is way too big for me to properly review |
|
@sebastian-goeldi this PR builds on top of the 3 other open PRs I have atm, if we work on them and get them merged, or closed, whichever, this PR will collapse itself to only the revelant stuff |
|
also I decided to open this large PR because it's easier to demonstrate the E2E perf wins. |
|
@sebastian-goeldi dropped the 3 currently opened PRs from this branch, so it narrows things down a bit. |
Summary
Notes
Testing