deltaDebug.py leaves files with a few insts and nets that is megabytes
Description
One great thing about deltaDebug.py is that it can reduce confidential examples to the point where they can be shared as bug reports.
However, when the resulting .odb file with a few insts and nets is megabytes, that doesn't install confidence that no confidential information is divulged.
Suggested Solution
The .odb files should be small and then converted to a textual representation that can be inspected for confidential information.
When there are a few insts and nets I would have expected a text file in the kilobytes, not a binary in megabytes...
Additional Context
No response
You can write_lef & write_def to get text. If you want to share a confidential one with me in private I can try to analyze the size. Its possible the space represents deleted objects as we can only compress an array down to the last allocated element.
I mean the standard cells and other library elements represent a non-zero amount of size in ODB. Do we delete dbMasters that aren't used?
No the lef elements remain unchanged which is a likely cause. We could add a final pass to remove unused cells.
The db doesn't have a way to delete dbMaster as we don't normally do so. That will require an enhancement
Hello @oharboe @maliberty @QuantamHD I've started working on this issue, please feel free to assign it to me.
Thanks for looking at it.
Hello, currently I am working on the implementation of the new pass (which will delete unused cells) and I need a test case to reproduce the issue and check the implementation correctness. Could you please attach an appropriate experimental design and expected results?
Adapt the integration test?
https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts/blob/master/flow/test/test_delta_debug.sh
Hi, I've added a new function that removes unused masters in the .odb file and reduces its size. I am attaching the resulting odb files (original and with removed masters) for your review. Note, in the latest version of OpenRoad, when I run test-delta-debug.sh it gives "No error found in original input file" instead of cutting via "Iter: 100" and reducing design, so I've tested a new function with the cfe92e17a7d986ea9bd82031a61d47120e30dc7a version. ODB_files.zip
The file size looks good. It would be easier to review a PR with the code changes.