You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
The text was updated successfully, but these errors were encountered:
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.
The text was updated successfully, but these errors were encountered: