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

Constant arguments for calls #62

Open
9 tasks
xermicus opened this issue Oct 4, 2024 · 0 comments
Open
9 tasks

Constant arguments for calls #62

xermicus opened this issue Oct 4, 2024 · 0 comments
Labels
enhancement New feature or request good first issue Good for newcomers

Comments

@xermicus
Copy link
Member

xermicus commented Oct 4, 2024

There was some support for constant arguments in the original ML code base but we don't use them currently. Either use them properly or remove related code.

  • It seems that this was only used for some era VM specific features? Please first check the original code base and report here what this was exactly used for, and whether we could use constant arguments in general. I'd like to answer the following questions:
    • Why are those constants needed as an extra argument?
    • Why are they not just ordinary values since LLVMs constant propagation should take care of it?
    • Why is this needed there but not in general?
  • We need to find out if this is really required and how well LLVMs optimization passes already handle constants. Investigate some code examples, possibly from the integration test suite. Please report those findings here first so we can decide.
    • Provide multiple Solidity or YUL examples and their corresponding optimized LL, and show that constant propagation works as expected or where it fails. A starting point is to use some code examples from the integration tests.
    • If not, why not?
  • Implementing anything heavily relies on the findings of the first two tasks. Should not implement anything yet.
  • If it turns out that any custom logic in our lowering regarding constants is futile because LLVM handles it really well anyways. We should simply remove any artifacts related to that.
@xermicus xermicus mentioned this issue Oct 17, 2024
5 tasks
@xermicus xermicus added good first issue Good for newcomers enhancement New feature or request labels Oct 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

1 participant