Compilation and Optimizer Performance Improvements
- Dominant language
- C++
- Stars
- 25.7k
- Forks
- 6.2k
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 29
Description
We target several improvements on compilation time in general and performance of the via-IR pipeline in particular.
1. Help frameworks reduce compilation overhead through proper use of fine-grained output selection
- [Document output selection #15744](https://github.com/ethereum/solidity/issues/15744)
- [Requesting implicitly generated outputs #15742](https://github.com/ethereum/solidity/issues/15742)
- Fix bugs: [#13985](https://github.com/ethereum/solidity/issues/13985), [#12931](https://github.com/ethereum/solidity/issues/12932), [#15747](https://github.com/ethereum/solidity/issues/15747), [#14363](https://github.com/ethereum/solidity/issues/14363)
- Consistent interface for older versions: [solc-js#690](https://github.com/ethereum/solc-js/issues/690), [solc-js#755](https://github.com/ethereum/solc-js/issues/755)
2. Increase speed of via-IR compilation via internal refactoring:
- https://github.com/ethereum/solidity/pull/15215 / https://github.com/ethereum/solidity/pull/15281 and related PRs
- Improved data structures in the Yul optimizer based on the above refactoring
3. Increase the speed of the YUL->EVM code transform via transitioning to SSA-CFG based codegen.
Contributor guide
Research direction
Start by reviewing the linked issues and PRs covering output selection, via-IR refactoring, Yul optimizer data structures, and SSA-CFG code generation. Identify one independently scoped improvement before proceeding; done would require a measurable compilation or optimizer performance improvement and relevant validation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, solidity
- Domain
- compilers, performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100