moh-eulith
moh-eulith
I'm trying to understand some of the test failures. I've accepted and pushed the gas changes when the new gas was lower than previous. However, there seem to be cases...
> The only thing I can think of is somehow the old code was using constants because it's optimized for speed,not size. Is that possible? That doesn't seem like the...
> The optimized tests run per default with runs set to 200, since that's the default compiler setting (it's arguable whether that's a good default, but it's been so historically)...
> The optimized tests run per default with runs set to 200, The runs parameter is the critical piece of info here. I tested what happens to constants (specifically, 64bit...
>I've looked and I can't seem to find how the runs value is passed into and how it affects the optimizer (clearly, it does!). never mind, found it. ConstantOptimizer.h, line...
After looking at the summary results, I prefer the PR as is (it doesn't have high outliers like the 3x tweak). Results of this PR as is: | File name...
The only failing tests are for the new eof/osaka changes. Constant optimizer is explicitly disabled: ```c++ // TODO: investigate for EOF if (_settings.runConstantOptimiser && !m_eofVersion.has_value()) ``` Not sure what the...
My pedestrian solution for EOF and constant optimizer. Happy to include in this PR or another, or just ignore. https://github.com/moh-eulith/solidity/commit/5805f6da4820929886bf2c9a52bec45e703449d1
I decided messing with the default behavior was not appropriate. Changed the thresholds for the default runs of 200 so that the size optimization doesn't kick in for simple constants....
> I'd still rather not enable it just as an afterthought in this PR. Agreed. The constant optimizer is relatively straight forward to reason about, as it's completely self contained....