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
iterating over duplicate nodes in V3Trace is slow #1090
Comments
Original Redmine Comment That code does use a hash table, so it should be O(n). I wrote a hacky script that did 100,000 duplicates and it was in 110th place in profiling, so I'll need more hints as to what is slow. |
Original Redmine Comment Wilson Snyder wrote:
The problem is not in the code that calculates the duplicates (that does use a hash map), but in the code that assigns the trace code.
If you can't reproduce it easily, I'll try and find some time this weekend to write a patch. |
Original Redmine Comment Hmm, perhaps try changing that code so that as it follows the list, it updates the previous entries so they point right to the last entry, so the list never needs to be followed again. See if that helps your case please. |
Original Redmine Comment Wilson Snyder wrote:
How about something like this? |
Original Redmine Comment Great, pushed to git towards 3.888. |
Original Redmine Comment In 3.888 (on 2016-10-14). |
Author Name: Johan Bjork
Original Redmine Issue: 1090 from https://www.veripool.org
Original Assignee: Johan Bjork
finding the 'master' duplicate node in V3Trace.cpp:assignTraceCode(...) is very slow on large designs as the number of duplicated nodes can be very large (On one of our designs I see iterations of up to 21000 nodes!)
The text was updated successfully, but these errors were encountered: