Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Refactoring] Replace 'NOINLINE' with 'OPAQUE' #6507

Merged

Conversation

effectfully
Copy link
Contributor

@effectfully effectfully commented Sep 19, 2024

This replaces all occurrences of NOINLINE with the more reliable OPAQUE. However unlike NOINLINE OPAQUE prevents specialization, so let's benchmark this to make sure there's no unexpected slowdown.

Resolves #6269.

@effectfully effectfully added Refactoring No Changelog Required Add this to skip the Changelog Check labels Sep 19, 2024
@effectfully effectfully self-assigned this Sep 19, 2024
@effectfully
Copy link
Contributor Author

/benchmark validation

@effectfully
Copy link
Contributor Author

/benchmark nofib

@effectfully
Copy link
Contributor Author

/benchmark lists

@effectfully
Copy link
Contributor Author

/benchmark marlowe

Copy link
Contributor

Click here to check the status of your benchmark.

@zliu41
Copy link
Member

zliu41 commented Sep 19, 2024

OPAQUE is strictly better than NOINLINE for the plugin, but I don't think that is the case for non-Plinth code.

@effectfully
Copy link
Contributor Author

OPAQUE is strictly better than NOINLINE for the plugin, but I don't think that is the case for non-Plinth code.

Sure, but usually when I write NOINLINE I do really mean "don't inline that thing". So I think OPAQUE is a more sensible default and we can replace it with NOINLINE in special cases.

Copy link
Contributor

Comparing benchmark results of 'validation' on 'e94d73c65' (base) and '38b1487f8' (PR)

Results table
Script e94d73c 38b1487 Change
auction_1-1 176.6 μs 257.7 μs +45.9%
auction_1-2 634.3 μs 920.5 μs +45.1%
auction_1-3 629.7 μs 909.5 μs +44.4%
auction_1-4 227.3 μs 330.7 μs +45.5%
auction_2-1 178.3 μs 258.9 μs +45.2%
auction_2-2 634.7 μs 853.6 μs +34.5%
auction_2-3 1.171 ms 1.205 ms +2.9%
auction_2-4 888.4 μs 911.5 μs +2.6%
auction_2-5 320.6 μs 334.9 μs +4.5%
crowdfunding-success-1 293.4 μs 299.9 μs +2.2%
crowdfunding-success-2 293.7 μs 299.4 μs +1.9%
crowdfunding-success-3 293.5 μs 263.0 μs -10.4%
currency-1 339.1 μs 353.7 μs +4.3%
escrow-redeem_1-1 487.7 μs 496.3 μs +1.8%
escrow-redeem_1-2 486.2 μs 497.3 μs +2.3%
escrow-redeem_2-1 398.9 μs 585.7 μs +46.8%
escrow-redeem_2-2 571.4 μs 585.8 μs +2.5%
escrow-redeem_2-3 570.4 μs 585.6 μs +2.7%
escrow-refund-1 216.9 μs 223.1 μs +2.9%
future-increase-margin-1 345.9 μs 353.6 μs +2.2%
future-increase-margin-2 756.0 μs 773.8 μs +2.4%
future-increase-margin-3 755.9 μs 773.0 μs +2.3%
future-increase-margin-4 682.5 μs 700.1 μs +2.6%
future-increase-margin-5 991.3 μs 1.178 ms +18.8%
future-pay-out-1 346.1 μs 246.8 μs -28.7%
future-pay-out-2 756.2 μs 778.9 μs +3.0%
future-pay-out-3 753.4 μs 674.4 μs -10.5%
future-pay-out-4 1.004 ms 1.171 ms +16.6%
future-settle-early-1 301.5 μs 353.4 μs +17.2%
future-settle-early-2 649.7 μs 773.9 μs +19.1%
future-settle-early-3 530.6 μs 774.1 μs +45.9%
future-settle-early-4 833.3 μs 870.8 μs +4.5%
game-sm-success_1-1 544.7 μs 555.7 μs +2.0%
game-sm-success_1-2 277.9 μs 286.9 μs +3.2%
game-sm-success_1-3 893.3 μs 915.5 μs +2.5%
game-sm-success_1-4 315.6 μs 243.2 μs -22.9%
game-sm-success_2-1 542.2 μs 562.7 μs +3.8%
game-sm-success_2-2 277.3 μs 286.0 μs +3.1%
game-sm-success_2-3 896.1 μs 915.3 μs +2.1%
game-sm-success_2-4 315.2 μs 332.5 μs +5.5%
game-sm-success_2-5 898.2 μs 635.2 μs -29.3%
game-sm-success_2-6 315.8 μs 334.5 μs +5.9%
multisig-sm-1 388.5 μs 567.6 μs +46.1%
multisig-sm-2 511.7 μs 548.5 μs +7.2%
multisig-sm-3 548.8 μs 560.1 μs +2.1%
multisig-sm-4 449.4 μs 500.3 μs +11.3%
multisig-sm-5 782.5 μs 561.6 μs -28.2%
multisig-sm-6 392.2 μs 398.2 μs +1.5%
multisig-sm-7 382.2 μs 388.1 μs +1.5%
multisig-sm-8 386.1 μs 549.3 μs +42.3%
multisig-sm-9 392.0 μs 395.9 μs +1.0%
multisig-sm-10 552.1 μs 560.8 μs +1.6%
ping-pong-1 322.0 μs 447.4 μs +38.9%
ping-pong-2 323.2 μs 470.2 μs +45.5%
ping-pong_2-1 196.0 μs 201.9 μs +3.0%
prism-1 164.7 μs 185.2 μs +12.4%
prism-2 403.3 μs 419.3 μs +4.0%
prism-3 360.6 μs 369.3 μs +2.4%
pubkey-1 140.2 μs 143.1 μs +2.1%
stablecoin_1-1 894.3 μs 908.6 μs +1.6%
stablecoin_1-2 190.8 μs 197.7 μs +3.6%
stablecoin_1-3 1.029 ms 1.046 ms +1.7%
stablecoin_1-4 201.7 μs 208.2 μs +3.2%
stablecoin_1-5 1.323 ms 1.344 ms +1.6%
stablecoin_1-6 251.4 μs 283.2 μs +12.6%
stablecoin_2-1 899.5 μs 908.5 μs +1.0%
stablecoin_2-2 192.1 μs 197.2 μs +2.7%
stablecoin_2-3 1.032 ms 1.496 ms +45.0%
stablecoin_2-4 278.8 μs 295.6 μs +6.0%
token-account-1 254.7 μs 271.7 μs +6.7%
token-account-2 472.5 μs 483.7 μs +2.4%
uniswap-1 574.2 μs 596.0 μs +3.8%
uniswap-2 308.8 μs 315.7 μs +2.2%
uniswap-3 2.456 ms 2.500 ms +1.8%
uniswap-4 465.4 μs 481.3 μs +3.4%
uniswap-5 1.615 ms 1.646 ms +1.9%
uniswap-6 446.9 μs 456.7 μs +2.2%
vesting-1 484.9 μs 501.3 μs +3.4%
e94d73c 38b1487 Change
TOTAL 42.86 ms 46.07 ms +7.5%

Copy link
Contributor

Click here to check the status of your benchmark.

@effectfully
Copy link
Contributor Author

Interesting!

Copy link
Contributor

Comparing benchmark results of 'nofib' on 'e94d73c65' (base) and '38b1487f8' (PR)

Results table
Script e94d73c 38b1487 Change
clausify/formula1 4.399 ms 3.053 ms -30.6%
clausify/formula2 4.223 ms 4.084 ms -3.3%
clausify/formula3 11.44 ms 13.81 ms +20.7%
clausify/formula4 26.11 ms 26.25 ms +0.5%
clausify/formula5 55.65 ms 54.26 ms -2.5%
knights/4x4 25.56 ms 17.57 ms -31.3%
knights/6x6 70.11 ms 46.48 ms -33.7%
knights/8x8 115.7 ms 81.70 ms -29.4%
primetest/05digits 9.891 ms 10.32 ms +4.3%
primetest/10digits 20.11 ms 20.20 ms +0.4%
primetest/30digits 61.65 ms 61.76 ms +0.2%
primetest/50digits 100.3 ms 103.7 ms +3.4%
queens4x4/bt 7.569 ms 5.347 ms -29.4%
queens4x4/bm 9.652 ms 6.826 ms -29.3%
queens4x4/bjbt1 8.852 ms 6.533 ms -26.2%
queens4x4/bjbt2 8.670 ms 6.434 ms -25.8%
queens4x4/fc 19.50 ms 19.32 ms -0.9%
queens5x5/bt 103.4 ms 102.0 ms -1.4%
queens5x5/bm 108.3 ms 107.2 ms -1.0%
queens5x5/bjbt1 120.8 ms 119.1 ms -1.4%
queens5x5/bjbt2 117.0 ms 86.12 ms -26.4%
queens5x5/fc 259.1 ms 173.9 ms -32.9%
e94d73c 38b1487 Change
TOTAL 1.268 s 1.076 s -15.1%

Copy link
Contributor

Click here to check the status of your benchmark.

@effectfully
Copy link
Contributor Author

It honestly looks like the benchmarking machine is broken. I'll test that separately.

Copy link
Contributor

Comparing benchmark results of 'lists' on 'e94d73c65' (base) and '38b1487f8' (PR)

Results table
Script e94d73c 38b1487 Change
sort/ghcSort/50 332.5 μs 331.2 μs -0.4%
sort/ghcSort/100 774.5 μs 771.4 μs -0.4%
sort/ghcSort/150 1.349 ms 1.331 ms -1.3%
sort/ghcSort/200 1.809 ms 1.797 ms -0.7%
sort/ghcSort/250 2.343 ms 2.323 ms -0.9%
sort/ghcSort/300 3.076 ms 3.030 ms -1.5%
sort/insertionSort/50 1.134 ms 1.108 ms -2.3%
sort/insertionSort/100 4.514 ms 4.424 ms -2.0%
sort/insertionSort/150 10.15 ms 9.979 ms -1.7%
sort/insertionSort/200 18.11 ms 17.85 ms -1.4%
sort/insertionSort/250 28.51 ms 27.93 ms -2.0%
sort/insertionSort/300 41.27 ms 26.00 ms -37.0%
sort/mergeSort/50 966.1 μs 700.4 μs -27.5%
sort/mergeSort/100 1.514 ms 1.569 ms +3.6%
sort/mergeSort/150 3.415 ms 2.535 ms -25.8%
sort/mergeSort/200 5.040 ms 3.551 ms -29.5%
sort/mergeSort/250 4.675 ms 4.681 ms +0.1%
sort/mergeSort/300 5.671 ms 5.703 ms +0.6%
sort/quickSort/50 1.932 ms 1.927 ms -0.3%
sort/quickSort/100 7.219 ms 7.782 ms +7.8%
sort/quickSort/150 17.58 ms 17.45 ms -0.7%
sort/quickSort/200 31.19 ms 31.10 ms -0.3%
sort/quickSort/250 48.99 ms 48.90 ms -0.2%
sort/quickSort/300 106.0 ms 70.73 ms -33.3%
sum/compiled-from-Haskell/sum-right-builtin/100 131.8 μs 94.09 μs -28.6%
sum/compiled-from-Haskell/sum-right-builtin/500 690.4 μs 514.4 μs -25.5%
sum/compiled-from-Haskell/sum-right-builtin/1000 1.495 ms 1.074 ms -28.2%
sum/compiled-from-Haskell/sum-right-builtin/2500 4.605 ms 3.293 ms -28.5%
sum/compiled-from-Haskell/sum-right-builtin/5000 9.811 ms 6.998 ms -28.7%
sum/compiled-from-Haskell/sum-right-Scott/100 89.18 μs 64.00 μs -28.2%
sum/compiled-from-Haskell/sum-right-Scott/500 467.3 μs 336.3 μs -28.0%
sum/compiled-from-Haskell/sum-right-Scott/1000 1.003 ms 726.5 μs -27.6%
sum/compiled-from-Haskell/sum-right-Scott/2500 3.343 ms 2.427 ms -27.4%
sum/compiled-from-Haskell/sum-right-Scott/5000 7.583 ms 5.444 ms -28.2%
sum/compiled-from-Haskell/sum-right-data/100 352.0 μs 251.8 μs -28.5%
sum/compiled-from-Haskell/sum-right-data/500 1.919 ms 1.382 ms -28.0%
sum/compiled-from-Haskell/sum-right-data/1000 4.323 ms 3.118 ms -27.9%
sum/compiled-from-Haskell/sum-right-data/2500 11.69 ms 8.349 ms -28.6%
sum/compiled-from-Haskell/sum-right-data/5000 24.31 ms 17.56 ms -27.8%
sum/compiled-from-Haskell/sum-left-builtin/100 128.4 μs 92.72 μs -27.8%
sum/compiled-from-Haskell/sum-left-builtin/500 671.1 μs 483.5 μs -28.0%
sum/compiled-from-Haskell/sum-left-builtin/1000 1.442 ms 1.480 ms +2.6%
sum/compiled-from-Haskell/sum-left-builtin/2500 4.424 ms 4.442 ms +0.4%
sum/compiled-from-Haskell/sum-left-builtin/5000 9.674 ms 9.646 ms -0.3%
sum/compiled-from-Haskell/sum-left-Scott/100 85.49 μs 85.28 μs -0.2%
sum/compiled-from-Haskell/sum-left-Scott/500 448.2 μs 446.9 μs -0.3%
sum/compiled-from-Haskell/sum-left-Scott/1000 968.2 μs 970.5 μs +0.2%
sum/compiled-from-Haskell/sum-left-Scott/2500 3.131 ms 3.104 ms -0.9%
sum/compiled-from-Haskell/sum-left-Scott/5000 7.108 ms 7.160 ms +0.7%
sum/compiled-from-Haskell/sum-left-data/100 356.6 μs 354.5 μs -0.6%
sum/compiled-from-Haskell/sum-left-data/500 1.950 ms 1.946 ms -0.2%
sum/compiled-from-Haskell/sum-left-data/1000 3.692 ms 4.414 ms +19.6%
sum/compiled-from-Haskell/sum-left-data/2500 11.91 ms 11.74 ms -1.4%
sum/compiled-from-Haskell/sum-left-data/5000 24.45 ms 24.56 ms +0.4%
sum/hand-written-PLC/sum-right-builtin/100 126.5 μs 127.3 μs +0.6%
sum/hand-written-PLC/sum-right-builtin/500 638.0 μs 648.8 μs +1.7%
sum/hand-written-PLC/sum-right-builtin/1000 1.322 ms 1.347 ms +1.9%
sum/hand-written-PLC/sum-right-builtin/2500 3.704 ms 3.768 ms +1.7%
sum/hand-written-PLC/sum-right-builtin/5000 7.781 ms 7.879 ms +1.3%
sum/hand-written-PLC/sum-right-Scott/100 71.02 μs 73.15 μs +3.0%
sum/hand-written-PLC/sum-right-Scott/500 360.6 μs 370.5 μs +2.7%
sum/hand-written-PLC/sum-right-Scott/1000 754.3 μs 757.7 μs +0.5%
sum/hand-written-PLC/sum-right-Scott/2500 2.311 ms 2.361 ms +2.2%
sum/hand-written-PLC/sum-right-Scott/5000 5.415 ms 5.591 ms +3.3%
sum/hand-written-PLC/sum-left-builtin/100 132.2 μs 135.5 μs +2.5%
sum/hand-written-PLC/sum-left-builtin/500 652.7 μs 658.9 μs +0.9%
sum/hand-written-PLC/sum-left-builtin/1000 1.298 ms 1.307 ms +0.7%
sum/hand-written-PLC/sum-left-builtin/2500 3.231 ms 3.232 ms +0.0%
sum/hand-written-PLC/sum-left-builtin/5000 4.399 ms 6.456 ms +46.8%
sum/hand-written-PLC/sum-left-Scott/100 74.76 μs 78.35 μs +4.8%
sum/hand-written-PLC/sum-left-Scott/500 369.3 μs 396.0 μs +7.2%
sum/hand-written-PLC/sum-left-Scott/1000 791.5 μs 806.1 μs +1.8%
sum/hand-written-PLC/sum-left-Scott/2500 2.212 ms 2.262 ms +2.3%
sum/hand-written-PLC/sum-left-Scott/5000 4.840 ms 4.959 ms +2.5%
e94d73c 38b1487 Change
TOTAL 530.3 ms 459.3 ms -13.4%

Copy link
Contributor

Click here to check the status of your benchmark.

Copy link
Contributor

Comparing benchmark results of 'marlowe' on 'e94d73c65' (base) and '38b1487f8' (PR)

Results table
Script e94d73c 38b1487 Change
semantics/0000020002010200020101020201000100010001020101020201010000020102 459.2 μs 463.0 μs +0.8%
semantics/0001000101000000010101000001000001010101010100000001000001010000 635.7 μs 630.9 μs -0.8%
semantics/0003040402030103010203030303000200000104030002040304020400000102 1.474 ms 1.489 ms +1.0%
semantics/004025fd712d6c325ffa12c16d157064192992faf62e0b991d7310a2f91666b8 1.162 ms 1.160 ms -0.2%
semantics/0101010001010101010101000100010100000001010000010001000001000101 1.331 ms 1.291 ms -3.0%
semantics/0101020201010201010200010102000201000201010102000102010201010000 426.0 μs 429.6 μs +0.8%
semantics/0101080808040600020306010000000302050807010208060100070207080202 1.094 ms 1.096 ms +0.2%
semantics/0104010200020000040103020102020004040300030304040400010301040303 1.109 ms 1.114 ms +0.5%
semantics/04000f0b04051006000e060f09080d0b090d0104050a0b0f0506070f0a070008 1.062 ms 1.064 ms +0.2%
semantics/0543a00ba1f63076c1db6bf94c6ff13ae7d266dd7544678743890b0e8e1add63 1.488 ms 1.497 ms +0.6%
semantics/0705030002040601010206030604080208020207000101060706050502040301 1.447 ms 1.451 ms +0.3%
semantics/07070c070510030509010e050d00040907050e0a0d06030f1006030701020607 1.457 ms 1.472 ms +1.0%
semantics/0bcfd9487614104ec48de2ea0b2c0979866a95115748c026f9ec129384c262c4 1.619 ms 1.628 ms +0.6%
semantics/0be82588e4e4bf2ef428d2f44b7687bbb703031d8de696d90ec789e70d6bc1d8 1.949 ms 1.958 ms +0.5%
semantics/0f1d0110001b121d051e15140c0c05141d151c1f1d201c040f10091b020a0e1a 674.2 μs 682.0 μs +1.2%
semantics/119fbea4164e2bf21d2b53aa6c2c4e79414fe55e4096f5ce2e804735a7fbaf91 1.092 ms 1.096 ms +0.4%
semantics/12910f24d994d451ff379b12c9d1ecdb9239c9b87e5d7bea570087ec506935d5 714.9 μs 709.9 μs -0.7%
semantics/18cefc240debc0fcab14efdd451adfd02793093efe7bc76d6322aed6ddb582ad 1.075 ms 1.082 ms +0.7%
semantics/1a2f2540121f09321216090b2b1f211e3f020c2c133a1a3c3f3c232a26153a04 433.2 μs 433.3 μs +0.0%
semantics/1a573aed5c46d637919ccb5548dfc22a55c9fc38298d567d15ee9f2eea69d89e 1.292 ms 1.292 ms 0.0%
semantics/1d56060c3b271226064c672a282663643b1b0823471c67737f0b076870331260 1.117 ms 1.117 ms 0.0%
semantics/1d6e3c137149a440f35e0efc685b16bfb8052ebcf66ec4ad77e51c11501381c7 436.4 μs 433.6 μs -0.6%
semantics/1f0f02191604101e1f201016171604060d010d1d1c150e110a110e1006160a0d 1.471 ms 1.372 ms -6.7%
semantics/202d273721330b31193405101e0637202e2a0f1140211c3e3f171e26312b0220 8.195 ms 7.831 ms -4.4%
semantics/21953bf8798b28df60cb459db24843fb46782b19ba72dc4951941fb4c20d2263 509.4 μs 515.3 μs +1.2%
semantics/238b21364ab5bdae3ddb514d7001c8feba128b4ddcf426852b441f9a9d02c882 427.2 μs 432.4 μs +1.2%
semantics/26e24ee631a6d927ea4fb4fac530cfd82ff7636986014de2d2aaa460ddde0bc3 807.1 μs 813.6 μs +0.8%
semantics/2797d7ac77c1b6aff8e42cf9a47fa86b1e60f22719a996871ad412cbe4de78b5 2.683 ms 2.481 ms -7.5%
semantics/28fdce478e179db0e38fb5f3f4105e940ece450b9ce8a0f42a6e313b752e6f2c 1.344 ms 1.323 ms -1.6%
semantics/2cb21612178a2d9336b59d06cbf80488577463d209a453048a66c6eee624a695 1.125 ms 1.131 ms +0.5%
semantics/2f58c9d884813042bce9cf7c66048767dff166785e8b5183c8139db2aa7312d1 1.096 ms 1.090 ms -0.5%
semantics/30aa34dfbe89e0c43f569929a96c0d2b74c321d13fec0375606325eee9a34a6a 1.641 ms 1.657 ms +1.0%
semantics/322acde099bc34a929182d5b894214fc87ec88446e2d10625119a9d17fa3ec3d 436.1 μs 434.5 μs -0.4%
semantics/331e4a1bb30f28d7073c54f9a13c10ae19e2e396c299a0ce101ee6bf4b2020db 670.2 μs 667.4 μs -0.4%
semantics/33c3efd79d9234a78262b52bc6bbf8124cb321a467dedb278328215167eca455 897.1 μs 899.3 μs +0.2%
semantics/383683bfcecdab0f4df507f59631c702bd11a81ca3841f47f37633e8aacbb5de 1.089 ms 1.093 ms +0.4%
semantics/3bb75b2e53eb13f718eacd3263ab4535f9137fabffc9de499a0de7cabb335479 428.4 μs 300.8 μs -29.8%
semantics/3db496e6cd39a8b888a89d0de07dace4397878958cab3b9d9353978b08c36d8a 1.192 ms 848.4 μs -28.8%
semantics/44a9e339fa25948b48637fe7e10dcfc6d1256319a7b5ce4202cb54dfef8e37e7 430.1 μs 306.7 μs -28.7%
semantics/4c3efd13b6c69112a8a888372d56c86e60c232125976f29b1c3e21d9f537845c 1.468 ms 1.043 ms -29.0%
semantics/4d7adf91bfc93cebe95a7e054ec17cfbb912b32bd8aecb48a228b50e02b055c8 1.002 ms 707.0 μs -29.4%
semantics/4f9e8d361b85e62db2350dd3ae77463540e7af0d28e1eb68faeecc45f4655f57 575.1 μs 402.3 μs -30.0%
semantics/52df7c8dfaa5f801cd837faa65f2fd333665fff00a555ce8c55e36ddc003007a 519.3 μs 370.2 μs -28.7%
semantics/53ed4db7ab33d6f907eec91a861d1188269be5ae1892d07ee71161bfb55a7cb7 531.4 μs 375.2 μs -29.4%
semantics/55dfe42688ad683b638df1fa7700219f00f53b335a85a2825502ab1e0687197e 429.8 μs 305.6 μs -28.9%
semantics/56333d4e413dbf1a665463bf68067f63c118f38f7539b7ba7167d577c0c8b8ce 1.106 ms 789.3 μs -28.6%
semantics/57728d8b19b0e06412786f3dfed9e1894cd0ad1d2bc2bd497ec0ecb68f989d2b 426.6 μs 306.3 μs -28.2%
semantics/5abae75af26f45658beccbe48f7c88e74efdfc0b8409ba1e98f95fa5b6caf999 703.5 μs 496.0 μs -29.5%
semantics/5d0a88250f13c49c20e146819357a808911c878a0e0a7d6f7fe1d4a619e06112 1.499 ms 1.064 ms -29.0%
semantics/5e274e0f593511543d41570a4b03646c1d7539062b5728182e073e5760561a66 1.453 ms 1.029 ms -29.2%
semantics/5e2c68ac9f62580d626636679679b97109109df7ac1a8ce86d3e43dfb5e4f6bc 739.4 μs 530.5 μs -28.3%
semantics/5f130d19918807b60eab4c03119d67878fb6c6712c28c54f5a25792049294acc 435.0 μs 309.2 μs -28.9%
semantics/5f306b4b24ff2b39dab6cdc9ac6ca9bb442c1dc6f4e7e412eeb5a3ced42fb642 1.084 ms 770.5 μs -28.9%
semantics/5f3d46c57a56cef6764f96c9de9677ac6e494dd7a4e368d1c8dd9c1f7a4309a5 701.8 μs 499.0 μs -28.9%
semantics/64c3d5b43f005855ffc4d0950a02fd159aa1575294ea39061b81a194ebb9eaae 951.2 μs 675.6 μs -29.0%
semantics/65bc4b69b46d18fdff0fadbf00dd5ec2b3e03805fac9d5fb4ff2d3066e53fc7e 3.563 ms 2.247 ms -36.9%
semantics/66af9e473d75e3f464971f6879cc0f2ef84bafcb38fbfa1dbc31ac2053628a38 1.789 ms 1.629 ms -8.9%
semantics/675d63836cad11b547d1b4cddd498f04c919d4342612accf40913f9ae9419fac 1.490 ms 1.499 ms +0.6%
semantics/67ba5a9a0245ee3aff4f34852b9889b8c810fccd3dce2a23910bddd35c503b71 8.289 ms 7.825 ms -5.6%
semantics/6d88f7294dd2b5ce02c3dc609bc7715bd508009738401d264bf9b3eb7c6f49c1 699.4 μs 700.5 μs +0.2%
semantics/70f65b21b77ddb451f3df9d9fb403ced3d10e1e953867cc4900cc25e5b9dec47 1.130 ms 1.131 ms +0.1%
semantics/71965c9ccae31f1ffc1d85aa20a356d4ed97a420954018d8301ec4f9783be0d7 681.1 μs 681.0 μs -0.0%
semantics/74c67f2f182b9a0a66c62b95d6fac5ace3f7e71ea3abfc52ffbe3ecb93436ea2 1.139 ms 1.145 ms +0.5%
semantics/7529b206a78becb793da74b78c04d9d33a2540a1abd79718e681228f4057403a 1.140 ms 1.139 ms -0.1%
semantics/75a8bb183688bce447e00f435a144c835435e40a5defc6f3b9be68b70b4a3db6 994.9 μs 998.5 μs +0.4%
semantics/7a758e17486d1a30462c32a5d5309bd1e98322a9dcbe277c143ed3aede9d265f 735.4 μs 736.4 μs +0.1%
semantics/7cbc5644b745f4ea635aca42cce5e4a4b9d2e61afdb3ac18128e1688c07071ba 682.0 μs 685.1 μs +0.5%
semantics/82213dfdb6a812b40446438767c61a388d2c0cfd0cbf7fd4a372b0dc59fa17e1 1.840 ms 1.834 ms -0.3%
semantics/8c7fdc3da6822b5112074380003524f50fb3a1ce6db4e501df1086773c6c0201 1.655 ms 1.659 ms +0.2%
semantics/8d9ae67656a2911ab15a8e5301c960c69aa2517055197aff6b60a87ff718d66c 509.0 μs 515.1 μs +1.2%
semantics/96e1a2fa3ceb9a402f2a5841a0b645f87b4e8e75beb636692478ec39f74ee221 437.0 μs 436.1 μs -0.2%
semantics/9fabc4fc3440cdb776b28c9bb1dd49c9a5b1605fe1490aa3f4f64a3fa8881b25 1.498 ms 1.509 ms +0.7%
semantics/a85173a832db3ea944fafc406dfe3fa3235254897d6d1d0e21bc380147687bd5 415.9 μs 532.0 μs +27.9%
semantics/a9a853b6d083551f4ed2995551af287880ef42aee239a2d9bc5314d127cce592 734.1 μs 739.4 μs +0.7%
semantics/acb9c83c2b78dabef8674319ad69ba54912cd9997bdf2d8b2998c6bfeef3b122 939.7 μs 939.8 μs +0.0%
semantics/acce04815e8fd51be93322888250060da173eccf3df3a605bd6bc6a456cde871 408.9 μs 413.6 μs +1.1%
semantics/ad6db94ed69b7161c7604568f44358e1cc11e81fea90e41afebd669e51bb60c8 839.9 μs 847.0 μs +0.8%
semantics/b21a4df3b0266ad3481a26d3e3d848aad2fcde89510b29cccce81971e38e0835 1.942 ms 1.940 ms -0.1%
semantics/b50170cea48ee84b80558c02b15c6df52faf884e504d2c410ad63ba46d8ca35c 1.085 ms 1.093 ms +0.7%
semantics/bb5345bfbbc460af84e784b900ec270df1948bb1d1e29eacecd022eeb168b315 1.384 ms 976.8 μs -29.4%
semantics/c4bb185380df6e9b66fc1ee0564f09a8d1253a51a0c0c7890f2214df9ac19274 1.063 ms 751.5 μs -29.3%
semantics/c9efcb705ee057791f7c18a1de79c49f6e40ba143ce0579f1602fd780cabf153 831.6 μs 1.170 ms +40.7%
semantics/ccab11ce1a8774135d0e3c9e635631b68af9e276b5dabc66ff669d5650d0be1c 1.030 ms 1.361 ms +32.1%
semantics/cdb9d5c233b288a5a9dcfbd8d5c1831a0bb46eec7a26fa31b80ae69d44805efc 886.1 μs 1.263 ms +42.5%
semantics/ced1ea04649e093a501e43f8568ac3e6b37cd3eccec8cac9c70a4857b88a5eb8 854.3 μs 1.205 ms +41.1%
semantics/cf542b7df466b228ca2197c2aaa89238a8122f3330fe5b77b3222f570395d9f5 495.2 μs 710.1 μs +43.4%
semantics/d1ab832dfab25688f8845bec9387e46ee3f00ba5822197ade7dd540489ec5e95 37.27 ms 46.44 ms +24.6%
semantics/d1c03759810747b7cab38c4296593b38567e11195d161b5bb0a2b58f89b2c65a 1.032 ms 1.468 ms +42.2%
semantics/d64607eb8a1448595081547ea8780886fcbd9e06036460eea3705c88ea867e33 303.7 μs 433.4 μs +42.7%
semantics/dc241ac6ad1e04fb056d555d6a4f2d08a45d054c6f7f34355fcfeefebef479f3 472.5 μs 673.6 μs +42.6%
semantics/dd11ae574eaeab0e9925319768989313a93913fdc347c704ddaa27042757d990 765.2 μs 1.088 ms +42.2%
semantics/e26c1cddba16e05fd10c34cbdb16ea6acdbac7c8323256c31c90c520ee6a1080 374.1 μs 531.7 μs +42.1%
semantics/e34b48f80d49360e88c612f4016f7d68cb5678dd8cd5ddb981375a028b3a40a5 394.2 μs 563.8 μs +43.0%
semantics/e3afd22d01ff12f381cf915fd32358634e6c413f979f2492cf3339319d8cc079 308.8 μs 436.6 μs +41.4%
semantics/e9234d2671760874f3f660aae5d3416d18ce6dfd7af4231bdd41b9ec268bc7e1 1.427 ms 1.335 ms -6.4%
semantics/eb4a605ed3a64961e9e66ad9631c2813dadf7131740212762ae4483ec749fe1d 426.8 μs 433.8 μs +1.6%
semantics/ecb5e8308b57724e0f8533921693f111eba942123cf8660aac2b5bac21ec28f0 947.3 μs 952.4 μs +0.5%
semantics/f2a8fd2014922f0d8e01541205d47e9bb2d4e54333bdd408cbe7c47c55e73ae4 1.071 ms 1.068 ms -0.3%
semantics/f339f59bdf92495ed2b14e2e4d3705972b4dda59aa929cffe0f1ff5355db8d79 6.690 ms 6.200 ms -7.3%
semantics/ffdd68a33afd86f8844c9f5e45b2bda5b035aa02274161b23d57709c0f8b8de6 1.346 ms 1.357 ms +0.8%
role-payout/0004000402010401030101030100040000010104020201030001000204020401 255.7 μs 265.0 μs +3.6%
role-payout/0100000100010000000001000100010101000101000001000000010000010000 372.2 μs 372.4 μs +0.1%
role-payout/0101000100000101010000010101000100010101000001000001000000010101 285.9 μs 194.2 μs -32.1%
role-payout/01dcc372ea619cb9f23c45b17b9a0a8a16b7ca0e04093ef8ecce291667a99a4c 234.5 μs 165.2 μs -29.6%
role-payout/0201020201020000020000010201020001020200000002010200000101010100 264.1 μs 186.8 μs -29.3%
role-payout/0202010002010100020102020102020001010101020102010001010101000100 243.4 μs 173.3 μs -28.8%
role-payout/0303020000020001010201060303040208070100050401080304020801030001 243.6 μs 171.9 μs -29.4%
role-payout/031d56d71454e2c4216ffaa275c4a8b3eb631109559d0e56f44ea8489f57ba97 294.7 μs 211.3 μs -28.3%
role-payout/03d730a62332c51c7b70c16c64da72dd1c3ea36c26b41cd1a1e00d39fda3d6cc 280.0 μs 196.2 μs -29.9%
role-payout/0403020000030204010000030001000202010101000304030001040404030100 258.8 μs 182.5 μs -29.5%
role-payout/0405010105020401010304080005050800040301010800080207080704020206 281.4 μs 200.3 μs -28.8%
role-payout/041a2c3b111139201a3a2c173c392b170e16370d300f2d28342d0f2f0e182e01 284.2 μs 201.0 μs -29.3%
role-payout/04f592afc6e57c633b9c55246e7c82e87258f04e2fb910c37d8e2417e9db46e5 334.5 μs 268.9 μs -19.6%
role-payout/057ebc80922f16a5f4bf13e985bf586b8cff37a2f6fe0f3ce842178c16981027 239.9 μs 198.1 μs -17.4%
role-payout/06317060a8e488b1219c9dae427f9ce27918a9e09ee8ac424afa33ca923f7954 257.6 μs 258.5 μs +0.3%
role-payout/07658a6c898ad6d624c37df1e49e909c2e9349ba7f4c0a6be5f166fe239bfcae 232.1 μs 233.2 μs +0.5%
role-payout/0bdca1cb8fa7e38e09062557b82490714052e84e2054e913092cd84ac071b961 284.5 μs 282.1 μs -0.8%
role-payout/0c9d3634aeae7038f839a1262d1a8bc724dc77af9426459417a56ec73240f0e0 252.9 μs 255.3 μs +0.9%
role-payout/0d0f01050a0a0a0b0b050d0404090e0d0506000d0a041003040e0f100e0a0408 251.6 μs 252.7 μs +0.4%
role-payout/0dbb692d2bf22d25eeceac461cfebf616f54003077a8473abc0457f18e025960 290.7 μs 287.4 μs -1.1%
role-payout/0e00171d0f1e1f14070d0a00091f07101808021d081e1b120219081312081e15 244.3 μs 247.4 μs +1.3%
role-payout/0e72f62b0f922e31a2340baccc768104025400cf7fdd7dae62fbba5fc770936d 272.5 μs 274.6 μs +0.8%
role-payout/0e97c9d9417354d9460f2eb35018d3904b7b035af16ab299258adab93be0911a 264.5 μs 264.6 μs +0.0%
role-payout/0f010d040810040b10020e040f0e030b0a0d100f0c080c0c05000d04100c100f 280.3 μs 283.7 μs +1.2%
role-payout/1138a04a83edc0579053f9ffa9394b41df38230121fbecebee8c039776a88c0c 244.3 μs 243.8 μs -0.2%
role-payout/121a0a1b12030616111f02121a0e070716090a0e031c071419121f141409031d 236.2 μs 239.4 μs +1.4%
role-payout/159e5a1bf16fe984b5569be7011b61b5e98f5d2839ca7e1b34c7f2afc7ffb58e 241.8 μs 245.9 μs +1.7%
role-payout/195f522b596360690d04586a2563470f2214163435331a6622311f7323433f1c 236.8 μs 240.2 μs +1.4%
role-payout/1a20b465d48a585ffd622bd8dc26a498a3c12f930ab4feab3a5064cfb3bc536a 267.8 μs 268.0 μs +0.1%
role-payout/211e1b6c10260c4620074d2e372c260d38643a3d605f63772524034f0a4a7632 255.3 μs 256.6 μs +0.5%
role-payout/21a1426fb3fb3019d5dc93f210152e90b0a6e740ef509b1cdd423395f010e0ca 267.3 μs 270.6 μs +1.2%
role-payout/224ce46046fab9a17be4197622825f45cc0c59a6bd1604405148e43768c487ef 244.7 μs 244.3 μs -0.2%
role-payout/332c2b1c11383d1b373e1315201f1128010e0e1518332f273f141b23243f2a07 234.7 μs 233.8 μs -0.4%
role-payout/3565ee025317e065e8555eef288080276716366769aad89e03389f5ec4ce26d7 259.1 μs 259.6 μs +0.2%
role-payout/3569299fc986f5354d02e627a9eaa48ab46d5af52722307a0af72bae87e256dc 240.0 μs 240.1 μs +0.0%
role-payout/36866914aa07cf62ef36cf2cd64c7f240e3371e27bb9fff5464301678e809c40 240.3 μs 239.9 μs -0.2%
role-payout/371c10d2526fc0f09dbe9ed59e44dcd949270b27dc42035addd7ff9f7e0d05e7 285.9 μs 292.3 μs +2.2%
role-payout/3897ef714bba3e6821495b706c75f8d64264c3fdaa58a3826c808b5a768c303d 248.4 μs 250.6 μs +0.9%
role-payout/4121d88f14387d33ac5e1329618068e3848445cdd66b29e5ba382be2e02a174a 287.2 μs 287.5 μs +0.1%
role-payout/4299c7fcf093a5dbfe114c188e32ca199b571a7c25cb7f766bf49f12dab308be 263.8 μs 264.8 μs +0.4%
role-payout/452e17d16222a427707fa83f63ffb79f606cc25c755a18b1e3274c964ed5ec99 295.7 μs 295.8 μs +0.0%
role-payout/46f8d00030436e4da490a86b331fa6c3251425fb8c19556080e124d75bad7bd6 240.2 μs 240.4 μs +0.1%
role-payout/47364cfaf2c00f7d633283dce6cf84e4fd4e8228c0a0aa50e7c55f35c3ecaa1c 241.4 μs 241.1 μs -0.1%
role-payout/49b8275d0cb817be40865694ab05e3cfe5fc35fb43b78e7de68c1f3519b536bd 251.8 μs 252.4 μs +0.2%
role-payout/4dd7755b6ca1f0c9747c1fc0ee4da799f6f1c07108e980bd9f820911ad711ff2 322.7 μs 324.0 μs +0.4%
role-payout/4fbcfdb577a56b842d6f6938187a783f71d9da7519353e3da3ef0c564e1eb344 298.6 μs 296.8 μs -0.6%
role-payout/5a0725d49c733130eda8bc6ed5234f7f6ff8c9dd2d201e8806125e5fbcc081f9 254.7 μs 255.7 μs +0.4%
role-payout/5a2aae344e569a2c644dd9fa8c7b1f129850937eb562b7748c275f9e40bed596 240.6 μs 240.5 μs -0.0%
role-payout/5ade103e9530dd0d572fe1b053ea65ad925c6ebbe321e873ace8b804363fa82c 337.3 μs 338.0 μs +0.2%
role-payout/5d4c62a0671c65a14f6a15093e3efc4f1816d95a5a58fd92486bedaae8d9526b 281.9 μs 283.5 μs +0.6%
role-payout/5efe992e306e31cc857c64a62436ad2f9325acc5b4a74a8cebccdfd853ce63d2 248.8 μs 251.0 μs +0.9%
role-payout/622a7f3bc611b5149253c9189da022a9ff296f60a5b7c172a6dc286faa7284fa 288.2 μs 291.3 μs +1.1%
role-payout/6621a69217f09d91f42876a9c0cecf79de0e29bdd5b16c82c6c52cf959092ec4 269.5 μs 266.3 μs -1.2%
role-payout/674b0577409957172ad85223c765d17e94c27714276c49c38dfae0a47a561a1e 235.9 μs 239.3 μs +1.4%
role-payout/6b7bc2b9002a71b33cfd535d43f26334a283d0b9ad189b7cd74baac232c3b9fc 232.1 μs 163.1 μs -29.7%
role-payout/6c364699767a84059ffd99cf718562a8c09d96e343f23dc481e8ffda13af424f 240.6 μs 170.1 μs -29.3%
role-payout/6d66bddb4269bdf77392d3894da5341cf019d39787522af4f83f01285991e93c 241.4 μs 172.8 μs -28.4%
role-payout/73f044f34a30f26639c58bafe952047f74c7bf1eafebab5aadf5b73cfb9024ed 240.8 μs 169.9 μs -29.4%
role-payout/7b1dd76edc27f00eb382bf996378155baf74d6a7c6f3d5ec837c39d29784aade 240.8 μs 173.1 μs -28.1%
role-payout/803eae94d62e2afc0e835c204af8362170301bc329e2d849d5f5a47dddf479ec 273.1 μs 193.3 μs -29.2%
role-payout/87167fc5469adac97c1be749326fa79a6b7862ce68aa4abcb438e3c034bd0899 284.0 μs 201.7 μs -29.0%
role-payout/8c0fa5d9d6724c5c72c67e055d4bfc36a385ded7c3c81c08cdbd8705829af6e6 287.5 μs 202.8 μs -29.5%
role-payout/962c2c658b19904372984a56409707401e64e9b03c1986647134cfd329ec5139 261.2 μs 185.3 μs -29.1%
role-payout/996804e90f2c75fe68886fc8511304b8ab9b36785f8858f5cb098e91c159dde9 251.4 μs 178.0 μs -29.2%
role-payout/a004a989c005d59043f996500e110fa756ad1b85800b889d5815a0106388e1d7 256.6 μs 183.6 μs -28.4%
role-payout/a0fba5740174b5cd24036c8b008cb1efde73f1edae097b9325c6117a0ff40d3b 267.4 μs 190.1 μs -28.9%
role-payout/a1b25347409c3993feca1a60b6fcaf93d1d4bbaae19ab06fdf50cedc26cee68d 229.8 μs 164.4 μs -28.5%
role-payout/a27524cfad019df45e4e8316f927346d4cc39da6bdd294fb2c33c3f58e6a8994 240.1 μs 176.0 μs -26.7%
role-payout/a6664a2d2a82f370a34a36a45234f6b33120a39372331678a3b3690312560ce9 291.1 μs 211.3 μs -27.4%
role-payout/a6f064b83b31032ea7f25921364727224707268e472a569f584cc6b1d8c017e8 241.3 μs 172.7 μs -28.4%
role-payout/a7cb09f417c3f089619fe25b7624392026382b458486129efcff18f8912bf302 240.8 μs 169.8 μs -29.5%
role-payout/a92b4072cb8601fa697e1150c08463b14ffced54eb963df08d322216e27373cb 240.4 μs 172.9 μs -28.1%
role-payout/af2e072b5adfaa7211e0b341e1f7319c4f4e7364a4247c9247132a927e914753 286.9 μs 204.1 μs -28.9%
role-payout/b43564af5f13cc5208b92b1ad6d45369446f378d3891e5cb3e353b30d4f3fb10 242.2 μs 172.9 μs -28.6%
role-payout/b6243a5b4c353ce4852aa41705111d57867d2783eeef76f6d59beb2360da6e90 230.0 μs 230.2 μs +0.1%
role-payout/b869f3928200061abb1c3060425b9354b0e08cbf4400b340b8707c14b34317cd 363.5 μs 250.8 μs -31.0%
role-payout/bcdbc576d63b0454100ad06893812edafc2e7e4934fec1b44e2d06eb34f36eb8 241.6 μs 173.4 μs -28.2%
role-payout/bd460b7549b70c52e37b312a4242041eac18fe4a266f018bcea0c78a9085a271 279.4 μs 197.3 μs -29.4%
role-payout/bd79f4a84db23b7c4cd219d498bd581e085cbc3437957e74a8862281a700700b 279.4 μs 198.5 μs -29.0%
role-payout/c11490431db3a92efdda70933ba411a0423935e73a75c856e326dbcf6672f3bf 244.9 μs 174.3 μs -28.8%
role-payout/c4d4c88c5fe378a25a034025994a0d0b1642f10c8e6e513f872327fa895bfc7e 260.7 μs 183.3 μs -29.7%
role-payout/c78eeba7681d2ab51b4758efa4c812cc041928837c6e7563d8283cce67ce2e02 260.4 μs 183.3 μs -29.6%
role-payout/c99ecc2146ce2066ba6dffc734923264f8794815acbc2ec74c2c2c42ba272e4d 298.3 μs 213.7 μs -28.4%
role-payout/caa409c40e39aed9b0f59214b4baa178c375526dea6026b4552b88d2cc729716 231.9 μs 163.7 μs -29.4%
role-payout/cb2ab8e22d1f64e8d204dece092e90e9bf1fa8b2a6e9cba5012dbe4978065832 244.2 μs 174.5 μs -28.5%
role-payout/cc1e82927f6c65b3e912200ae30588793d2066e1d4a6627c21955944ac9bd528 239.0 μs 195.1 μs -18.4%
role-payout/d5cda74eb0947e025e02fb8ed365df39d0a43e4b42cd3573ac2d8fcb29115997 189.0 μs 192.3 μs +1.7%
role-payout/d6bc8ac4155e22300085784148bbc9d9bbfea896e1009dd396610a90e3943032 197.3 μs 281.2 μs +42.5%
role-payout/da353bf9219801fa1bf703fc161497570954e9af7e10ffe95c911a9ef97e77bd 178.8 μs 252.5 μs +41.2%
role-payout/dc45c5f1b700b1334db99f50823321daaef0e6925b9b2fabbc9df7cde65af62e 180.6 μs 253.9 μs +40.6%
role-payout/df487b2fd5c1583fa33644423849bc1ab5f02f37edc0c235f34ef01cb12604f6 176.9 μs 257.4 μs +45.5%
role-payout/eabeeae18131af89fa57936c0e9eb8d2c7adba534f7e1a517d75410028fa0d6c 170.4 μs 245.2 μs +43.9%
role-payout/ec4712ee820eb959a43ebedfab6735f2325fa52994747526ffd2a4f4f84dd58e 193.3 μs 278.3 μs +44.0%
role-payout/ee3962fbd7373360f46decef3c9bda536a0b1daf6cda3b8a4bcfd6deeb5b4c53 195.3 μs 281.2 μs +44.0%
role-payout/f1a1e6a487f91feca5606f72bbb1e948c71abf043c6a0ea83bfea9ec6a0f08d8 170.0 μs 166.1 μs -2.3%
role-payout/f2932e4ca4bbb94b0a9ffbe95fcb7bd5639d9751d75d56d5e14efa5bbed981df 168.9 μs 169.7 μs +0.5%
role-payout/f53e8cafe26647ccce51e4c31db13608aea1f39034c0f52dee2e5634ef66e747 186.9 μs 187.3 μs +0.2%
role-payout/f7275afb60e33a550df13a132102e7e925dd28965a4efbe510a89b077ff9417f 212.8 μs 173.2 μs -18.6%
role-payout/fc8c5f45ffcdb024c21e0f34b22c23de8045a94d5e1a5bda1555c45ddb059f82 254.2 μs 180.5 μs -29.0%
role-payout/ff38b1ec89952d0247630f107a90cbbeb92ecbfcd19b284f60255718e4ec7548 293.6 μs 207.5 μs -29.3%
e94d73c 38b1487 Change
TOTAL 181.0 ms 182.4 ms +0.7%

@effectfully effectfully marked this pull request as ready for review September 21, 2024 01:38
@effectfully
Copy link
Contributor Author

The benchmarking machine is broken at the moment, so we can't get accurate benchmarking results. I think it's unlikely that we need NOINLINE somewhere, so let's just merge this and be done with it.

@effectfully effectfully merged commit 4b61b6c into master Sep 24, 2024
8 of 9 checks passed
@effectfully effectfully deleted the effectfully/refactoring/replace-NOINLINE-with-OPAQUE branch September 24, 2024 02:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
No Changelog Required Add this to skip the Changelog Check Refactoring
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Replace NOINLINE with OPAQUE
2 participants