-
Notifications
You must be signed in to change notification settings - Fork 571
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
Refactor deltadebug #5223
base: master
Are you sure you want to change the base?
Refactor deltadebug #5223
Conversation
Signed-off-by: habibayassin <[email protected]>
Signed-off-by: habibayassin <[email protected]>
Signed-off-by: habibayassin <[email protected]>
clang-tidy review says "All clean, LGTM! 👍" |
final def output before:
|
final def after mangling:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nits + add some automated regression testing.
Also, update documentation with what to input and what to expect and an example, probably based on automated regression test in CI?
etc/deltaDebug.py
Outdated
self.deltaDebug_result_def_file = os.path.join( | ||
base_db_directory, f"deltaDebug_base_result_def.def") | ||
|
||
# # The name of the result file after running deltaDebug |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: Extranous # #
etc/deltaDebug.py
Outdated
print("Attempt to reduce lib files in", self.lib_directory) | ||
if not os.path.exists(self.lib_directory): | ||
return | ||
for lib_file in glob.glob(os.path.join( self.lib_directory, "*.lib")): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
run through a python formatter
Also make sure the unittest w mocking is hooked up to CI and still works |
@oharboe do you think we need to mangle the name of the PDK from the final def file? |
If the PDK is under NDA, then renaming it is not going to do anything... |
My impression is that the goal here is more to limit how much data is handed off between orgs, even under NDA. I don't expect we will be able to fully automate a process to reduce a test case to a publicly releasable form from a private PDK. If so, renaming the PDK is not important. |
Signed-off-by: habibayassin <[email protected]>
clang-tidy review says "All clean, LGTM! 👍" |
@habibayassin @maliberty Make sure this test is hooked up to CI https://github.com/The-OpenROAD-Project/OpenROAD/blob/master/etc/test_deltaDebug.py |
Signed-off-by: habibayassin <[email protected]>
Signed-off-by: habibayassin <[email protected]>
Signed-off-by: habibayassin <[email protected]>
|
clang-tidy review says "All clean, LGTM! 👍" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- This PR has lots of "driveby changes", small fixes that have nothing to do with the major theme/feature of this PR, to introduce the the new lib/lef bisection feature. I suggest to separate out a PR to fix all those non-feature changes. This will make it easier to see what actually changed.
- I don't see that the regression tests are hooked up to CI
platform = match.group(2) | ||
|
||
if design is None or platform is None: | ||
print("Invalid step argument format. Expected format: run-me-<design>-<platform>-base.sh") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is going to break when the step does not include a "run-me-*.sh" file.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
add non "run-me-*.sh" --step test to CI
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can you clarify more on this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I will make more automated tests to cover more use-cases once I'm sure CI is hooked up.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CI isn't hooked up correctly, but @vvbandeira and @maliberty know.
I added a use-case which doesn't use "make issue" to the integraiton tests The-OpenROAD-Project/OpenROAD-flow-scripts#2209
|
||
base_db_directory = os.path.dirname(opt.base_db_path) | ||
base_db_name = os.path.basename(opt.base_db_path) | ||
self.base_db_file = opt.base_db_path | ||
|
||
self.lib_directory , self.lef_directory = parse_vars_file(parse_vars_file_name(opt.step)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the name is confusing here. Is it self.lib/lef_directory? If so, how is this going to work when .lib files are spread across multiple directories? What about technology files from the PDK?
@maliberty @vvbandeira FYI Checking if CI tests are running on delta debug. These should both fail, or CI is not hooked up. |
@vvbandeira @maliberty Also waiting to see if CI catches this error #5485 |
#5117