Opened 9 years ago
Last modified 9 years ago
#9231 closed Bugs
Suboptimal assignment — at Initial Version
Reported by: | Domagoj Šarić | Owned by: | |
---|---|---|---|
Milestone: | To Be Determined | Component: | multiprecision |
Version: | Boost 1.54.0 | Severity: | Optimization |
Keywords: | Cc: |
Description
Hi, we're using your MP library, with the cpp_int_backend and fixed sized numbers, along with the "Maybe Boost Hash" library to implement lightweight RSA signature verification (previously done with LibTomCrypt+LibTomMath), so first of all thanks for making this possible ;)
Unless otherwise stated, always assume I'm using MSVC10 32bit (with /Oxs /GL /LTCG) with the above use case (fixed size cpp_ints)...
Now, onto the issues ;D
I would expect do_assign() to simply evaluate to simply std::memcpy, however it does not:
- it seems that the this->resize(other.size(), other.size()); call fails to resolve to a nop (check your code)
- why are you using "checked std::copy" instead of a straigh std::memcpy?
ps. MSVC has a very nice debugger and disassembly window so I'll refrain from posting codegen in any of my tickets.