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
OpenZeppelin is currently working on a base-64 library (OpenZeppelin/openzeppelin-contracts#2884) and it turns out that our optimizer is not yet good enough to get to the level of hand-optimized assembly in that case. We should add this code as a test case so that we can use it to evaluate our optimizer improvements.
In the PR and its comments you'll find versions of the library with and without inline assembly. Add them both as test cases. I think I'd put them in solidity/test/libsolidity/semanticTests/externalContracts/, which would allow us to see gas usage in both cases. Add some expectations with known good base-64 input/output to make sure the code works correctly (the one I originally posted in comments there was actually buggy).
It might also be helpful to have these as command-line tests with --ir-optimized ouptut to be able to see changes in the generated Yul.
The text was updated successfully, but these errors were encountered:
Great! I think everything that's needed is in the description but feel free to ask if it's not clear.
BTW, many people on the team (including me) are off this time of year so don't be discouraged if your PR does not get reviewed right away. We have a bit of a PR backlog right now but we'll get through it once more people are back :)
OpenZeppelin is currently working on a base-64 library (OpenZeppelin/openzeppelin-contracts#2884) and it turns out that our optimizer is not yet good enough to get to the level of hand-optimized assembly in that case. We should add this code as a test case so that we can use it to evaluate our optimizer improvements.
In the PR and its comments you'll find versions of the library with and without inline assembly. Add them both as test cases. I think I'd put them in
solidity/test/libsolidity/semanticTests/externalContracts/
, which would allow us to see gas usage in both cases. Add some expectations with known good base-64 input/output to make sure the code works correctly (the one I originally posted in comments there was actually buggy).It might also be helpful to have these as command-line tests with
--ir-optimized
ouptut to be able to see changes in the generated Yul.The text was updated successfully, but these errors were encountered: