crypto/sha,crypto/sha256: consider dropping extension-less assembly implementations #71525
Labels
Implementation
Issues describing a semantics-preserving change to the Go implementation.
NeedsDecision
Feedback is required from experts, contributors, and/or the community before a change can be made.
Performance
We should consider dropping the SHA assembly implementations that are written in pure assembly that target processors lacking either AVX or SHA native instructions. These assembly cores are very large and rather complex, and create a rather large maintenance and testing burden.
The value of these cores is becoming more and more limited, as processors which lack the relevant extensions are becoming relatively rare. The last Intel processor generation that lacked AVX was Nehalem/Westlake, which was succeeded by Sandy Bridge in 2011, and the last AMD processor generation that lacked AVX was Phenom, succeeded by Bulldozer in 2011.
Removing these cores would represent a win in terms of reducing the amount of assembly that needs to be maintained. We should weigh the trade-off here of making SHA operations slower on >14 year old processors.
cc @golang/security @FiloSottile
The text was updated successfully, but these errors were encountered: