Skip to content
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

Optimization without dependencies in CompilerStack #15230

Conversation

cameel
Copy link
Member

@cameel cameel commented Jul 1, 2024

Fixes #15179.
Depends on #15229.
Replaces/closes #15182.
Includes commits from #15228.

This PR builds on the refactor from #15229, making CompilerStack actually take advantage of the new structure. IRGeneratorOutput can now be parsed into a partial Yul Object that does not contain dependencies and can also be optimized in this form.

What we have here should already be good enough for #15179, but it we wanted to, we could go one step further and extend it to reusing EVM assemblies, avoiding repeating the Yul->EVM transform.

Status

Mostly done in terms of functionality. Needs resolving a few final snags, some cleanup and testing.

  • Need a less hacky way to bypass dependency checks in Yul analysis.
  • Change in MSize detection inconsistency (can't detect it in dependencies at optimization time but can at assembling time).
  • Should I generate IR source only on demand and work primarily with the partial Objects, without serializing and reparsing them?
  • More testing.

@cameel cameel added performance 🐎 optimizer has dependencies The PR depends on other PRs that must be merged first labels Jul 1, 2024
@cameel cameel self-assigned this Jul 1, 2024
@github-actions github-actions bot added the stale The issue/PR was marked as stale because it has been open for too long. label Jul 15, 2024
@cameel cameel removed the stale The issue/PR was marked as stale because it has been open for too long. label Jul 16, 2024
@ethereum ethereum deleted a comment from github-actions bot Jul 16, 2024
@cameel
Copy link
Member Author

cameel commented Jul 16, 2024

Just like in case of #15182, closing because we won't be merging it. The actual fix is based on caching optimized IR instead.

@cameel cameel closed this Jul 16, 2024
@cameel cameel mentioned this pull request Jul 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
has dependencies The PR depends on other PRs that must be merged first optimizer performance 🐎
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant