Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

drt: addUniqueInst #6721

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

bnmfw
Copy link
Contributor

@bnmfw bnmfw commented Feb 16, 2025

Supports #5867.

This PR is ISPD and Secure CI safe.
I recommend looking at the commits separately while reviewing, specially the dead code ones.

Like many other things in PA, for incremental PA to be possible, unique instances need to be a live structure, after being properly initialized, it needs to be possible to add new instances to the unique instances structures dynamically, this PR adds said support.

Live pref_track_patterns_ and master_to_pin_layer_range_

Both these variables became member member variables of UniqueInsts. This is necessary because during incremental PA these structures will need to be constantly consulted and updated, creating the necessity of making them more permanent. This change made the functions that create them, computePrefTrackPatterns() (name changed) and initMasterToPinLayerRange() to not return anything, since they now simply initialize the member variables. This change made the already small initUniqueInstance() obsolete, as the passing around of the older variables is not necessary anymore, so it was deleted, and the initialization of the variables was passed to computeUnique().

addUniqueInst()

This function will be used during incremental PA, it essentially refactors the bulk of the old computeUnique() code to receive a single frInst* pointer and initialize the unique instance data for that instance. Some of the code had to be refactored to accommodate for this change, specially what comes after the "// Fills data structure that relate a instance to its unique instance" comment.

Dead Code elimination

This is a weird one, something I did not caught when refactoring PA, I recommend looking at both the dead code commits to see exactly what I'm talking about. In two separate parts of the code there was this patterns where a initial data structure was created with the target insts and masters of the run (target_frinsts and masters). Soon after, during iteration of masters and insts of the design there existed a continue guard. This guard would activate if the original data structure had something in it and the inst/master of the loop was present in it. The structure was always empty, so this guard never activated, and the creation of the original structures had no actual purpose, so I deleted them.

@bnmfw bnmfw added the drt Detailed Routing label Feb 16, 2025
Copy link
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@bnmfw bnmfw requested a review from osamahammad21 February 17, 2025 16:39
@bnmfw bnmfw marked this pull request as ready for review February 17, 2025 16:39
@maliberty maliberty changed the title drt: Unique Instances Support for Dinamically Adding Instances drt: Unique Instances Support for Dynamically Adding Instances Feb 18, 2025
@bnmfw bnmfw mentioned this pull request Feb 18, 2025
@bnmfw bnmfw changed the title drt: Unique Instances Support for Dynamically Adding Instances drt: addUniqueInst Feb 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
drt Detailed Routing
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant