Skip to content

Conversation

@widlarizer
Copy link
Collaborator

Intends to fix #5509. The core idea is that CellTypes usage for Yosys internal cells can be directed to a simple compile time constructed integer lookup table for the type IdString index instead of hashing the type. Also improves memory locality with data spread across multiple arrays rather than vector of struct CellTypes.

So far, I've already seen 0-2% gain in the current partial implementation, which only for known_cells and only for CellTypes that only touch internal cells. I'm pretty sure internal cells can be fast pathed to this in CellTypes constructed from user designs, too. Compilation times seem fine so far

  • Add unit test that comprehensively checks equivalence with old celltypes

@widlarizer
Copy link
Collaborator Author

opt_expr is like 2.5 faster now leading to 8-10% faster jpeg synth without even excluding abc, wowie

@widlarizer
Copy link
Collaborator Author

I hope everybody is excited to have 40+ second link times with LTO on though!

@widlarizer
Copy link
Collaborator Author

Up to a 16% speedup now, probably mostly thanks to opt_dff by porting ModWalker

@whitequark
Copy link
Member

Laughs in 15 minute Wasm LTO link times

@widlarizer
Copy link
Collaborator Author

Sounds like this change would make the LTO link time for WASI even worse. If I rewrite this into a C++ code generator, we should suffer less with LTO across platforms... annoying, but easy

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Less wasteful CellTypes usage in opt_clean

3 participants