argotorg / argotorg/solidity

Compilation and Optimizer Performance Improvements

Open
#15,786 0 comments 0 reactions 0 assignees View on GitHub
optimizer performance :racehorse: selected for development
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.