HomePhabricator

Sprinkle some sweet noexcepts over the RNG code

Description

Sprinkle some sweet noexcepts over the RNG code

Summary:
Partial backport of Core PR14955
https://github.com/bitcoin/bitcoin/pull/14955/commits/a1f252eda87356fa329c838a7bf569808489648f

Depends on D4395

Test Plan:

make check
./bench/bench_bitcoin

Benchmark output:

Benchmark, evals, iterations, total, min, max, median
AES128CBC_DecryptNoPad, 5, 200000, 7.76418, 7.71943e-06, 7.81508e-06, 7.74418e-06
AES128CBC_DecryptWithPad, 5, 200000, 7.5938, 7.54535e-06, 7.66289e-06, 7.57333e-06
AES128CBC_EncryptNoPad, 5, 200000, 7.36773, 7.198e-06, 7.73853e-06, 7.30109e-06
AES128CBC_EncryptWithPad, 5, 200000, 8.10075, 7.90823e-06, 8.3087e-06, 8.14945e-06
AES128_Decrypt, 5, 800000, 7.13177, 1.76063e-06, 1.81397e-06, 1.77959e-06
AES128_Encrypt, 5, 800000, 6.89351, 1.70942e-06, 1.75964e-06, 1.7161e-06
AES256CBC_DecryptNoPad, 5, 160000, 7.77314, 9.51821e-06, 9.85725e-06, 9.73539e-06
AES256CBC_DecryptWithPad, 5, 160000, 7.84954, 9.66903e-06, 1.02487e-05, 9.67766e-06
AES256CBC_EncryptNoPad, 5, 160000, 7.47867, 9.17154e-06, 9.62185e-06, 9.33446e-06
AES256CBC_EncryptWithPad, 5, 160000, 8.20249, 1.01382e-05, 1.03722e-05, 1.02145e-05
AES256_Decrypt, 5, 640000, 5.71321, 1.76537e-06, 1.80652e-06, 1.78055e-06
AES256_Encrypt, 5, 640000, 5.54428, 1.71406e-06, 1.74827e-06, 1.73212e-06
Base58CheckEncode, 5, 320000, 3.34041, 2.06831e-06, 2.13532e-06, 2.07914e-06
Base58Decode, 5, 800000, 3.47966, 8.59457e-07, 8.82975e-07, 8.64745e-07
Base58Encode, 5, 470000, 3.05094, 1.27786e-06, 1.33826e-06, 1.28919e-06
BenchLockedPool, 5, 530, 4.71706, 0.00174215, 0.0018301, 0.00176626
BnBExhaustion, 5, 650, 2.9524, 0.000895282, 0.000929286, 0.000906323
CCheckQueueSpeedPrevectorJob, 5, 1400, 4.43156, 0.000613324, 0.000653541, 0.000633404
CCoinsCaching, 5, 170000, 2.49905, 2.61282e-06, 3.88149e-06, 2.71856e-06
CashAddrDecode, 5, 800000, 3.30446, 8.21157e-07, 8.36882e-07, 8.23732e-07
CashAddrEncode, 5, 800000, 2.37713, 4.08393e-07, 7.5294e-07, 5.84691e-07
CoinSelection, 5, 650, 0.712802, 0.000218753, 0.000219699, 0.000219437
ConstructGCSFilter, 5, 1000, 7.74431, 0.00151097, 0.00156355, 0.00155993
DeserializeAndCheckBlockTest, 5, 160, 7.72308, 0.00956237, 0.0097374, 0.00966744
DeserializeBlockTest, 5, 130, 3.76622, 0.00493366, 0.00703804, 0.00507304
FastRandom_1bit, 5, 440000000, 4.80422, 2.0622e-09, 2.33977e-09, 2.093e-09
FastRandom_32bit, 5, 110000000, 5.62574, 9.22195e-09, 1.33572e-08, 9.4501e-09
MatchGCSFilter, 5, 50000, 6.31522, 2.43371e-05, 2.56257e-05, 2.55857e-05
MempoolEviction, 5, 41000, 4.05736, 1.85055e-05, 2.44606e-05, 1.86552e-05
MerkleRoot, 5, 800, 26.3567, 0.00652712, 0.0067625, 0.00656133
PrevectorClearNontrivial, 5, 28300, 9.30475, 6.56267e-05, 6.59117e-05, 6.57215e-05
PrevectorClearTrivial, 5, 88600, 16.8615, 3.7516e-05, 3.88787e-05, 3.80711e-05
PrevectorDeserializeNontrivial, 5, 6800, 2.49856, 7.19966e-05, 7.56962e-05, 7.21425e-05
PrevectorDeserializeTrivial, 5, 52000, 3.29658, 1.24636e-05, 1.27943e-05, 1.27885e-05
PrevectorDestructorNontrivial, 5, 28800, 9.89368, 6.75929e-05, 7.23502e-05, 6.77406e-05
PrevectorDestructorTrivial, 5, 88900, 5.42173, 1.15817e-05, 1.43287e-05, 1.16615e-05
PrevectorResizeNontrivial, 5, 28900, 5.40892, 3.70762e-05, 3.81311e-05, 3.71407e-05
PrevectorResizeTrivial, 5, 90300, 6.33541, 1.33948e-05, 1.51491e-05, 1.36125e-05
RIPEMD160, 5, 440, 5.13205, 0.00228526, 0.00244163, 0.00230855
RollingBloom, 5, 1500000, 3.9022, 4.98196e-07, 5.68528e-07, 5.11341e-07
RpcMempool, 5, 40, 4.34766, 0.0213813, 0.0224049, 0.0216815
SHA1, 5, 570, 4.99945, 0.00173522, 0.00180181, 0.0017417
SHA256, 5, 340, 6.08309, 0.00294647, 0.00451245, 0.00361414
SHA256D64_1024, 5, 7400, 27.4777, 0.000733192, 0.000754095, 0.000741837
SHA256_32b, 5, 4700000, 5.33407, 2.12022e-07, 2.85587e-07, 2.12509e-07
SHA512, 5, 330, 4.56999, 0.00273323, 0.00283063, 0.00275855
SipHash_32b, 5, 40000000, 5.36399, 2.62677e-08, 2.77298e-08, 2.67231e-08
Sleep100ms, 5, 10, 5.00405, 0.100078, 0.100083, 0.100082
Trig, 5, 12000000, 1.22943, 1.93016e-08, 2.27244e-08, 1.95578e-08

Reviewers: deadalnix, Fabien, jasonbcox, O1 Bitcoin ABC, #bitcoin_abc

Reviewed By: deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

Differential Revision: https://reviews.bitcoinabc.org/D4396

Details

Provenance
Pieter Wuille <pieter.wuille@gmail.com>Authored on Dec 17 2018, 23:11
nakihitoCommitted on Nov 8 2019, 18:55
nakihitoPushed on Nov 8 2019, 18:55
Reviewer
Restricted Owners Package
Differential Revision
D4396: Sprinkle some sweet noexcepts over the RNG code
Parents
rABC5e0d8de68df6: [CI] Run the thread sanitizer as part of the CI
Branches
Unknown
Tags
Unknown