Now that 0.15 is branched off, enable assembler SHA256 optimizations by default, but still allow disabling them, for example if something goes wrong with auto-detection on a platform.
Also add mention of the use of asm in the configure summary.
Now that 0.15 is branched off, enable assembler SHA256 optimizations by default, but still allow disabling them, for example if something goes wrong with auto-detection on a platform.
Also add mention of the use of asm in the configure summary.
Now that 0.15 is branched off, enable assembler SHA256 optimizations by default.
Should the flag mention SHA256 like --enable-asm-sha256
?
Either way LGTM.
Should the flag mention SHA256 like –enable-asm-sha256?
No, I think we should have a general asm flag, build-side, as this does. This is similar to OpenSSL’s flag to use assembly or not. Something else creates too many combinations to test, and I don’t see why it would be useful. (besides testing, but run-time selection is much more useful for that)
Ok, just had to ask.
utACK 538cc0c.
If this is meant for 0.15, the release notes need to be updated. They currently read
SHA256 hashing has been optimized for architectures supporting SSE 4 (See PR 10182). SHA256 is around 50% faster on supported hardware, which results in around 5% faster IBD and block validation. In version 0.15, SHA256 hardware optimization is disabled in release builds by default, but can be enabled by using –enable-experimental-asm when building.
No, this is not meant for 0.15, certainly not for 0.15.0
Now that 0.15 is branched off, enable assembler SHA256 optimizations by default
Do we all want to include them under “–enable-asm” or will they first go into a reinstated “–enable-experimental-asm” before being promoted?
Both are valid options, we should probably decide on a case by case basis - depending on how much we trust the code, how long it can be in master until the release.
Posthumous review comment: Is USE_ASM meant to be a catch-all for any other assembly optimizations added in the future, or is it solely for the SHA256 optimizations? I ask because the language in the changes is a little ambiguous (IMO). I’d like to fix that. I just don’t want to step on toes first.
Thanks.