Closed
Description
WebAssembly doesn't have 128-bit integers, so on wasm targets LLVM implements 128-bit multiplies with a libcall to __multi3
. That's slower than just doing arithmetic on smaller units.
I patched the rsa
crate to remove the u64_digit
feature from the num-bigint-dig
dependency, and tested the patched version with the blind-rsa-signatures
crate. The toy demo app I tested ran 15% faster under Wasmtime with this patch.
It would be nice if either this crate or num-bigint-dig
would automatically determine what limb size to use based on the build target. Barring that, perhaps this crate should expose its own u64_digit
feature that forwards to num-bigint-dig
.
Metadata
Metadata
Assignees
Labels
No labels