-
Notifications
You must be signed in to change notification settings - Fork 146
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
Add remaining rewrite rules for saturated arithmetic #1778
base: master
Are you sure you want to change the base?
Conversation
968ddba
to
68a01c7
Compare
68a01c7
to
73a5072
Compare
73a5072
to
1588b10
Compare
e6e9362
to
87f239d
Compare
The timing does not look promising. Timing Diff
|
Profiling data
|
profile of just the new rewrite rules
|
Seems to be responsible for 23.0% of the cost of rewrite rules in mit-plv/fiat-crypto#1778, with a single call taking 168.429s.
* Add profiling for cbn Seems to be responsible for 23.0% of the cost of rewrite rules in mit-plv/fiat-crypto#1778, with a single call taking 168.429s. * Drop Coq < 8.17 The Ltac2 support is not good enough.
This should hopefully speed up reduction significantly. Timing is a bit of a mixed bag (on ArithWithCasts in particular), but overall good, and very good for mit-plv/fiat-crypto#1778. <details><summary>Timing Diff (Only Complex NBE)</summary> <p> ``` After | Peak Mem | File Name | Before | Peak Mem || Change || Change (mem) | % Change | % Change (mem) --------------------------------------------------------------------------------------------------------------------------------- 6m27.38s | 4352640 ko | Total Time / Peak Mem | 10m36.83s | 4349248 ko || -4m09.44s || 3392 ko | -39.16% | +0.07% --------------------------------------------------------------------------------------------------------------------------------- 5m30.19s | 4352640 ko | Rewriter/Passes/NBE.vo | 9m38.79s | 4349248 ko || -4m08.59s || 3392 ko | -42.95% | +0.07% 0m56.36s | 833016 ko | Rewriter/RulesProofs.vo | 0m57.16s | 833032 ko || -0m00.79s || -16 ko | -1.39% | -0.00% 0m00.84s | 457988 ko | Rewriter/Rules.vo | 0m00.89s | 456124 ko || -0m00.05s || 1864 ko | -5.61% | +0.40% ``` </p> </details> <details><summary>Timing Diff (Full Fiat Cryptography)</summary> <p> ``` After | Peak Mem | File Name | Before | Peak Mem || Change || Change (mem) | % Change | % Change (mem) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 70m31.96s | 3445468 ko | Total Time / Peak Mem | 71m53.60s | 3539572 ko || -1m21.63s || -94104 ko | -1.89% | -2.65% -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 8m05.37s | 2661168 ko | Bedrock/End2End/X25519/GarageDoor.vo | 8m27.50s | 2661956 ko || -0m22.12s || -788 ko | -4.36% | -0.02% 4m36.32s | 2492748 ko | Bedrock/End2End/X25519/EdwardsXYZT.vo | 4m52.33s | 2493256 ko || -0m16.00s || -508 ko | -5.47% | -0.02% 3m31.47s | 3445468 ko | Rewriter/Passes/ArithWithCasts.vo | 3m19.41s | 3539572 ko || +0m12.06s || -94104 ko | +6.04% | -2.65% 2m31.42s | 3335368 ko | Rewriter/Passes/NBE.vo | 2m40.05s | 3327880 ko || -0m08.62s || 7488 ko | -5.39% | +0.22% 3m41.83s | 2295144 ko | Assembly/WithBedrock/Proofs.vo | 3m49.57s | 2298492 ko || -0m07.74s || -3348 ko | -3.37% | -0.14% 5m28.65s | 3181688 ko | Bedrock/Field/Synthesis/Examples/p224_64_new.vo | 5m34.17s | 3178616 ko || -0m05.52s || 3072 ko | -1.65% | +0.09% 2m53.06s | 2655348 ko | Bedrock/End2End/RupicolaCrypto/ChaCha20.vo | 2m56.57s | 2650952 ko || -0m03.50s || 4396 ko | -1.98% | +0.16% 1m52.75s | 2518796 ko | Rewriter/Passes/ToFancyWithCasts.vo | 1m56.20s | 2474660 ko || -0m03.45s || 44136 ko | -2.96% | +1.78% 1m24.67s | 1532696 ko | Assembly/EquivalenceProofs.vo | 1m28.52s | 1535932 ko || -0m03.84s || -3236 ko | -4.34% | -0.21% 1m00.24s | 1362776 ko | Assembly/WithBedrock/SymbolicProofs.vo | 1m03.25s | 1362872 ko || -0m03.00s || -96 ko | -4.75% | -0.00% 2m05.92s | 1385148 ko | Bedrock/End2End/X25519/Field25519.vo | 2m08.40s | 1392128 ko || -0m02.48s || -6980 ko | -1.93% | -0.50% 1m24.77s | 1103548 ko | Rewriter/Rewriter/Examples/PerfTesting/LiftLetsMap.vo | 1m22.51s | 1089068 ko || +0m02.25s || 14480 ko | +2.73% | +1.32% 1m00.12s | 1393880 ko | Rewriter/Rewriter/Examples/PerfTesting/SieveOfEratosthenes.vo | 1m02.89s | 1390884 ko || -0m02.77s || 2996 ko | -4.40% | +0.21% 0m44.20s | 1118240 ko | Bedrock/Field/Translation/Proofs/ValidComputable/Expr.vo | 0m46.28s | 1118352 ko || -0m02.07s || -112 ko | -4.49% | -0.01% 0m31.16s | 900084 ko | Rewriter/Rewriter/Examples/PrefixSums.vo | 0m28.63s | 907212 ko || +0m02.53s || -7128 ko | +8.83% | -0.78% 2m36.62s | 1100532 ko | Fancy/Compiler.vo | 2m34.73s | 1100132 ko || +0m01.89s || 400 ko | +1.22% | +0.03% 1m34.79s | 1951088 ko | SlowPrimeSynthesisExamples.vo | 1m36.21s | 1951248 ko || -0m01.42s || -160 ko | -1.47% | -0.00% 1m33.18s | 2069588 ko | Fancy/Barrett256.vo | 1m31.93s | 2069544 ko || +0m01.25s || 44 ko | +1.35% | +0.00% 1m18.16s | 838412 ko | PushButtonSynthesis/SolinasReductionReificationCache.vo | 1m19.76s | 838420 ko || -0m01.60s || -8 ko | -2.00% | -0.00% 1m02.83s | 869272 ko | AbstractInterpretation/Wf.vo | 1m04.11s | 869412 ko || -0m01.28s || -140 ko | -1.99% | -0.01% 0m51.65s | 1151212 ko | Rewriter/Rewriter/Examples.vo | 0m49.69s | 1153560 ko || +0m01.96s || -2348 ko | +3.94% | -0.20% 0m51.51s | 1119120 ko | Rewriter/Passes/MultiRetSplit.vo | 0m52.90s | 1095208 ko || -0m01.39s || 23912 ko | -2.62% | +2.18% 0m49.53s | 724296 ko | PushButtonSynthesis/WordByWordMontgomeryReificationCache.vo | 0m48.35s | 724252 ko || +0m01.17s || 44 ko | +2.44% | +0.00% 0m46.34s | 1884328 ko | Fancy/Montgomery256.vo | 0m48.15s | 1882076 ko || -0m01.80s || 2252 ko | -3.75% | +0.11% 0m36.20s | 653060 ko | PushButtonSynthesis/UnsaturatedSolinasReificationCache.vo | 0m37.53s | 653104 ko || -0m01.32s || -44 ko | -3.54% | -0.00% 0m31.04s | 1254384 ko | Bedrock/End2End/X25519/GarageDoorTop.vo | 0m32.14s | 1255108 ko || -0m01.10s || -724 ko | -3.42% | -0.05% 0m20.97s | 926116 ko | Rewriter/Rewriter/Examples/PerfTesting/Plus0Tree.vo | 0m19.54s | 916216 ko || +0m01.42s || 9900 ko | +7.31% | +1.08% 0m12.52s | 668624 ko | Rewriter/Demo.vo | 0m11.47s | 668456 ko || +0m01.04s || 168 ko | +9.15% | +0.02% 1m09.46s | 942948 ko | AbstractInterpretation/ZRangeProofs.vo | 1m09.57s | 943236 ko || -0m00.10s || -288 ko | -0.15% | -0.03% 0m46.87s | 1348304 ko | Assembly/Symbolic.vo | 0m46.46s | 1350988 ko || +0m00.40s || -2684 ko | +0.88% | -0.19% 0m42.95s | 1485056 ko | Rewriter/Passes/Arith.vo | 0m43.03s | 1464772 ko || -0m00.07s || 20284 ko | -0.18% | +1.38% 0m36.17s | 1023364 ko | Bedrock/Group/ScalarMult/MontgomeryLadder.vo | 0m35.81s | 1027148 ko || +0m00.35s || -3784 ko | +1.00% | -0.36% 0m33.90s | 895312 ko | Rewriter/Passes/MulSplit.vo | 0m33.73s | 908304 ko || +0m00.17s || -12992 ko | +0.50% | -1.43% 0m32.43s | 1222184 ko | Bedrock/End2End/X25519/MontgomeryLadder.vo | 0m33.26s | 1222032 ko || -0m00.82s || 152 ko | -2.49% | +0.01% 0m31.12s | 1481496 ko | StandaloneDebuggingExamples.vo | 0m30.92s | 1479016 ko || +0m00.19s || 2480 ko | +0.64% | +0.16% 0m28.78s | 718080 ko | AbstractInterpretation/Proofs.vo | 0m28.83s | 718216 ko || -0m00.04s || -136 ko | -0.17% | -0.01% 0m26.86s | 901368 ko | Language/IdentifiersGENERATED.vo | 0m27.02s | 904776 ko || -0m00.16s || -3408 ko | -0.59% | -0.37% 0m26.45s | 736040 ko | Language/IdentifiersGENERATEDProofs.vo | 0m26.81s | 736152 ko || -0m00.35s || -112 ko | -1.34% | -0.01% 0m25.12s | 1303196 ko | PerfTesting/PerfTestSearch.vo | 0m25.93s | 1303988 ko || -0m00.80s || -792 ko | -3.12% | -0.06% 0m20.80s | 1113188 ko | PushButtonSynthesis/UnsaturatedSolinas.vo | 0m21.74s | 1116044 ko || -0m00.93s || -2856 ko | -4.32% | -0.25% 0m20.29s | 781780 ko | Bedrock/Field/Translation/Proofs/Expr.vo | 0m20.79s | 783272 ko || -0m00.50s || -1492 ko | -2.40% | -0.19% 0m18.92s | 1081924 ko | Bedrock/End2End/Poly1305/Field1305.vo | 0m18.75s | 1084908 ko || +0m00.17s || -2984 ko | +0.90% | -0.27% 0m18.56s | 1117340 ko | PushButtonSynthesis/WordByWordMontgomery.vo | 0m19.47s | 1110736 ko || -0m00.91s || 6604 ko | -4.67% | +0.59% 0m18.29s | 747768 ko | Bedrock/Field/Translation/Proofs/LoadStoreList.vo | 0m18.71s | 749356 ko || -0m00.42s || -1588 ko | -2.24% | -0.21% 0m17.01s | 1099360 ko | Bedrock/Field/Translation/Proofs/Func.vo | 0m17.29s | 1093828 ko || -0m00.27s || 5532 ko | -1.61% | +0.50% 0m16.83s | 1290904 ko | PerfTesting/PerfTestSearchPattern.vo | 0m17.54s | 1290768 ko || -0m00.71s || 136 ko | -4.04% | +0.01% 0m16.33s | 764628 ko | Rewriter/Rewriter/Examples/PerfTesting/UnderLetsPlus0.vo | 0m15.57s | 760204 ko || +0m00.75s || 4424 ko | +4.88% | +0.58% 0m15.49s | 1105204 ko | Bedrock/Field/Translation/Proofs/Cmd.vo | 0m15.94s | 1104348 ko || -0m00.44s || 856 ko | -2.82% | +0.07% 0m15.22s | 1124768 ko | Bedrock/Field/Synthesis/New/Signature.vo | 0m16.12s | 1124776 ko || -0m00.90s || -8 ko | -5.58% | -0.00% 0m14.42s | 637688 ko | Bedrock/Field/Common/Util.vo | 0m14.80s | 637624 ko || -0m00.38s || 64 ko | -2.56% | +0.01% 0m13.39s | 1549628 ko | Bedrock/Field/Synthesis/New/WordByWordMontgomery.vo | 0m13.39s | 1549680 ko || +0m00.00s || -52 ko | +0.00% | -0.00% 0m12.88s | 581368 ko | PushButtonSynthesis/DettmanMultiplicationReificationCache.vo | 0m13.17s | 579468 ko || -0m00.28s || 1900 ko | -2.20% | +0.32% 0m12.01s | 686764 ko | Bedrock/Group/AdditionChains.vo | 0m12.05s | 686588 ko || -0m00.04s || 176 ko | -0.33% | +0.02% 0m11.53s | 676412 ko | Bedrock/Group/ScalarMult/LadderStep.vo | 0m11.73s | 679628 ko || -0m00.20s || -3216 ko | -1.70% | -0.47% 0m11.14s | 1001828 ko | BoundsPipeline.vo | 0m11.58s | 999900 ko || -0m00.43s || 1928 ko | -3.79% | +0.19% 0m10.51s | 711112 ko | Language/IdentifiersBasicGENERATED.vo | 0m10.71s | 709608 ko || -0m00.20s || 1504 ko | -1.86% | +0.21% 0m10.10s | 576652 ko | AbstractInterpretation/ZRangeCommonProofs.vo | 0m10.06s | 576752 ko || +0m00.03s || -100 ko | +0.39% | -0.01% 0m10.03s | 646752 ko | Bedrock/Field/Translation/Proofs/Flatten.vo | 0m09.98s | 646820 ko || +0m00.04s || -68 ko | +0.50% | -0.01% 0m09.20s | 632816 ko | Stringification/IR.vo | 0m09.15s | 634608 ko || +0m00.04s || -1792 ko | +0.54% | -0.28% 0m09.00s | 576700 ko | PushButtonSynthesis/BarrettReductionReificationCache.vo | 0m09.14s | 578324 ko || -0m00.14s || -1624 ko | -1.53% | -0.28% 0m08.92s | 1245456 ko | Bedrock/End2End/X25519/MontgomeryLadderProperties.vo | 0m09.33s | 1247352 ko || -0m00.41s || -1896 ko | -4.39% | -0.15% 0m08.57s | 593856 ko | PushButtonSynthesis/BYInversionReificationCache.vo | 0m08.66s | 593812 ko || -0m00.08s || 44 ko | -1.03% | +0.00% 0m08.29s | 677284 ko | Bedrock/Group/ScalarMult/CSwap.vo | 0m08.63s | 675232 ko || -0m00.34s || 2052 ko | -3.93% | +0.30% 0m07.94s | 964156 ko | PushButtonSynthesis/SmallExamples.vo | 0m08.33s | 963152 ko || -0m00.38s || 1004 ko | -4.68% | +0.10% 0m07.91s | 628192 ko | Rewriter/Passes/RelaxBitwidthAdcSbb.vo | 0m08.14s | 629576 ko || -0m00.23s || -1384 ko | -2.82% | -0.21% 0m07.89s | 998288 ko | PushButtonSynthesis/BaseConversion.vo | 0m08.26s | 991900 ko || -0m00.37s || 6388 ko | -4.47% | +0.64% 0m07.32s | 1014248 ko | PushButtonSynthesis/Primitives.vo | 0m07.61s | 1011680 ko || -0m00.29s || 2568 ko | -3.81% | +0.25% 0m07.00s | 862996 ko | Bedrock/Field/Translation/Proofs/EquivalenceProperties.vo | 0m06.94s | 863080 ko || +0m00.05s || -84 ko | +0.86% | -0.00% 0m06.45s | 991184 ko | PushButtonSynthesis/SolinasReduction.vo | 0m06.63s | 997340 ko || -0m00.17s || -6156 ko | -2.71% | -0.61% 0m05.98s | 571608 ko | PushButtonSynthesis/FancyMontgomeryReductionReificationCache.vo | 0m06.05s | 569504 ko || -0m00.06s || 2104 ko | -1.15% | +0.36% 0m05.96s | 614768 ko | Rewriter/Passes/NoSelect.vo | 0m06.37s | 617024 ko || -0m00.41s || -2256 ko | -6.43% | -0.36% 0m05.75s | 1133792 ko | Bedrock/Field/Synthesis/New/UnsaturatedSolinas.vo | 0m05.50s | 1134036 ko || +0m00.25s || -244 ko | +4.54% | -0.02% 0m05.57s | 571792 ko | Fancy/Prod.vo | 0m05.97s | 571768 ko || -0m00.39s || 24 ko | -6.70% | +0.00% 0m05.46s | 990152 ko | PushButtonSynthesis/BarrettReduction.vo | 0m05.55s | 990108 ko || -0m00.08s || 44 ko | -1.62% | +0.00% 0m05.38s | 1047844 ko | CLI.vo | 0m05.28s | 1047976 ko || +0m00.09s || -132 ko | +1.89% | -0.01% 0m05.19s | 568668 ko | PushButtonSynthesis/SaturatedSolinasReificationCache.vo | 0m05.53s | 568832 ko || -0m00.33s || -164 ko | -6.14% | -0.02% 0m04.94s | 849712 ko | Bedrock/Field/Translation/Proofs/UsedVarnames.vo | 0m04.85s | 849640 ko || +0m00.09s || 72 ko | +1.85% | +0.00% 0m04.81s | 648420 ko | Bedrock/End2End/RupicolaCrypto/Broadcast.vo | 0m05.09s | 645428 ko || -0m00.28s || 2992 ko | -5.50% | +0.46% 0m04.52s | 576772 ko | Language/InversionExtra.vo | 0m04.44s | 576668 ko || +0m00.07s || 104 ko | +1.80% | +0.01% 0m04.32s | 979404 ko | PushButtonSynthesis/DettmanMultiplication.vo | 0m04.47s | 974560 ko || -0m00.14s || 4844 ko | -3.35% | +0.49% 0m04.05s | 1002636 ko | Bedrock/Field/Translation/Proofs/ValidComputable/Cmd.vo | 0m04.39s | 1003040 ko || -0m00.33s || -404 ko | -7.74% | -0.04% 0m03.99s | 1407072 ko | Bedrock/Everything.vo | 0m04.42s | 1407076 ko || -0m00.42s || -4 ko | -9.72% | -0.00% 0m03.94s | 985864 ko | PushButtonSynthesis/SaturatedSolinas.vo | 0m04.26s | 979532 ko || -0m00.31s || 6332 ko | -7.51% | +0.64% 0m03.91s | 980892 ko | PushButtonSynthesis/FancyMontgomeryReduction.vo | 0m03.91s | 987028 ko || +0m00.00s || -6136 ko | +0.00% | -0.62% 0m03.83s | 1273392 ko | Everything.vo | 0m03.70s | 1273324 ko || +0m00.12s || 68 ko | +3.51% | +0.00% 0m03.81s | 899312 ko | Assembly/Equivalence.vo | 0m03.88s | 897416 ko || -0m00.06s || 1896 ko | -1.80% | +0.21% 0m03.49s | 993844 ko | Rewriter/PerfTesting/Core.vo | 0m03.52s | 994052 ko || -0m00.02s || -208 ko | -0.85% | -0.02% 0m03.42s | 1231888 ko | PerfTesting/PerfTestPrint.vo | 0m03.33s | 1231988 ko || +0m00.08s || -100 ko | +2.70% | -0.00% 0m03.35s | 567060 ko | Rewriter/Passes/ArithWithRelaxedCasts.vo | 0m03.33s | 566640 ko || +0m00.02s || 420 ko | +0.60% | +0.07% 0m03.18s | 1033496 ko | Bedrock/Standalone/StandaloneJsOfOCamlMain.vo | 0m03.16s | 1033480 ko || +0m00.02s || 16 ko | +0.63% | +0.00% 0m03.16s | 1035128 ko | Bedrock/Standalone/StandaloneHaskellMain.vo | 0m03.35s | 1035156 ko || -0m00.18s || -28 ko | -5.67% | -0.00% 0m03.16s | 1035336 ko | Bedrock/Standalone/StandaloneOCamlMain.vo | 0m03.31s | 1035248 ko || -0m00.14s || 88 ko | -4.53% | +0.00% 0m03.13s | 575568 ko | Rewriter/Passes/AddAssocLeft.vo | 0m03.10s | 575444 ko || +0m00.02s || 124 ko | +0.96% | +0.02% 0m03.13s | 1011080 ko | StandaloneJsOfOCamlMain.vo | 0m03.15s | 1011036 ko || -0m00.02s || 44 ko | -0.63% | +0.00% 0m03.07s | 1021192 ko | Rewriter/PerfTesting/StandaloneOCamlMain.vo | 0m03.23s | 1021288 ko || -0m00.16s || -96 ko | -4.95% | -0.00% 0m03.06s | 993984 ko | Bedrock/Field/Translation/Proofs/ValidComputable/Func.vo | 0m03.09s | 994852 ko || -0m00.02s || -868 ko | -0.97% | -0.08% 0m03.05s | 1006432 ko | StandaloneMonadicUtils.vo | 0m03.25s | 1006480 ko || -0m00.20s || -48 ko | -6.15% | -0.00% 0m03.04s | 559232 ko | PushButtonSynthesis/BaseConversionReificationCache.vo | 0m03.30s | 559292 ko || -0m00.25s || -60 ko | -7.87% | -0.01% 0m03.03s | 942252 ko | Bedrock/Field/Translation/Cmd.vo | 0m03.36s | 942320 ko || -0m00.33s || -68 ko | -9.82% | -0.00% 0m03.00s | 997332 ko | Bedrock/Field/Stringification/Stringification.vo | 0m03.20s | 999256 ko || -0m00.20s || -1924 ko | -6.25% | -0.19% 0m02.98s | 942948 ko | Bedrock/Field/Translation/Func.vo | 0m03.08s | 942924 ko || -0m00.10s || 24 ko | -3.24% | +0.00% 0m02.94s | 1010768 ko | StandaloneOCamlMain.vo | 0m03.36s | 1010736 ko || -0m00.41s || 32 ko | -12.49% | +0.00% 0m02.92s | 993280 ko | Bedrock/Field/Synthesis/New/ComputedOp.vo | 0m02.94s | 993224 ko || -0m00.02s || 56 ko | -0.68% | +0.00% 0m02.92s | 1002192 ko | StandaloneHaskellMain.vo | 0m03.12s | 1002372 ko || -0m00.20s || -180 ko | -6.41% | -0.01% 0m02.89s | 626628 ko | Bedrock/Field/Synthesis/Generic/Bignum.vo | 0m03.14s | 626628 ko || -0m00.25s || 0 ko | -7.96% | +0.00% 0m02.83s | 975056 ko | Bedrock/Field/Translation/Parameters/Defaults32.vo | 0m02.94s | 975012 ko || -0m00.10s || 44 ko | -3.74% | +0.00% 0m02.82s | 565180 ko | Rewriter/Passes/FlattenThunkedRects.vo | 0m02.78s | 565068 ko || +0m00.04s || 112 ko | +1.43% | +0.01% 0m02.80s | 555640 ko | Rewriter/Passes/Test.vo | 0m02.93s | 555308 ko || -0m00.13s || 332 ko | -4.43% | +0.05% 0m02.79s | 975024 ko | Bedrock/Field/Translation/Parameters/Defaults64.vo | 0m03.04s | 975076 ko || -0m00.25s || -52 ko | -8.22% | -0.00% 0m02.74s | 967628 ko | Bedrock/Field/Translation/Parameters/Defaults.vo | 0m02.98s | 967552 ko || -0m00.23s || 76 ko | -8.05% | +0.00% 0m02.74s | 974976 ko | Bedrock/Field/Translation/Parameters/FE310.vo | 0m03.02s | 975012 ko || -0m00.27s || -36 ko | -9.27% | -0.00% 0m02.49s | 565220 ko | Bedrock/Field/Translation/Expr.vo | 0m02.63s | 565452 ko || -0m00.13s || -232 ko | -5.32% | -0.04% 0m02.42s | 562132 ko | Rewriter/Passes/StripLiteralCasts.vo | 0m02.35s | 562052 ko || +0m00.06s || 80 ko | +2.97% | +0.01% 0m02.40s | 572572 ko | Stringification/Language.vo | 0m02.30s | 572524 ko || +0m00.10s || 48 ko | +4.34% | +0.00% 0m02.32s | 625468 ko | Bedrock/Field/Interface/Compilation2.vo | 0m02.51s | 625352 ko || -0m00.18s || 116 ko | -7.56% | +0.01% 0m02.26s | 622388 ko | Bedrock/Field/Common/Arrays/MakeAccessSizes.vo | 0m02.28s | 622392 ko || -0m00.02s || -4 ko | -0.87% | -0.00% 0m02.21s | 566480 ko | Rewriter/Passes/UnfoldValueBarrier.vo | 0m02.18s | 566508 ko || +0m00.02s || -28 ko | +1.37% | -0.00% 0m02.01s | 567200 ko | Rewriter/Passes/ToFancy.vo | 0m02.09s | 567212 ko || -0m00.08s || -12 ko | -3.82% | -0.00% 0m01.94s | 638116 ko | Bedrock/Group/ScalarMult/ScalarMult.vo | 0m01.89s | 638124 ko || +0m00.05s || -8 ko | +2.64% | -0.00% 0m01.90s | 638032 ko | Bedrock/Group/ScalarMult/MontgomeryEquivalence.vo | 0m01.83s | 637992 ko || +0m00.06s || 40 ko | +3.82% | +0.00% 0m01.82s | 544192 ko | AbstractInterpretation/ZRange.vo | 0m01.70s | 544268 ko || +0m00.12s || -76 ko | +7.05% | -0.01% 0m01.80s | 614356 ko | CompilersTestCases.vo | 0m01.79s | 614440 ko || +0m00.01s || -84 ko | +0.55% | -0.01% 0m01.79s | 535132 ko | AbstractInterpretation/AbstractInterpretation.vo | 0m01.84s | 535240 ko || -0m00.05s || -108 ko | -2.71% | -0.02% 0m01.66s | 614456 ko | Bedrock/Field/Common/Names/MakeNames.vo | 0m01.90s | 614456 ko || -0m00.24s || 0 ko | -12.63% | +0.00% 0m01.59s | 562240 ko | Stringification/Go.vo | 0m01.75s | 562320 ko || -0m00.15s || -80 ko | -9.14% | -0.01% 0m01.57s | 634032 ko | Bedrock/Specs/Field.vo | 0m01.73s | 633640 ko || -0m00.15s || 392 ko | -9.24% | +0.06% 0m01.44s | 612524 ko | Bedrock/Field/Common/Arrays/MaxBounds.vo | 0m01.51s | 616444 ko || -0m00.07s || -3920 ko | -4.63% | -0.63% 0m01.38s | 604032 ko | Bedrock/Field/Common/Arrays/ByteBounds.vo | 0m01.43s | 604164 ko || -0m00.05s || -132 ko | -3.49% | -0.02% 0m01.32s | 619644 ko | Bedrock/Field/Interface/Representation.vo | 0m01.31s | 619784 ko || +0m00.01s || -140 ko | +0.76% | -0.02% 0m01.23s | 614868 ko | Bedrock/Group/Point.vo | 0m01.33s | 615212 ko || -0m00.10s || -344 ko | -7.51% | -0.05% 0m01.23s | 556884 ko | Stringification/C.vo | 0m01.35s | 556948 ko || -0m00.12s || -64 ko | -8.88% | -0.01% 0m01.21s | 590676 ko | Bedrock/Field/Common/Tactics.vo | 0m01.25s | 590780 ko || -0m00.04s || -104 ko | -3.20% | -0.01% 0m01.20s | 558764 ko | Stringification/JSON.vo | 0m01.37s | 558968 ko || -0m00.17s || -204 ko | -12.40% | -0.03% 0m01.18s | 544620 ko | Bedrock/Field/Common/Types.vo | 0m01.17s | 544536 ko || +0m00.01s || 84 ko | +0.85% | +0.01% 0m01.17s | 544340 ko | Bedrock/Field/Translation/LoadStoreList.vo | 0m01.22s | 544292 ko || -0m00.05s || 48 ko | -4.09% | +0.00% 0m01.17s | 493956 ko | Rewriter/Rewriter/Reify.vo | 0m01.06s | 495316 ko || +0m00.10s || -1360 ko | +10.37% | -0.27% 0m01.15s | 545116 ko | Bedrock/Field/Translation/Proofs/Equivalence.vo | 0m01.20s | 544996 ko || -0m00.05s || 120 ko | -4.16% | +0.02% 0m01.15s | 556092 ko | Stringification/Zig.vo | 0m01.27s | 555992 ko || -0m00.12s || 100 ko | -9.44% | +0.01% 0m01.14s | 555848 ko | Stringification/Rust.vo | 0m01.26s | 555792 ko || -0m00.12s || 56 ko | -9.52% | +0.01% 0m01.09s | 555636 ko | Stringification/Java.vo | 0m01.19s | 555460 ko || -0m00.09s || 176 ko | -8.40% | +0.03% 0m01.07s | 558372 ko | Bedrock/Field/Stringification/LoadStoreListVarData.vo | 0m01.10s | 558404 ko || -0m00.03s || -32 ko | -2.72% | -0.00% 0m01.07s | 530640 ko | Language/APINotations.vo | 0m01.08s | 528384 ko || -0m00.01s || 2256 ko | -0.92% | +0.42% 0m01.06s | 507192 ko | Bedrock/Field/Common/Arrays/MakeListLengths.vo | 0m01.11s | 507160 ko || -0m00.05s || 32 ko | -4.50% | +0.00% 0m01.05s | 568500 ko | Rewriter/All.vo | 0m01.08s | 568492 ko || -0m00.03s || 8 ko | -2.77% | +0.00% 0m01.03s | 562556 ko | Bedrock/Field/Stringification/FlattenVarData.vo | 0m01.13s | 562636 ko || -0m00.09s || -80 ko | -8.84% | -0.01% 0m01.03s | 536868 ko | Bedrock/Field/Translation/Proofs/VarnameSet.vo | 0m01.02s | 536852 ko || +0m00.01s || 16 ko | +0.98% | +0.00% 0m01.02s | 529504 ko | AbstractInterpretation/WfExtra.vo | 0m00.98s | 530316 ko || +0m00.04s || -812 ko | +4.08% | -0.15% 0m01.02s | 503696 ko | Rewriter/Rewriter/AllTactics.vo | 0m00.94s | 503736 ko || +0m00.08s || -40 ko | +8.51% | -0.00% 0m00.98s | 539140 ko | Bedrock/Field/Translation/Flatten.vo | 0m01.02s | 539212 ko || -0m00.04s || -72 ko | -3.92% | -0.01% 0m00.96s | 509700 ko | Language/WfExtra.vo | 0m00.89s | 509180 ko || +0m00.06s || 520 ko | +7.86% | +0.10% 0m00.95s | 519220 ko | PushButtonSynthesis/ReificationCache.vo | 0m00.98s | 521116 ko || -0m00.03s || -1896 ko | -3.06% | -0.36% 0m00.94s | 518908 ko | Language/API.vo | 0m00.90s | 518832 ko || +0m00.03s || 76 ko | +4.44% | +0.01% 0m00.94s | 491660 ko | Language/UnderLetsProofsExtra.vo | 0m00.94s | 491476 ko || +0m00.00s || 184 ko | +0.00% | +0.03% 0m00.94s | 522908 ko | MiscCompilerPassesProofsExtra.vo | 0m00.94s | 522932 ko || +0m00.00s || -24 ko | +0.00% | -0.00% 0m00.82s | 401576 ko | Rewriter/Rewriter/Examples/PerfTesting/Settings.vo | 0m00.73s | 401220 ko || +0m00.08s || 356 ko | +12.32% | +0.08% 0m00.81s | 517016 ko | Rewriter/AllTacticsExtra.vo | 0m00.93s | 517112 ko || -0m00.12s || -96 ko | -12.90% | -0.01% 0m00.79s | 496044 ko | Rewriter/Util/plugins/RewriterBuildRegistryImports.vo | 0m00.70s | 496092 ko || +0m00.09s || -48 ko | +12.85% | -0.00% 0m00.78s | 441520 ko | Rewriter/Util/plugins/RewriterBuild.vo | 0m00.70s | 441072 ko || +0m00.08s || 448 ko | +11.42% | +0.10% 0m00.78s | 440760 ko | Rewriter/Util/plugins/RewriterBuildRegistry.vo | 0m00.70s | 440396 ko || +0m00.08s || 364 ko | +11.42% | +0.08% ``` </p> </details>
With mit-plv/rewriter#142, this commit now only makes NBE 2x slower (5m30.19s vs 2m31.42s) instead of 4x slower (9m38.79s vs 2m40.05s). This is a bit better, but probably still not good enough. |
This should hopefully speed up reduction significantly. Timing is a bit of a mixed bag (on ArithWithCasts in particular), but overall good, and very good for mit-plv/fiat-crypto#1778. <details><summary>Timing Diff (Only Complex NBE)</summary> <p> ``` After | Peak Mem | File Name | Before | Peak Mem || Change || Change (mem) | % Change | % Change (mem) --------------------------------------------------------------------------------------------------------------------------------- 6m27.38s | 4352640 ko | Total Time / Peak Mem | 10m36.83s | 4349248 ko || -4m09.44s || 3392 ko | -39.16% | +0.07% --------------------------------------------------------------------------------------------------------------------------------- 5m30.19s | 4352640 ko | Rewriter/Passes/NBE.vo | 9m38.79s | 4349248 ko || -4m08.59s || 3392 ko | -42.95% | +0.07% 0m56.36s | 833016 ko | Rewriter/RulesProofs.vo | 0m57.16s | 833032 ko || -0m00.79s || -16 ko | -1.39% | -0.00% 0m00.84s | 457988 ko | Rewriter/Rules.vo | 0m00.89s | 456124 ko || -0m00.05s || 1864 ko | -5.61% | +0.40% ``` </p> </details> <details><summary>Timing Diff (Full Fiat Cryptography)</summary> <p> ``` After | Peak Mem | File Name | Before | Peak Mem || Change || Change (mem) | % Change | % Change (mem) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 70m31.96s | 3445468 ko | Total Time / Peak Mem | 71m53.60s | 3539572 ko || -1m21.63s || -94104 ko | -1.89% | -2.65% -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 8m05.37s | 2661168 ko | Bedrock/End2End/X25519/GarageDoor.vo | 8m27.50s | 2661956 ko || -0m22.12s || -788 ko | -4.36% | -0.02% 4m36.32s | 2492748 ko | Bedrock/End2End/X25519/EdwardsXYZT.vo | 4m52.33s | 2493256 ko || -0m16.00s || -508 ko | -5.47% | -0.02% 3m31.47s | 3445468 ko | Rewriter/Passes/ArithWithCasts.vo | 3m19.41s | 3539572 ko || +0m12.06s || -94104 ko | +6.04% | -2.65% 2m31.42s | 3335368 ko | Rewriter/Passes/NBE.vo | 2m40.05s | 3327880 ko || -0m08.62s || 7488 ko | -5.39% | +0.22% 3m41.83s | 2295144 ko | Assembly/WithBedrock/Proofs.vo | 3m49.57s | 2298492 ko || -0m07.74s || -3348 ko | -3.37% | -0.14% 5m28.65s | 3181688 ko | Bedrock/Field/Synthesis/Examples/p224_64_new.vo | 5m34.17s | 3178616 ko || -0m05.52s || 3072 ko | -1.65% | +0.09% 2m53.06s | 2655348 ko | Bedrock/End2End/RupicolaCrypto/ChaCha20.vo | 2m56.57s | 2650952 ko || -0m03.50s || 4396 ko | -1.98% | +0.16% 1m52.75s | 2518796 ko | Rewriter/Passes/ToFancyWithCasts.vo | 1m56.20s | 2474660 ko || -0m03.45s || 44136 ko | -2.96% | +1.78% 1m24.67s | 1532696 ko | Assembly/EquivalenceProofs.vo | 1m28.52s | 1535932 ko || -0m03.84s || -3236 ko | -4.34% | -0.21% 1m00.24s | 1362776 ko | Assembly/WithBedrock/SymbolicProofs.vo | 1m03.25s | 1362872 ko || -0m03.00s || -96 ko | -4.75% | -0.00% 2m05.92s | 1385148 ko | Bedrock/End2End/X25519/Field25519.vo | 2m08.40s | 1392128 ko || -0m02.48s || -6980 ko | -1.93% | -0.50% 1m24.77s | 1103548 ko | Rewriter/Rewriter/Examples/PerfTesting/LiftLetsMap.vo | 1m22.51s | 1089068 ko || +0m02.25s || 14480 ko | +2.73% | +1.32% 1m00.12s | 1393880 ko | Rewriter/Rewriter/Examples/PerfTesting/SieveOfEratosthenes.vo | 1m02.89s | 1390884 ko || -0m02.77s || 2996 ko | -4.40% | +0.21% 0m44.20s | 1118240 ko | Bedrock/Field/Translation/Proofs/ValidComputable/Expr.vo | 0m46.28s | 1118352 ko || -0m02.07s || -112 ko | -4.49% | -0.01% 0m31.16s | 900084 ko | Rewriter/Rewriter/Examples/PrefixSums.vo | 0m28.63s | 907212 ko || +0m02.53s || -7128 ko | +8.83% | -0.78% 2m36.62s | 1100532 ko | Fancy/Compiler.vo | 2m34.73s | 1100132 ko || +0m01.89s || 400 ko | +1.22% | +0.03% 1m34.79s | 1951088 ko | SlowPrimeSynthesisExamples.vo | 1m36.21s | 1951248 ko || -0m01.42s || -160 ko | -1.47% | -0.00% 1m33.18s | 2069588 ko | Fancy/Barrett256.vo | 1m31.93s | 2069544 ko || +0m01.25s || 44 ko | +1.35% | +0.00% 1m18.16s | 838412 ko | PushButtonSynthesis/SolinasReductionReificationCache.vo | 1m19.76s | 838420 ko || -0m01.60s || -8 ko | -2.00% | -0.00% 1m02.83s | 869272 ko | AbstractInterpretation/Wf.vo | 1m04.11s | 869412 ko || -0m01.28s || -140 ko | -1.99% | -0.01% 0m51.65s | 1151212 ko | Rewriter/Rewriter/Examples.vo | 0m49.69s | 1153560 ko || +0m01.96s || -2348 ko | +3.94% | -0.20% 0m51.51s | 1119120 ko | Rewriter/Passes/MultiRetSplit.vo | 0m52.90s | 1095208 ko || -0m01.39s || 23912 ko | -2.62% | +2.18% 0m49.53s | 724296 ko | PushButtonSynthesis/WordByWordMontgomeryReificationCache.vo | 0m48.35s | 724252 ko || +0m01.17s || 44 ko | +2.44% | +0.00% 0m46.34s | 1884328 ko | Fancy/Montgomery256.vo | 0m48.15s | 1882076 ko || -0m01.80s || 2252 ko | -3.75% | +0.11% 0m36.20s | 653060 ko | PushButtonSynthesis/UnsaturatedSolinasReificationCache.vo | 0m37.53s | 653104 ko || -0m01.32s || -44 ko | -3.54% | -0.00% 0m31.04s | 1254384 ko | Bedrock/End2End/X25519/GarageDoorTop.vo | 0m32.14s | 1255108 ko || -0m01.10s || -724 ko | -3.42% | -0.05% 0m20.97s | 926116 ko | Rewriter/Rewriter/Examples/PerfTesting/Plus0Tree.vo | 0m19.54s | 916216 ko || +0m01.42s || 9900 ko | +7.31% | +1.08% 0m12.52s | 668624 ko | Rewriter/Demo.vo | 0m11.47s | 668456 ko || +0m01.04s || 168 ko | +9.15% | +0.02% 1m09.46s | 942948 ko | AbstractInterpretation/ZRangeProofs.vo | 1m09.57s | 943236 ko || -0m00.10s || -288 ko | -0.15% | -0.03% 0m46.87s | 1348304 ko | Assembly/Symbolic.vo | 0m46.46s | 1350988 ko || +0m00.40s || -2684 ko | +0.88% | -0.19% 0m42.95s | 1485056 ko | Rewriter/Passes/Arith.vo | 0m43.03s | 1464772 ko || -0m00.07s || 20284 ko | -0.18% | +1.38% 0m36.17s | 1023364 ko | Bedrock/Group/ScalarMult/MontgomeryLadder.vo | 0m35.81s | 1027148 ko || +0m00.35s || -3784 ko | +1.00% | -0.36% 0m33.90s | 895312 ko | Rewriter/Passes/MulSplit.vo | 0m33.73s | 908304 ko || +0m00.17s || -12992 ko | +0.50% | -1.43% 0m32.43s | 1222184 ko | Bedrock/End2End/X25519/MontgomeryLadder.vo | 0m33.26s | 1222032 ko || -0m00.82s || 152 ko | -2.49% | +0.01% 0m31.12s | 1481496 ko | StandaloneDebuggingExamples.vo | 0m30.92s | 1479016 ko || +0m00.19s || 2480 ko | +0.64% | +0.16% 0m28.78s | 718080 ko | AbstractInterpretation/Proofs.vo | 0m28.83s | 718216 ko || -0m00.04s || -136 ko | -0.17% | -0.01% 0m26.86s | 901368 ko | Language/IdentifiersGENERATED.vo | 0m27.02s | 904776 ko || -0m00.16s || -3408 ko | -0.59% | -0.37% 0m26.45s | 736040 ko | Language/IdentifiersGENERATEDProofs.vo | 0m26.81s | 736152 ko || -0m00.35s || -112 ko | -1.34% | -0.01% 0m25.12s | 1303196 ko | PerfTesting/PerfTestSearch.vo | 0m25.93s | 1303988 ko || -0m00.80s || -792 ko | -3.12% | -0.06% 0m20.80s | 1113188 ko | PushButtonSynthesis/UnsaturatedSolinas.vo | 0m21.74s | 1116044 ko || -0m00.93s || -2856 ko | -4.32% | -0.25% 0m20.29s | 781780 ko | Bedrock/Field/Translation/Proofs/Expr.vo | 0m20.79s | 783272 ko || -0m00.50s || -1492 ko | -2.40% | -0.19% 0m18.92s | 1081924 ko | Bedrock/End2End/Poly1305/Field1305.vo | 0m18.75s | 1084908 ko || +0m00.17s || -2984 ko | +0.90% | -0.27% 0m18.56s | 1117340 ko | PushButtonSynthesis/WordByWordMontgomery.vo | 0m19.47s | 1110736 ko || -0m00.91s || 6604 ko | -4.67% | +0.59% 0m18.29s | 747768 ko | Bedrock/Field/Translation/Proofs/LoadStoreList.vo | 0m18.71s | 749356 ko || -0m00.42s || -1588 ko | -2.24% | -0.21% 0m17.01s | 1099360 ko | Bedrock/Field/Translation/Proofs/Func.vo | 0m17.29s | 1093828 ko || -0m00.27s || 5532 ko | -1.61% | +0.50% 0m16.83s | 1290904 ko | PerfTesting/PerfTestSearchPattern.vo | 0m17.54s | 1290768 ko || -0m00.71s || 136 ko | -4.04% | +0.01% 0m16.33s | 764628 ko | Rewriter/Rewriter/Examples/PerfTesting/UnderLetsPlus0.vo | 0m15.57s | 760204 ko || +0m00.75s || 4424 ko | +4.88% | +0.58% 0m15.49s | 1105204 ko | Bedrock/Field/Translation/Proofs/Cmd.vo | 0m15.94s | 1104348 ko || -0m00.44s || 856 ko | -2.82% | +0.07% 0m15.22s | 1124768 ko | Bedrock/Field/Synthesis/New/Signature.vo | 0m16.12s | 1124776 ko || -0m00.90s || -8 ko | -5.58% | -0.00% 0m14.42s | 637688 ko | Bedrock/Field/Common/Util.vo | 0m14.80s | 637624 ko || -0m00.38s || 64 ko | -2.56% | +0.01% 0m13.39s | 1549628 ko | Bedrock/Field/Synthesis/New/WordByWordMontgomery.vo | 0m13.39s | 1549680 ko || +0m00.00s || -52 ko | +0.00% | -0.00% 0m12.88s | 581368 ko | PushButtonSynthesis/DettmanMultiplicationReificationCache.vo | 0m13.17s | 579468 ko || -0m00.28s || 1900 ko | -2.20% | +0.32% 0m12.01s | 686764 ko | Bedrock/Group/AdditionChains.vo | 0m12.05s | 686588 ko || -0m00.04s || 176 ko | -0.33% | +0.02% 0m11.53s | 676412 ko | Bedrock/Group/ScalarMult/LadderStep.vo | 0m11.73s | 679628 ko || -0m00.20s || -3216 ko | -1.70% | -0.47% 0m11.14s | 1001828 ko | BoundsPipeline.vo | 0m11.58s | 999900 ko || -0m00.43s || 1928 ko | -3.79% | +0.19% 0m10.51s | 711112 ko | Language/IdentifiersBasicGENERATED.vo | 0m10.71s | 709608 ko || -0m00.20s || 1504 ko | -1.86% | +0.21% 0m10.10s | 576652 ko | AbstractInterpretation/ZRangeCommonProofs.vo | 0m10.06s | 576752 ko || +0m00.03s || -100 ko | +0.39% | -0.01% 0m10.03s | 646752 ko | Bedrock/Field/Translation/Proofs/Flatten.vo | 0m09.98s | 646820 ko || +0m00.04s || -68 ko | +0.50% | -0.01% 0m09.20s | 632816 ko | Stringification/IR.vo | 0m09.15s | 634608 ko || +0m00.04s || -1792 ko | +0.54% | -0.28% 0m09.00s | 576700 ko | PushButtonSynthesis/BarrettReductionReificationCache.vo | 0m09.14s | 578324 ko || -0m00.14s || -1624 ko | -1.53% | -0.28% 0m08.92s | 1245456 ko | Bedrock/End2End/X25519/MontgomeryLadderProperties.vo | 0m09.33s | 1247352 ko || -0m00.41s || -1896 ko | -4.39% | -0.15% 0m08.57s | 593856 ko | PushButtonSynthesis/BYInversionReificationCache.vo | 0m08.66s | 593812 ko || -0m00.08s || 44 ko | -1.03% | +0.00% 0m08.29s | 677284 ko | Bedrock/Group/ScalarMult/CSwap.vo | 0m08.63s | 675232 ko || -0m00.34s || 2052 ko | -3.93% | +0.30% 0m07.94s | 964156 ko | PushButtonSynthesis/SmallExamples.vo | 0m08.33s | 963152 ko || -0m00.38s || 1004 ko | -4.68% | +0.10% 0m07.91s | 628192 ko | Rewriter/Passes/RelaxBitwidthAdcSbb.vo | 0m08.14s | 629576 ko || -0m00.23s || -1384 ko | -2.82% | -0.21% 0m07.89s | 998288 ko | PushButtonSynthesis/BaseConversion.vo | 0m08.26s | 991900 ko || -0m00.37s || 6388 ko | -4.47% | +0.64% 0m07.32s | 1014248 ko | PushButtonSynthesis/Primitives.vo | 0m07.61s | 1011680 ko || -0m00.29s || 2568 ko | -3.81% | +0.25% 0m07.00s | 862996 ko | Bedrock/Field/Translation/Proofs/EquivalenceProperties.vo | 0m06.94s | 863080 ko || +0m00.05s || -84 ko | +0.86% | -0.00% 0m06.45s | 991184 ko | PushButtonSynthesis/SolinasReduction.vo | 0m06.63s | 997340 ko || -0m00.17s || -6156 ko | -2.71% | -0.61% 0m05.98s | 571608 ko | PushButtonSynthesis/FancyMontgomeryReductionReificationCache.vo | 0m06.05s | 569504 ko || -0m00.06s || 2104 ko | -1.15% | +0.36% 0m05.96s | 614768 ko | Rewriter/Passes/NoSelect.vo | 0m06.37s | 617024 ko || -0m00.41s || -2256 ko | -6.43% | -0.36% 0m05.75s | 1133792 ko | Bedrock/Field/Synthesis/New/UnsaturatedSolinas.vo | 0m05.50s | 1134036 ko || +0m00.25s || -244 ko | +4.54% | -0.02% 0m05.57s | 571792 ko | Fancy/Prod.vo | 0m05.97s | 571768 ko || -0m00.39s || 24 ko | -6.70% | +0.00% 0m05.46s | 990152 ko | PushButtonSynthesis/BarrettReduction.vo | 0m05.55s | 990108 ko || -0m00.08s || 44 ko | -1.62% | +0.00% 0m05.38s | 1047844 ko | CLI.vo | 0m05.28s | 1047976 ko || +0m00.09s || -132 ko | +1.89% | -0.01% 0m05.19s | 568668 ko | PushButtonSynthesis/SaturatedSolinasReificationCache.vo | 0m05.53s | 568832 ko || -0m00.33s || -164 ko | -6.14% | -0.02% 0m04.94s | 849712 ko | Bedrock/Field/Translation/Proofs/UsedVarnames.vo | 0m04.85s | 849640 ko || +0m00.09s || 72 ko | +1.85% | +0.00% 0m04.81s | 648420 ko | Bedrock/End2End/RupicolaCrypto/Broadcast.vo | 0m05.09s | 645428 ko || -0m00.28s || 2992 ko | -5.50% | +0.46% 0m04.52s | 576772 ko | Language/InversionExtra.vo | 0m04.44s | 576668 ko || +0m00.07s || 104 ko | +1.80% | +0.01% 0m04.32s | 979404 ko | PushButtonSynthesis/DettmanMultiplication.vo | 0m04.47s | 974560 ko || -0m00.14s || 4844 ko | -3.35% | +0.49% 0m04.05s | 1002636 ko | Bedrock/Field/Translation/Proofs/ValidComputable/Cmd.vo | 0m04.39s | 1003040 ko || -0m00.33s || -404 ko | -7.74% | -0.04% 0m03.99s | 1407072 ko | Bedrock/Everything.vo | 0m04.42s | 1407076 ko || -0m00.42s || -4 ko | -9.72% | -0.00% 0m03.94s | 985864 ko | PushButtonSynthesis/SaturatedSolinas.vo | 0m04.26s | 979532 ko || -0m00.31s || 6332 ko | -7.51% | +0.64% 0m03.91s | 980892 ko | PushButtonSynthesis/FancyMontgomeryReduction.vo | 0m03.91s | 987028 ko || +0m00.00s || -6136 ko | +0.00% | -0.62% 0m03.83s | 1273392 ko | Everything.vo | 0m03.70s | 1273324 ko || +0m00.12s || 68 ko | +3.51% | +0.00% 0m03.81s | 899312 ko | Assembly/Equivalence.vo | 0m03.88s | 897416 ko || -0m00.06s || 1896 ko | -1.80% | +0.21% 0m03.49s | 993844 ko | Rewriter/PerfTesting/Core.vo | 0m03.52s | 994052 ko || -0m00.02s || -208 ko | -0.85% | -0.02% 0m03.42s | 1231888 ko | PerfTesting/PerfTestPrint.vo | 0m03.33s | 1231988 ko || +0m00.08s || -100 ko | +2.70% | -0.00% 0m03.35s | 567060 ko | Rewriter/Passes/ArithWithRelaxedCasts.vo | 0m03.33s | 566640 ko || +0m00.02s || 420 ko | +0.60% | +0.07% 0m03.18s | 1033496 ko | Bedrock/Standalone/StandaloneJsOfOCamlMain.vo | 0m03.16s | 1033480 ko || +0m00.02s || 16 ko | +0.63% | +0.00% 0m03.16s | 1035128 ko | Bedrock/Standalone/StandaloneHaskellMain.vo | 0m03.35s | 1035156 ko || -0m00.18s || -28 ko | -5.67% | -0.00% 0m03.16s | 1035336 ko | Bedrock/Standalone/StandaloneOCamlMain.vo | 0m03.31s | 1035248 ko || -0m00.14s || 88 ko | -4.53% | +0.00% 0m03.13s | 575568 ko | Rewriter/Passes/AddAssocLeft.vo | 0m03.10s | 575444 ko || +0m00.02s || 124 ko | +0.96% | +0.02% 0m03.13s | 1011080 ko | StandaloneJsOfOCamlMain.vo | 0m03.15s | 1011036 ko || -0m00.02s || 44 ko | -0.63% | +0.00% 0m03.07s | 1021192 ko | Rewriter/PerfTesting/StandaloneOCamlMain.vo | 0m03.23s | 1021288 ko || -0m00.16s || -96 ko | -4.95% | -0.00% 0m03.06s | 993984 ko | Bedrock/Field/Translation/Proofs/ValidComputable/Func.vo | 0m03.09s | 994852 ko || -0m00.02s || -868 ko | -0.97% | -0.08% 0m03.05s | 1006432 ko | StandaloneMonadicUtils.vo | 0m03.25s | 1006480 ko || -0m00.20s || -48 ko | -6.15% | -0.00% 0m03.04s | 559232 ko | PushButtonSynthesis/BaseConversionReificationCache.vo | 0m03.30s | 559292 ko || -0m00.25s || -60 ko | -7.87% | -0.01% 0m03.03s | 942252 ko | Bedrock/Field/Translation/Cmd.vo | 0m03.36s | 942320 ko || -0m00.33s || -68 ko | -9.82% | -0.00% 0m03.00s | 997332 ko | Bedrock/Field/Stringification/Stringification.vo | 0m03.20s | 999256 ko || -0m00.20s || -1924 ko | -6.25% | -0.19% 0m02.98s | 942948 ko | Bedrock/Field/Translation/Func.vo | 0m03.08s | 942924 ko || -0m00.10s || 24 ko | -3.24% | +0.00% 0m02.94s | 1010768 ko | StandaloneOCamlMain.vo | 0m03.36s | 1010736 ko || -0m00.41s || 32 ko | -12.49% | +0.00% 0m02.92s | 993280 ko | Bedrock/Field/Synthesis/New/ComputedOp.vo | 0m02.94s | 993224 ko || -0m00.02s || 56 ko | -0.68% | +0.00% 0m02.92s | 1002192 ko | StandaloneHaskellMain.vo | 0m03.12s | 1002372 ko || -0m00.20s || -180 ko | -6.41% | -0.01% 0m02.89s | 626628 ko | Bedrock/Field/Synthesis/Generic/Bignum.vo | 0m03.14s | 626628 ko || -0m00.25s || 0 ko | -7.96% | +0.00% 0m02.83s | 975056 ko | Bedrock/Field/Translation/Parameters/Defaults32.vo | 0m02.94s | 975012 ko || -0m00.10s || 44 ko | -3.74% | +0.00% 0m02.82s | 565180 ko | Rewriter/Passes/FlattenThunkedRects.vo | 0m02.78s | 565068 ko || +0m00.04s || 112 ko | +1.43% | +0.01% 0m02.80s | 555640 ko | Rewriter/Passes/Test.vo | 0m02.93s | 555308 ko || -0m00.13s || 332 ko | -4.43% | +0.05% 0m02.79s | 975024 ko | Bedrock/Field/Translation/Parameters/Defaults64.vo | 0m03.04s | 975076 ko || -0m00.25s || -52 ko | -8.22% | -0.00% 0m02.74s | 967628 ko | Bedrock/Field/Translation/Parameters/Defaults.vo | 0m02.98s | 967552 ko || -0m00.23s || 76 ko | -8.05% | +0.00% 0m02.74s | 974976 ko | Bedrock/Field/Translation/Parameters/FE310.vo | 0m03.02s | 975012 ko || -0m00.27s || -36 ko | -9.27% | -0.00% 0m02.49s | 565220 ko | Bedrock/Field/Translation/Expr.vo | 0m02.63s | 565452 ko || -0m00.13s || -232 ko | -5.32% | -0.04% 0m02.42s | 562132 ko | Rewriter/Passes/StripLiteralCasts.vo | 0m02.35s | 562052 ko || +0m00.06s || 80 ko | +2.97% | +0.01% 0m02.40s | 572572 ko | Stringification/Language.vo | 0m02.30s | 572524 ko || +0m00.10s || 48 ko | +4.34% | +0.00% 0m02.32s | 625468 ko | Bedrock/Field/Interface/Compilation2.vo | 0m02.51s | 625352 ko || -0m00.18s || 116 ko | -7.56% | +0.01% 0m02.26s | 622388 ko | Bedrock/Field/Common/Arrays/MakeAccessSizes.vo | 0m02.28s | 622392 ko || -0m00.02s || -4 ko | -0.87% | -0.00% 0m02.21s | 566480 ko | Rewriter/Passes/UnfoldValueBarrier.vo | 0m02.18s | 566508 ko || +0m00.02s || -28 ko | +1.37% | -0.00% 0m02.01s | 567200 ko | Rewriter/Passes/ToFancy.vo | 0m02.09s | 567212 ko || -0m00.08s || -12 ko | -3.82% | -0.00% 0m01.94s | 638116 ko | Bedrock/Group/ScalarMult/ScalarMult.vo | 0m01.89s | 638124 ko || +0m00.05s || -8 ko | +2.64% | -0.00% 0m01.90s | 638032 ko | Bedrock/Group/ScalarMult/MontgomeryEquivalence.vo | 0m01.83s | 637992 ko || +0m00.06s || 40 ko | +3.82% | +0.00% 0m01.82s | 544192 ko | AbstractInterpretation/ZRange.vo | 0m01.70s | 544268 ko || +0m00.12s || -76 ko | +7.05% | -0.01% 0m01.80s | 614356 ko | CompilersTestCases.vo | 0m01.79s | 614440 ko || +0m00.01s || -84 ko | +0.55% | -0.01% 0m01.79s | 535132 ko | AbstractInterpretation/AbstractInterpretation.vo | 0m01.84s | 535240 ko || -0m00.05s || -108 ko | -2.71% | -0.02% 0m01.66s | 614456 ko | Bedrock/Field/Common/Names/MakeNames.vo | 0m01.90s | 614456 ko || -0m00.24s || 0 ko | -12.63% | +0.00% 0m01.59s | 562240 ko | Stringification/Go.vo | 0m01.75s | 562320 ko || -0m00.15s || -80 ko | -9.14% | -0.01% 0m01.57s | 634032 ko | Bedrock/Specs/Field.vo | 0m01.73s | 633640 ko || -0m00.15s || 392 ko | -9.24% | +0.06% 0m01.44s | 612524 ko | Bedrock/Field/Common/Arrays/MaxBounds.vo | 0m01.51s | 616444 ko || -0m00.07s || -3920 ko | -4.63% | -0.63% 0m01.38s | 604032 ko | Bedrock/Field/Common/Arrays/ByteBounds.vo | 0m01.43s | 604164 ko || -0m00.05s || -132 ko | -3.49% | -0.02% 0m01.32s | 619644 ko | Bedrock/Field/Interface/Representation.vo | 0m01.31s | 619784 ko || +0m00.01s || -140 ko | +0.76% | -0.02% 0m01.23s | 614868 ko | Bedrock/Group/Point.vo | 0m01.33s | 615212 ko || -0m00.10s || -344 ko | -7.51% | -0.05% 0m01.23s | 556884 ko | Stringification/C.vo | 0m01.35s | 556948 ko || -0m00.12s || -64 ko | -8.88% | -0.01% 0m01.21s | 590676 ko | Bedrock/Field/Common/Tactics.vo | 0m01.25s | 590780 ko || -0m00.04s || -104 ko | -3.20% | -0.01% 0m01.20s | 558764 ko | Stringification/JSON.vo | 0m01.37s | 558968 ko || -0m00.17s || -204 ko | -12.40% | -0.03% 0m01.18s | 544620 ko | Bedrock/Field/Common/Types.vo | 0m01.17s | 544536 ko || +0m00.01s || 84 ko | +0.85% | +0.01% 0m01.17s | 544340 ko | Bedrock/Field/Translation/LoadStoreList.vo | 0m01.22s | 544292 ko || -0m00.05s || 48 ko | -4.09% | +0.00% 0m01.17s | 493956 ko | Rewriter/Rewriter/Reify.vo | 0m01.06s | 495316 ko || +0m00.10s || -1360 ko | +10.37% | -0.27% 0m01.15s | 545116 ko | Bedrock/Field/Translation/Proofs/Equivalence.vo | 0m01.20s | 544996 ko || -0m00.05s || 120 ko | -4.16% | +0.02% 0m01.15s | 556092 ko | Stringification/Zig.vo | 0m01.27s | 555992 ko || -0m00.12s || 100 ko | -9.44% | +0.01% 0m01.14s | 555848 ko | Stringification/Rust.vo | 0m01.26s | 555792 ko || -0m00.12s || 56 ko | -9.52% | +0.01% 0m01.09s | 555636 ko | Stringification/Java.vo | 0m01.19s | 555460 ko || -0m00.09s || 176 ko | -8.40% | +0.03% 0m01.07s | 558372 ko | Bedrock/Field/Stringification/LoadStoreListVarData.vo | 0m01.10s | 558404 ko || -0m00.03s || -32 ko | -2.72% | -0.00% 0m01.07s | 530640 ko | Language/APINotations.vo | 0m01.08s | 528384 ko || -0m00.01s || 2256 ko | -0.92% | +0.42% 0m01.06s | 507192 ko | Bedrock/Field/Common/Arrays/MakeListLengths.vo | 0m01.11s | 507160 ko || -0m00.05s || 32 ko | -4.50% | +0.00% 0m01.05s | 568500 ko | Rewriter/All.vo | 0m01.08s | 568492 ko || -0m00.03s || 8 ko | -2.77% | +0.00% 0m01.03s | 562556 ko | Bedrock/Field/Stringification/FlattenVarData.vo | 0m01.13s | 562636 ko || -0m00.09s || -80 ko | -8.84% | -0.01% 0m01.03s | 536868 ko | Bedrock/Field/Translation/Proofs/VarnameSet.vo | 0m01.02s | 536852 ko || +0m00.01s || 16 ko | +0.98% | +0.00% 0m01.02s | 529504 ko | AbstractInterpretation/WfExtra.vo | 0m00.98s | 530316 ko || +0m00.04s || -812 ko | +4.08% | -0.15% 0m01.02s | 503696 ko | Rewriter/Rewriter/AllTactics.vo | 0m00.94s | 503736 ko || +0m00.08s || -40 ko | +8.51% | -0.00% 0m00.98s | 539140 ko | Bedrock/Field/Translation/Flatten.vo | 0m01.02s | 539212 ko || -0m00.04s || -72 ko | -3.92% | -0.01% 0m00.96s | 509700 ko | Language/WfExtra.vo | 0m00.89s | 509180 ko || +0m00.06s || 520 ko | +7.86% | +0.10% 0m00.95s | 519220 ko | PushButtonSynthesis/ReificationCache.vo | 0m00.98s | 521116 ko || -0m00.03s || -1896 ko | -3.06% | -0.36% 0m00.94s | 518908 ko | Language/API.vo | 0m00.90s | 518832 ko || +0m00.03s || 76 ko | +4.44% | +0.01% 0m00.94s | 491660 ko | Language/UnderLetsProofsExtra.vo | 0m00.94s | 491476 ko || +0m00.00s || 184 ko | +0.00% | +0.03% 0m00.94s | 522908 ko | MiscCompilerPassesProofsExtra.vo | 0m00.94s | 522932 ko || +0m00.00s || -24 ko | +0.00% | -0.00% 0m00.82s | 401576 ko | Rewriter/Rewriter/Examples/PerfTesting/Settings.vo | 0m00.73s | 401220 ko || +0m00.08s || 356 ko | +12.32% | +0.08% 0m00.81s | 517016 ko | Rewriter/AllTacticsExtra.vo | 0m00.93s | 517112 ko || -0m00.12s || -96 ko | -12.90% | -0.01% 0m00.79s | 496044 ko | Rewriter/Util/plugins/RewriterBuildRegistryImports.vo | 0m00.70s | 496092 ko || +0m00.09s || -48 ko | +12.85% | -0.00% 0m00.78s | 441520 ko | Rewriter/Util/plugins/RewriterBuild.vo | 0m00.70s | 441072 ko || +0m00.08s || 448 ko | +11.42% | +0.10% 0m00.78s | 440760 ko | Rewriter/Util/plugins/RewriterBuildRegistry.vo | 0m00.70s | 440396 ko || +0m00.08s || 364 ko | +11.42% | +0.08% ``` </p> </details>
Of the time spent in the new rewrite rule reification, 82.7% is spent in I have asked about speeding this up on Zulip, but at this point I'm inclined to run another timing diff after mit-plv/rewriter#142 and then eat the ~2--3 minute slowdown. (I'm also out of debugging time, @andres-erbsen if you want to debug, consider applying the patch diff --git a/src/Rewriter/Passes/NBE.v b/src/Rewriter/Passes/NBE.v
index 429a6125f..784248943 100644
--- a/src/Rewriter/Passes/NBE.v
+++ b/src/Rewriter/Passes/NBE.v
@@ -16,8 +16,14 @@ Module Compilers.
Module Import RewriteRules.
Section __.
- Definition VerifiedRewriterNBE : VerifiedRewriter_with_args true false true nbe_rewrite_rules_proofs.
+ Set Ltac Profiling.
+ Set Printing Depth 1000000.
+ Ltac2 Set Rewriter.Language.PreCommon.Pre.reify_profile_cbn := Init.true.
+ Ltac2 Set Reify.should_debug_profile := fun () => Init.true.
+ Definition VerifiedRewriterNBE : VerifiedRewriter_with_args false false true nbe_rewrite_rules_proofs.
Proof using All. make_rewriter. Defined.
+ Redirect "profile" Show Ltac Profile.
+ Redirect "profile0" Show Ltac Profile CutOff 0.
Definition default_opts := Eval hnf in @default_opts VerifiedRewriterNBE.
Let optsT := Eval hnf in optsT VerifiedRewriterNBE.
diff --git a/src/Rewriter/Rules.v b/src/Rewriter/Rules.v
index 08d572064..1c4d81e04 100644
--- a/src/Rewriter/Rules.v
+++ b/src/Rewriter/Rules.v
@@ -51,7 +51,7 @@ Definition nbe_rewrite_rulesT : list (bool * Prop)
myflatten
[mymap
dont_do_again
- [(forall A B x y, @fst A B (x, y) = x)
+ [(*(forall A B x y, @fst A B (x, y) = x)
; (forall A B x y, @snd A B (x, y) = y)
; (forall P t f, @Thunked.bool_rect P t f true = t tt)
; (forall P t f, @Thunked.bool_rect P t f false = f tt)
@@ -183,7 +183,7 @@ Definition nbe_rewrite_rulesT : list (bool * Prop)
end)
('n)
xs)
- ; typeof! @unfold1_nat_rect_fbb_b
+ ; *)typeof! @unfold1_nat_rect_fbb_b
; typeof! @unfold1_nat_rect_fbb_b_b
; typeof! @unfold1_list_rect_fbb_b
; typeof! @unfold1_list_rect_fbb_b_b You might also want to throw a |
For future archeologists:
locally but not on CI. Very much not sure what to make of it, but I don't think it should block this PR if CI passes. |
afb40f7
to
0ccc145
Compare
0ccc145
to
ea82a69
Compare
For https://github.com/mit-plv/fiat-crypto/pull/1609 <details><summary>Timing Diff</summary> <p> ``` After | Peak Mem | File Name | Before | Peak Mem || Change || Change (mem) | % Change | % Change (mem) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 133m38.95s | 4370484 ko | Total Time / Peak Mem | 129m38.05s | 3712508 ko || +4m00.90s || 657976 ko | +3.09% | +17.72% ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 5m34.12s | 4370484 ko | Rewriter/Passes/NBE.vo | 2m34.13s | 3330528 ko || +2m59.99s || 1039956 ko | +116.77% | +31.22% 1m59.50s | 2329072 ko | fiat-rust/src/p384_scalar_32.rs | 2m02.66s | 2299112 ko || -0m03.15s || 29960 ko | -2.57% | +1.30% 1m57.95s | 2415624 ko | fiat-json/src/p384_32.json | 1m54.82s | 2444832 ko || +0m03.13s || -29208 ko | +2.72% | -1.19% 0m39.98s | 2234396 ko | ExtractionOCaml/dettman_multiplication | 0m36.98s | 1927716 ko || +0m03.00s || 306680 ko | +8.11% | +15.90% 5m31.05s | 3200456 ko | Bedrock/Field/Synthesis/Examples/p224_64_new.vo | 5m28.82s | 3175412 ko || +0m02.23s || 25044 ko | +0.67% | +0.78% 2m00.23s | 2461568 ko | fiat-json/src/p384_scalar_32.json | 1m58.15s | 2162244 ko || +0m02.07s || 299324 ko | +1.76% | +13.84% 1m59.33s | 2241456 ko | fiat-bedrock2/src/p384_scalar_32.c | 2m01.48s | 2430500 ko || -0m02.15s || -189044 ko | -1.76% | -7.77% 1m58.75s | 2141892 ko | fiat-java/src/FiatP384Scalar.java | 2m01.05s | 2237348 ko || -0m02.29s || -95456 ko | -1.90% | -4.26% 1m58.44s | 2273192 ko | fiat-go/32/p384scalar/p384scalar.go | 2m00.68s | 2317900 ko || -0m02.24s || -44708 ko | -1.85% | -1.92% 1m57.40s | 2307724 ko | fiat-java/src/FiatP384.java | 1m59.84s | 2327088 ko || -0m02.43s || -19364 ko | -2.03% | -0.83% 1m56.84s | 2321212 ko | fiat-zig/src/p384_32.zig | 1m59.10s | 2285560 ko || -0m02.25s || 35652 ko | -1.89% | +1.55% 1m56.07s | 2290720 ko | fiat-c/src/p384_32.c | 1m58.32s | 2325148 ko || -0m02.25s || -34428 ko | -1.90% | -1.48% 1m02.24s | 3703520 ko | ExtractionOCaml/with_bedrock2_fiat_crypto | 0m59.53s | 3712508 ko || +0m02.71s || -8988 ko | +4.55% | -0.24% 1m01.35s | 3705452 ko | ExtractionOCaml/bedrock2_fiat_crypto | 0m59.03s | 3710668 ko || +0m02.32s || -5216 ko | +3.93% | -0.14% 0m54.91s | 3724428 ko | ExtractionOCaml/fiat_crypto | 0m52.48s | 3710332 ko || +0m02.42s || 14096 ko | +4.63% | +0.37% 0m54.29s | 2480048 ko | ExtractionJsOfOCaml/fiat_crypto.ml | 0m52.17s | 2487376 ko || +0m02.11s || -7328 ko | +4.06% | -0.29% 0m48.09s | 2652116 ko | ExtractionOCaml/with_bedrock2_word_by_word_montgomery | 0m45.49s | 2632088 ko || +0m02.60s || 20028 ko | +5.71% | +0.76% 0m47.65s | 2657836 ko | ExtractionOCaml/bedrock2_word_by_word_montgomery | 0m44.92s | 2630968 ko || +0m02.72s || 26868 ko | +6.07% | +1.02% 0m47.57s | 2726404 ko | ExtractionOCaml/bedrock2_solinas_reduction | 0m45.01s | 2704500 ko || +0m02.56s || 21904 ko | +5.68% | +0.80% 0m45.77s | 2689372 ko | ExtractionOCaml/solinas_reduction | 0m43.29s | 2683760 ko || +0m02.48s || 5612 ko | +5.72% | +0.20% 0m45.63s | 2633500 ko | ExtractionOCaml/word_by_word_montgomery | 0m43.16s | 2619516 ko || +0m02.47s || 13984 ko | +5.72% | +0.53% 0m45.27s | 2544004 ko | ExtractionOCaml/with_bedrock2_unsaturated_solinas | 0m42.87s | 2533792 ko || +0m02.40s || 10212 ko | +5.59% | +0.40% 0m45.08s | 2545148 ko | ExtractionOCaml/bedrock2_unsaturated_solinas | 0m42.40s | 2536564 ko || +0m02.67s || 8584 ko | +6.32% | +0.33% 0m42.60s | 2339896 ko | ExtractionOCaml/unsaturated_solinas | 0m40.15s | 2331728 ko || +0m02.45s || 8168 ko | +6.10% | +0.35% 0m42.14s | 2237132 ko | ExtractionOCaml/with_bedrock2_base_conversion | 0m39.92s | 2230688 ko || +0m02.21s || 6444 ko | +5.56% | +0.28% 0m41.95s | 2258216 ko | ExtractionOCaml/bedrock2_dettman_multiplication | 0m39.79s | 2246108 ko || +0m02.16s || 12108 ko | +5.42% | +0.53% 0m41.92s | 2240944 ko | ExtractionOCaml/with_bedrock2_saturated_solinas | 0m39.70s | 2233448 ko || +0m02.21s || 7496 ko | +5.59% | +0.33% 0m41.86s | 2239092 ko | ExtractionOCaml/with_bedrock2_dettman_multiplication | 0m39.56s | 2234396 ko || +0m02.29s || 4696 ko | +5.81% | +0.21% 0m41.57s | 2240068 ko | ExtractionOCaml/bedrock2_saturated_solinas | 0m39.51s | 2231968 ko || +0m02.06s || 8100 ko | +5.21% | +0.36% 0m41.41s | 2234816 ko | ExtractionOCaml/bedrock2_base_conversion | 0m39.16s | 2224784 ko || +0m02.25s || 10032 ko | +5.74% | +0.45% 0m39.09s | 2045652 ko | ExtractionOCaml/base_conversion | 0m36.77s | 1882572 ko || +0m02.32s || 163080 ko | +6.30% | +8.66% 0m39.06s | 2055248 ko | ExtractionOCaml/saturated_solinas | 0m36.32s | 1900876 ko || +0m02.74s || 154372 ko | +7.54% | +8.12% 0m35.49s | 1741752 ko | ExtractionOCaml/perf_unsaturated_solinas | 0m33.30s | 1696000 ko || +0m02.19s || 45752 ko | +6.57% | +2.69% 2m00.22s | 2401976 ko | fiat-bedrock2/src/p384_32.c | 2m02.18s | 2217824 ko || -0m01.96s || 184152 ko | -1.60% | +8.30% 1m59.91s | 2320940 ko | fiat-zig/src/p384_scalar_32.zig | 2m01.71s | 2195356 ko || -0m01.79s || 125584 ko | -1.47% | +5.72% 1m59.14s | 2264508 ko | fiat-c/src/p384_scalar_32.c | 2m01.04s | 2315428 ko || -0m01.90s || -50920 ko | -1.56% | -2.19% 1m58.08s | 2290144 ko | fiat-rust/src/p384_32.rs | 1m59.31s | 2292024 ko || -0m01.23s || -1880 ko | -1.03% | -0.08% 0m42.55s | 2240500 ko | ExtractionOCaml/with_bedrock2_solinas_reduction | 0m40.66s | 2234592 ko || +0m01.89s || 5908 ko | +4.64% | +0.26% 0m40.28s | 1478504 ko | Rewriter/Passes/Arith.vo | 0m41.98s | 1481228 ko || -0m01.69s || -2724 ko | -4.04% | -0.18% 0m34.72s | 1752580 ko | ExtractionOCaml/perf_word_by_word_montgomery | 0m32.93s | 1718100 ko || +0m01.78s || 34480 ko | +5.43% | +2.00% 0m29.64s | 2053032 ko | ExtractionOCaml/with_bedrock2_dettman_multiplication.ml | 0m28.62s | 2049864 ko || +0m01.01s || 3168 ko | +3.56% | +0.15% 0m28.03s | 1945424 ko | ExtractionOCaml/saturated_solinas.ml | 0m26.78s | 1911944 ko || +0m01.25s || 33480 ko | +4.66% | +1.75% 0m17.56s | 320704 ko | fiat-go/64/p434/p434.go | 0m16.35s | 344808 ko || +0m01.20s || -24104 ko | +7.40% | -6.99% 8m04.87s | 2663916 ko | Bedrock/End2End/X25519/GarageDoor.vo | 8m04.02s | 2661980 ko || +0m00.85s || 1936 ko | +0.17% | +0.07% 4m45.51s | 2494088 ko | Bedrock/End2End/X25519/EdwardsXYZT.vo | 4m46.33s | 2489792 ko || -0m00.81s || 4296 ko | -0.28% | +0.17% 3m21.85s | 3498672 ko | Rewriter/Passes/ArithWithCasts.vo | 3m21.48s | 3497152 ko || +0m00.37s || 1520 ko | +0.18% | +0.04% 2m06.54s | 1391724 ko | Bedrock/End2End/X25519/Field25519.vo | 2m06.68s | 1385108 ko || -0m00.14s || 6616 ko | -0.11% | +0.47% 1m59.46s | 2196900 ko | fiat-go/32/p384/p384.go | 1m58.78s | 2251120 ko || +0m00.68s || -54220 ko | +0.57% | -2.40% 1m53.98s | 2478600 ko | Rewriter/Passes/ToFancyWithCasts.vo | 1m53.96s | 2481272 ko || +0m00.01s || -2672 ko | +0.01% | -0.10% 1m32.90s | 1957336 ko | SlowPrimeSynthesisExamples.vo | 1m32.90s | 1951288 ko || +0m00.00s || 6048 ko | +0.00% | +0.30% 1m32.09s | 2070416 ko | Fancy/Barrett256.vo | 1m31.69s | 2070856 ko || +0m00.40s || -440 ko | +0.43% | -0.02% 0m56.65s | 2591660 ko | ExtractionOCaml/with_bedrock2_fiat_crypto.ml | 0m56.04s | 2587220 ko || +0m00.60s || 4440 ko | +1.08% | +0.17% 0m56.59s | 2591872 ko | ExtractionOCaml/bedrock2_fiat_crypto.ml | 0m55.96s | 2588596 ko || +0m00.63s || 3276 ko | +1.12% | +0.12% 0m56.36s | 2597952 ko | ExtractionJsOfOCaml/with_bedrock2_fiat_crypto.ml | 0m55.83s | 2591080 ko || +0m00.53s || 6872 ko | +0.94% | +0.26% 0m56.26s | 834704 ko | Rewriter/RulesProofs.vo | 0m55.87s | 848780 ko || +0m00.39s || -14076 ko | +0.69% | -1.65% 0m56.16s | 2599000 ko | ExtractionJsOfOCaml/bedrock2_fiat_crypto.ml | 0m55.46s | 2588324 ko || +0m00.69s || 10676 ko | +1.26% | +0.41% 0m54.47s | 2480528 ko | ExtractionOCaml/fiat_crypto.ml | 0m53.50s | 2488780 ko || +0m00.96s || -8252 ko | +1.81% | -0.33% 0m50.01s | 1117432 ko | Rewriter/Passes/MultiRetSplit.vo | 0m50.54s | 1117464 ko || -0m00.53s || -32 ko | -1.04% | -0.00% 0m47.05s | 1843584 ko | Fancy/Montgomery256.vo | 0m46.57s | 1882256 ko || +0m00.47s || -38672 ko | +1.03% | -2.05% 0m41.03s | 89412 ko | fiat-go/32/p521/p521.go | 0m41.29s | 90304 ko || -0m00.25s || -892 ko | -0.62% | -0.98% 0m38.73s | 192288 ko | fiat-bedrock2/src/p521_32.c | 0m38.54s | 191252 ko || +0m00.18s || 1036 ko | +0.49% | +0.54% 0m37.96s | 2250044 ko | ExtractionOCaml/bedrock2_solinas_reduction.ml | 0m37.38s | 2262168 ko || +0m00.57s || -12124 ko | +1.55% | -0.53% 0m37.96s | 139000 ko | fiat-json/src/p521_32.json | 0m37.84s | 133668 ko || +0m00.11s || 5332 ko | +0.31% | +3.98% 0m37.78s | 80004 ko | fiat-zig/src/p521_32.zig | 0m37.75s | 84172 ko || +0m00.03s || -4168 ko | +0.07% | -4.95% 0m37.75s | 81832 ko | fiat-rust/src/p521_32.rs | 0m37.84s | 82404 ko || -0m00.09s || -572 ko | -0.23% | -0.69% 0m37.63s | 85588 ko | fiat-java/src/FiatP521.java | 0m37.81s | 83048 ko || -0m00.17s || 2540 ko | -0.47% | +3.05% 0m37.53s | 82628 ko | fiat-c/src/p521_32.c | 0m37.72s | 79408 ko || -0m00.18s || 3220 ko | -0.50% | +4.05% 0m37.25s | 2254188 ko | ExtractionOCaml/with_bedrock2_word_by_word_montgomery.ml | 0m36.44s | 2212012 ko || +0m00.81s || 42176 ko | +2.22% | +1.90% 0m37.14s | 2254952 ko | ExtractionOCaml/bedrock2_word_by_word_montgomery.ml | 0m36.41s | 2211712 ko || +0m00.73s || 43240 ko | +2.00% | +1.95% 0m36.21s | 2176032 ko | ExtractionOCaml/solinas_reduction.ml | 0m35.30s | 2146952 ko || +0m00.91s || 29080 ko | +2.57% | +1.35% 0m35.12s | 2145588 ko | ExtractionOCaml/word_by_word_montgomery.ml | 0m34.17s | 2116752 ko || +0m00.94s || 28836 ko | +2.78% | +1.36% 0m33.21s | 899056 ko | Rewriter/Passes/MulSplit.vo | 0m33.18s | 895480 ko || +0m00.03s || 3576 ko | +0.09% | +0.39% 0m32.88s | 2166828 ko | ExtractionOCaml/with_bedrock2_unsaturated_solinas.ml | 0m33.41s | 2166516 ko || -0m00.52s || 312 ko | -1.58% | +0.01% 0m32.85s | 2164880 ko | ExtractionOCaml/bedrock2_unsaturated_solinas.ml | 0m33.57s | 2166408 ko || -0m00.71s || -1528 ko | -2.14% | -0.07% 0m32.49s | 1221984 ko | Bedrock/End2End/X25519/MontgomeryLadder.vo | 0m32.64s | 1219996 ko || -0m00.14s || 1988 ko | -0.45% | +0.16% 0m32.10s | 2091560 ko | ExtractionOCaml/unsaturated_solinas.ml | 0m31.31s | 2033016 ko || +0m00.79s || 58544 ko | +2.52% | +2.87% 0m30.93s | 1256232 ko | Bedrock/End2End/X25519/GarageDoorTop.vo | 0m31.18s | 1258200 ko || -0m00.25s || -1968 ko | -0.80% | -0.15% 0m30.58s | 2083824 ko | ExtractionOCaml/bedrock2_dettman_multiplication.ml | 0m29.69s | 2035044 ko || +0m00.88s || 48780 ko | +2.99% | +2.39% 0m30.07s | 1481064 ko | StandaloneDebuggingExamples.vo | 0m30.16s | 1479316 ko || -0m00.08s || 1748 ko | -0.29% | +0.11% 0m29.85s | 2075580 ko | ExtractionOCaml/bedrock2_base_conversion.ml | 0m29.01s | 2027820 ko || +0m00.83s || 47760 ko | +2.89% | +2.35% 0m29.71s | 2074580 ko | ExtractionOCaml/with_bedrock2_base_conversion.ml | 0m28.90s | 2028104 ko || +0m00.81s || 46476 ko | +2.80% | +2.29% 0m29.71s | 2070300 ko | ExtractionOCaml/with_bedrock2_saturated_solinas.ml | 0m28.72s | 2048012 ko || +0m00.99s || 22288 ko | +3.44% | +1.08% 0m29.58s | 2070020 ko | ExtractionOCaml/with_bedrock2_solinas_reduction.ml | 0m28.98s | 2048204 ko || +0m00.59s || 21816 ko | +2.07% | +1.06% 0m29.57s | 2070812 ko | ExtractionOCaml/bedrock2_saturated_solinas.ml | 0m28.64s | 2048732 ko || +0m00.92s || 22080 ko | +3.24% | +1.07% 0m28.56s | 2011744 ko | ExtractionOCaml/dettman_multiplication.ml | 0m27.77s | 1986400 ko || +0m00.78s || 25344 ko | +2.84% | +1.27% 0m27.60s | 1954988 ko | ExtractionOCaml/base_conversion.ml | 0m27.05s | 1939500 ko || +0m00.55s || 15488 ko | +2.03% | +0.79% 0m25.28s | 1299164 ko | PerfTesting/PerfTestSearch.vo | 0m25.45s | 1302744 ko || -0m00.16s || -3580 ko | -0.66% | -0.27% 0m21.63s | 1909120 ko | ExtractionOCaml/perf_unsaturated_solinas.ml | 0m20.75s | 1832892 ko || +0m00.87s || 76228 ko | +4.24% | +4.15% 0m21.54s | 2437392 ko | ExtractionHaskell/with_bedrock2_fiat_crypto.hs | 0m21.34s | 2441484 ko || +0m00.19s || -4092 ko | +0.93% | -0.16% 0m21.40s | 2436356 ko | ExtractionHaskell/bedrock2_fiat_crypto.hs | 0m21.03s | 2438364 ko || +0m00.36s || -2008 ko | +1.75% | -0.08% 0m21.26s | 1899948 ko | ExtractionOCaml/perf_word_by_word_montgomery.ml | 0m21.00s | 1929736 ko || +0m00.26s || -29788 ko | +1.23% | -1.54% 0m20.89s | 1109836 ko | PushButtonSynthesis/UnsaturatedSolinas.vo | 0m20.89s | 1117536 ko || +0m00.00s || -7700 ko | +0.00% | -0.68% 0m20.78s | 2366272 ko | ExtractionHaskell/fiat_crypto.hs | 0m20.58s | 2338376 ko || +0m00.20s || 27896 ko | +0.97% | +1.19% 0m18.71s | 1115184 ko | PushButtonSynthesis/WordByWordMontgomery.vo | 0m18.71s | 1116872 ko || +0m00.00s || -1688 ko | +0.00% | -0.15% 0m18.52s | 1088300 ko | Bedrock/End2End/Poly1305/Field1305.vo | 0m18.43s | 1082908 ko || +0m00.08s || 5392 ko | +0.48% | +0.49% 0m18.02s | 385368 ko | fiat-bedrock2/src/p434_64.c | 0m18.09s | 395184 ko || -0m00.07s || -9816 ko | -0.38% | -2.48% 0m17.58s | 385232 ko | fiat-json/src/p434_64.json | 0m17.61s | 354440 ko || -0m00.03s || 30792 ko | -0.17% | +8.68% 0m17.55s | 2147688 ko | ExtractionHaskell/with_bedrock2_word_by_word_montgomery.hs | 0m17.01s | 2096248 ko || +0m00.53s || 51440 ko | +3.17% | +2.45% 0m17.53s | 332812 ko | fiat-rust/src/p434_64.rs | 0m17.51s | 331704 ko || +0m00.01s || 1108 ko | +0.11% | +0.33% 0m17.42s | 1291228 ko | PerfTesting/PerfTestSearchPattern.vo | 0m17.36s | 1290596 ko || +0m00.06s || 632 ko | +0.34% | +0.04% 0m17.41s | 2162836 ko | ExtractionHaskell/bedrock2_solinas_reduction.hs | 0m17.05s | 2115740 ko || +0m00.35s || 47096 ko | +2.11% | +2.22% 0m17.34s | 2162424 ko | ExtractionHaskell/with_bedrock2_solinas_reduction.hs | 0m17.01s | 2115484 ko || +0m00.32s || 46940 ko | +1.94% | +2.21% 0m17.32s | 319240 ko | fiat-zig/src/p434_64.zig | 0m17.41s | 332084 ko || -0m00.08s || -12844 ko | -0.51% | -3.86% 0m17.29s | 2148704 ko | ExtractionHaskell/bedrock2_word_by_word_montgomery.hs | 0m16.97s | 2095280 ko || +0m00.32s || 53424 ko | +1.88% | +2.54% 0m17.28s | 327216 ko | fiat-c/src/p434_64.c | 0m17.59s | 320604 ko || -0m00.30s || 6612 ko | -1.76% | +2.06% 0m16.94s | 591992 ko | fiat-bedrock2/src/secp256k1_montgomery_scalar_32.c | 0m16.89s | 549204 ko || +0m00.05s || 42788 ko | +0.29% | +7.79% 0m16.88s | 1097764 ko | Bedrock/Field/Translation/Proofs/Func.vo | 0m16.94s | 1091044 ko || -0m00.06s || 6720 ko | -0.35% | +0.61% 0m16.64s | 2058508 ko | ExtractionHaskell/solinas_reduction.hs | 0m16.27s | 2040460 ko || +0m00.37s || 18048 ko | +2.27% | +0.88% 0m16.64s | 545948 ko | fiat-bedrock2/src/p256_scalar_32.c | 0m16.81s | 582184 ko || -0m00.16s || -36236 ko | -1.01% | -6.22% 0m16.60s | 497404 ko | fiat-java/src/FiatP256Scalar.java | 0m16.49s | 465532 ko || +0m00.11s || 31872 ko | +0.66% | +6.84% 0m16.48s | 2015788 ko | ExtractionHaskell/word_by_word_montgomery.hs | 0m16.14s | 1994928 ko || +0m00.33s || 20860 ko | +2.10% | +1.04% 0m16.48s | 506704 ko | fiat-java/src/FiatSecp256K1MontgomeryScalar.java | 0m15.89s | 508152 ko || +0m00.58s || -1448 ko | +3.71% | -0.28% 0m16.37s | 532700 ko | fiat-bedrock2/src/curve25519_scalar_32.c | 0m16.47s | 561952 ko || -0m00.09s || -29252 ko | -0.60% | -5.20% 0m16.37s | 527676 ko | fiat-json/src/p256_scalar_32.json | 0m16.55s | 550516 ko || -0m00.17s || -22840 ko | -1.08% | -4.14% 0m16.29s | 2055344 ko | ExtractionHaskell/with_bedrock2_unsaturated_solinas.hs | 0m16.02s | 2032356 ko || +0m00.26s || 22988 ko | +1.68% | +1.13% 0m16.26s | 480716 ko | fiat-rust/src/p256_scalar_32.rs | 0m16.35s | 451796 ko || -0m00.08s || 28920 ko | -0.55% | +6.40% 0m16.19s | 494352 ko | fiat-go/32/secp256k1montgomeryscalar/secp256k1montgomeryscalar.go | 0m16.30s | 436412 ko || -0m00.10s || 57940 ko | -0.67% | +13.27% 0m16.16s | 2056824 ko | ExtractionHaskell/bedrock2_unsaturated_solinas.hs | 0m15.98s | 2031116 ko || +0m00.17s || 25708 ko | +1.12% | +1.26% 0m16.14s | 503672 ko | fiat-bedrock2/src/secp256k1_montgomery_32.c | 0m16.40s | 545704 ko || -0m00.25s || -42032 ko | -1.58% | -7.70% 0m16.04s | 480428 ko | fiat-go/32/p256scalar/p256scalar.go | 0m16.21s | 443600 ko || -0m00.17s || 36828 ko | -1.04% | +8.30% 0m16.04s | 496756 ko | fiat-zig/src/secp256k1_montgomery_scalar_32.zig | 0m16.10s | 501916 ko || -0m00.06s || -5160 ko | -0.37% | -1.02% 0m16.02s | 489128 ko | fiat-zig/src/p256_scalar_32.zig | 0m16.08s | 439752 ko || -0m00.05s || 49376 ko | -0.37% | +11.22% 0m16.01s | 503984 ko | fiat-rust/src/secp256k1_montgomery_scalar_32.rs | 0m16.08s | 440028 ko || -0m00.06s || 63956 ko | -0.43% | +14.53% 0m15.93s | 490732 ko | fiat-c/src/p256_scalar_32.c | 0m15.93s | 480884 ko || +0m00.00s || 9848 ko | +0.00% | +2.04% 0m15.90s | 486180 ko | fiat-java/src/FiatCurve25519Scalar.java | 0m16.31s | 435648 ko || -0m00.40s || 50532 ko | -2.51% | +11.59% 0m15.79s | 495508 ko | fiat-json/src/secp256k1_montgomery_32.json | 0m15.93s | 553532 ko || -0m00.14s || -58024 ko | -0.87% | -10.48% 0m15.78s | 476920 ko | fiat-c/src/secp256k1_montgomery_scalar_32.c | 0m15.82s | 443512 ko || -0m00.04s || 33408 ko | -0.25% | +7.53% 0m15.76s | 1973368 ko | ExtractionHaskell/unsaturated_solinas.hs | 0m15.46s | 1939424 ko || +0m00.29s || 33944 ko | +1.94% | +1.75% 0m15.76s | 488488 ko | fiat-json/src/curve25519_scalar_32.json | 0m16.04s | 542208 ko || -0m00.27s || -53720 ko | -1.74% | -9.90% 0m15.76s | 478272 ko | fiat-zig/src/secp256k1_montgomery_32.zig | 0m15.94s | 496368 ko || -0m00.17s || -18096 ko | -1.12% | -3.64% 0m15.74s | 502548 ko | fiat-rust/src/secp256k1_montgomery_32.rs | 0m15.76s | 496384 ko || -0m00.01s || 6164 ko | -0.12% | +1.24% 0m15.66s | 494864 ko | fiat-go/32/secp256k1montgomery/secp256k1montgomery.go | 0m15.69s | 494948 ko || -0m00.02s || -84 ko | -0.19% | -0.01% 0m15.66s | 440572 ko | fiat-java/src/FiatSecp256K1Montgomery.java | 0m15.74s | 504796 ko || -0m00.08s || -64224 ko | -0.50% | -12.72% 0m15.65s | 473036 ko | fiat-zig/src/curve25519_scalar_32.zig | 0m15.70s | 491508 ko || -0m00.04s || -18472 ko | -0.31% | -3.75% 0m15.57s | 498380 ko | fiat-json/src/secp256k1_montgomery_scalar_32.json | 0m16.14s | 567328 ko || -0m00.57s || -68948 ko | -3.53% | -12.15% 0m15.54s | 1106180 ko | Bedrock/Field/Translation/Proofs/Cmd.vo | 0m15.58s | 1105256 ko || -0m00.04s || 924 ko | -0.25% | +0.08% 0m15.52s | 485872 ko | fiat-go/32/curve25519scalar/curve25519scalar.go | 0m15.53s | 483400 ko || -0m00.00s || 2472 ko | -0.06% | +0.51% 0m15.49s | 485832 ko | fiat-c/src/curve25519_scalar_32.c | 0m15.43s | 450744 ko || +0m00.06s || 35088 ko | +0.38% | +7.78% 0m15.40s | 1126272 ko | Bedrock/Field/Synthesis/New/Signature.vo | 0m15.37s | 1128492 ko || +0m00.03s || -2220 ko | +0.19% | -0.19% 0m15.40s | 1980912 ko | ExtractionHaskell/with_bedrock2_dettman_multiplication.hs | 0m15.01s | 1952584 ko || +0m00.39s || 28328 ko | +2.59% | +1.45% 0m15.38s | 507964 ko | fiat-bedrock2/src/p256_32.c | 0m15.49s | 528008 ko || -0m00.10s || -20044 ko | -0.71% | -3.79% 0m15.37s | 477376 ko | fiat-c/src/secp256k1_montgomery_32.c | 0m15.35s | 494284 ko || +0m00.01s || -16908 ko | +0.13% | -3.42% 0m15.34s | 1980092 ko | ExtractionHaskell/bedrock2_dettman_multiplication.hs | 0m15.05s | 1952380 ko || +0m00.28s || 27712 ko | +1.92% | +1.41% 0m15.19s | 1979336 ko | ExtractionHaskell/with_bedrock2_base_conversion.hs | 0m14.79s | 1947364 ko || +0m00.40s || 31972 ko | +2.70% | +1.64% 0m15.16s | 492160 ko | fiat-rust/src/curve25519_scalar_32.rs | 0m16.08s | 483312 ko || -0m00.91s || 8848 ko | -5.72% | +1.83% 0m15.10s | 1979572 ko | ExtractionHaskell/bedrock2_base_conversion.hs | 0m14.77s | 1944640 ko || +0m00.33s || 34932 ko | +2.23% | +1.79% 0m15.03s | 1941608 ko | ExtractionHaskell/with_bedrock2_saturated_solinas.hs | 0m14.13s | 1944032 ko || +0m00.89s || -2424 ko | +6.36% | -0.12% 0m15.02s | 485556 ko | fiat-zig/src/p256_32.zig | 0m15.19s | 485712 ko || -0m00.16s || -156 ko | -1.11% | -0.03% 0m15.00s | 1941740 ko | ExtractionHaskell/bedrock2_saturated_solinas.hs | 0m14.85s | 1945624 ko || +0m00.15s || -3884 ko | +1.01% | -0.19% 0m14.97s | 486152 ko | fiat-rust/src/p256_32.rs | 0m14.85s | 481172 ko || +0m00.12s || 4980 ko | +0.80% | +1.03% 0m14.95s | 476920 ko | fiat-json/src/p256_32.json | 0m15.11s | 516088 ko || -0m00.16s || -39168 ko | -1.05% | -7.58% 0m14.90s | 482212 ko | fiat-go/32/p256/p256.go | 0m15.07s | 477140 ko || -0m00.16s || 5072 ko | -1.12% | +1.06% 0m14.78s | 1881064 ko | ExtractionHaskell/saturated_solinas.hs | 0m14.38s | 1876668 ko || +0m00.39s || 4396 ko | +2.78% | +0.23% 0m14.72s | 491212 ko | fiat-java/src/FiatP256.java | 0m14.80s | 487264 ko || -0m00.08s || 3948 ko | -0.54% | +0.81% 0m14.41s | 1894732 ko | ExtractionHaskell/base_conversion.hs | 0m14.15s | 1859860 ko || +0m00.25s || 34872 ko | +1.83% | +1.87% 0m14.41s | 480184 ko | fiat-c/src/p256_32.c | 0m14.49s | 478564 ko || -0m00.08s || 1620 ko | -0.55% | +0.33% 0m13.98s | 1903704 ko | ExtractionHaskell/dettman_multiplication.hs | 0m14.51s | 1885976 ko || -0m00.52s || 17728 ko | -3.65% | +0.93% 0m13.15s | 1551964 ko | Bedrock/Field/Synthesis/New/WordByWordMontgomery.vo | 0m13.08s | 1549676 ko || +0m00.07s || 2288 ko | +0.53% | +0.14% 0m10.83s | 249924 ko | fiat-bedrock2/src/p384_scalar_64.c | 0m10.84s | 248224 ko || -0m00.00s || 1700 ko | -0.09% | +0.68% 0m10.76s | 225128 ko | fiat-json/src/p384_scalar_64.json | 0m10.90s | 250920 ko || -0m00.14s || -25792 ko | -1.28% | -10.27% 0m10.75s | 206312 ko | fiat-rust/src/p384_scalar_64.rs | 0m10.59s | 206860 ko || +0m00.16s || -548 ko | +1.51% | -0.26% 0m10.69s | 199568 ko | fiat-go/64/p384scalar/p384scalar.go | 0m10.70s | 209512 ko || -0m00.00s || -9944 ko | -0.09% | -4.74% 0m10.60s | 204368 ko | fiat-c/src/p384_scalar_64.c | 0m10.54s | 194796 ko || +0m00.06s || 9572 ko | +0.56% | +4.91% 0m10.60s | 204528 ko | fiat-zig/src/p384_scalar_64.zig | 0m10.54s | 181860 ko || +0m00.06s || 22668 ko | +0.56% | +12.46% 0m10.26s | 1005728 ko | BoundsPipeline.vo | 0m10.25s | 999828 ko || +0m00.00s || 5900 ko | +0.09% | +0.59% 0m09.25s | 1247096 ko | Bedrock/End2End/X25519/MontgomeryLadderProperties.vo | 0m09.24s | 1245416 ko || +0m00.00s || 1680 ko | +0.10% | +0.13% 0m09.12s | 238524 ko | fiat-json/src/p384_64.json | 0m09.13s | 231860 ko || -0m00.01s || 6664 ko | -0.10% | +2.87% 0m09.10s | 255620 ko | fiat-bedrock2/src/p384_64.c | 0m09.08s | 247996 ko || +0m00.01s || 7624 ko | +0.22% | +3.07% 0m09.09s | 198100 ko | fiat-zig/src/p384_64.zig | 0m08.66s | 194384 ko || +0m00.42s || 3716 ko | +4.96% | +1.91% 0m09.01s | 362652 ko | fiat-bedrock2/src/p224_32.c | 0m09.01s | 359804 ko || +0m00.00s || 2848 ko | +0.00% | +0.79% 0m09.01s | 212280 ko | fiat-go/64/p384/p384.go | 0m09.09s | 209752 ko || -0m00.08s || 2528 ko | -0.88% | +1.20% 0m08.92s | 204084 ko | fiat-rust/src/p384_64.rs | 0m08.95s | 193392 ko || -0m00.02s || 10692 ko | -0.33% | +5.52% 0m08.89s | 321540 ko | fiat-json/src/p224_32.json | 0m08.82s | 345768 ko || +0m00.07s || -24228 ko | +0.79% | -7.00% 0m08.84s | 190600 ko | fiat-c/src/p384_64.c | 0m08.77s | 192560 ko || +0m00.07s || -1960 ko | +0.79% | -1.01% 0m08.81s | 304848 ko | fiat-rust/src/p224_32.rs | 0m08.76s | 295376 ko || +0m00.05s || 9472 ko | +0.57% | +3.20% 0m08.69s | 297896 ko | fiat-go/32/p224/p224.go | 0m08.77s | 272772 ko || -0m00.08s || 25124 ko | -0.91% | +9.21% 0m08.69s | 281356 ko | fiat-zig/src/p224_32.zig | 0m08.37s | 304612 ko || +0m00.32s || -23256 ko | +3.82% | -7.63% 0m08.68s | 309088 ko | fiat-java/src/FiatP224.java | 0m08.71s | 309156 ko || -0m00.03s || -68 ko | -0.34% | -0.02% 0m08.49s | 291880 ko | fiat-c/src/p224_32.c | 0m08.54s | 294312 ko || -0m00.04s || -2432 ko | -0.58% | -0.82% 0m08.31s | 140296 ko | fiat-json/src/p448_solinas_32.json | 0m08.31s | 138912 ko || +0m00.00s || 1384 ko | +0.00% | +0.99% 0m08.17s | 628572 ko | Rewriter/Passes/RelaxBitwidthAdcSbb.vo | 0m08.16s | 628844 ko || +0m00.00s || -272 ko | +0.12% | -0.04% 0m08.08s | 997520 ko | PushButtonSynthesis/BaseConversion.vo | 0m07.98s | 996644 ko || +0m00.09s || 876 ko | +1.25% | +0.08% 0m07.95s | 79240 ko | fiat-rust/src/p448_solinas_32.rs | 0m07.90s | 81472 ko || +0m00.04s || -2232 ko | +0.63% | -2.73% 0m07.91s | 73556 ko | fiat-zig/src/p448_solinas_32.zig | 0m07.94s | 81352 ko || -0m00.03s || -7796 ko | -0.37% | -9.58% 0m07.84s | 971052 ko | PushButtonSynthesis/SmallExamples.vo | 0m07.79s | 964172 ko || +0m00.04s || 6880 ko | +0.64% | +0.71% 0m07.83s | 78696 ko | fiat-c/src/p448_solinas_32.c | 0m07.89s | 79452 ko || -0m00.05s || -756 ko | -0.76% | -0.95% 0m07.15s | 1013368 ko | PushButtonSynthesis/Primitives.vo | 0m07.25s | 1014352 ko || -0m00.09s || -984 ko | -1.37% | -0.09% 0m06.38s | 993404 ko | PushButtonSynthesis/SolinasReduction.vo | 0m06.38s | 991732 ko || +0m00.00s || 1672 ko | +0.00% | +0.16% 0m06.27s | 616792 ko | Rewriter/Passes/NoSelect.vo | 0m06.26s | 615456 ko || +0m00.00s || 1336 ko | +0.15% | +0.21% 0m06.26s | 59768 ko | fiat-go/64/p521/p521.go | 0m06.26s | 59896 ko || +0m00.00s || -128 ko | +0.00% | -0.21% 0m05.56s | 75132 ko | fiat-bedrock2/src/p521_64.c | 0m05.58s | 79276 ko || -0m00.02s || -4144 ko | -0.35% | -5.22% 0m05.43s | 1138132 ko | Bedrock/Field/Synthesis/New/UnsaturatedSolinas.vo | 0m05.18s | 1135688 ko || +0m00.25s || 2444 ko | +4.82% | +0.21% 0m05.42s | 1049972 ko | CLI.vo | 0m05.47s | 1047920 ko || -0m00.04s || 2052 ko | -0.91% | +0.19% 0m05.41s | 44772 ko | fiat-c/src/p521_64.c | 0m04.88s | 44296 ko || +0m00.53s || 476 ko | +10.86% | +1.07% 0m05.38s | 44544 ko | fiat-zig/src/p521_64.zig | 0m04.82s | 45056 ko || +0m00.55s || -512 ko | +11.61% | -1.13% 0m05.36s | 61792 ko | fiat-json/src/p521_64.json | 0m05.41s | 62016 ko || -0m00.04s || -224 ko | -0.92% | -0.36% 0m05.30s | 997084 ko | PushButtonSynthesis/BarrettReduction.vo | 0m05.37s | 989500 ko || -0m00.07s || 7584 ko | -1.30% | +0.76% 0m04.81s | 44036 ko | fiat-rust/src/p521_64.rs | 0m05.37s | 44100 ko || -0m00.56s || -64 ko | -10.42% | -0.14% 0m04.41s | 975388 ko | PushButtonSynthesis/DettmanMultiplication.vo | 0m04.32s | 978264 ko || +0m00.08s || -2876 ko | +2.08% | -0.29% 0m04.11s | 1004444 ko | Bedrock/Field/Translation/Proofs/ValidComputable/Cmd.vo | 0m04.15s | 1002344 ko || -0m00.04s || 2100 ko | -0.96% | +0.20% 0m04.06s | 980500 ko | PushButtonSynthesis/SaturatedSolinas.vo | 0m04.08s | 986200 ko || -0m00.02s || -5700 ko | -0.49% | -0.57% 0m03.98s | 1409300 ko | Bedrock/Everything.vo | 0m04.11s | 1407144 ko || -0m00.13s || 2156 ko | -3.16% | +0.15% 0m03.84s | 1275180 ko | Everything.vo | 0m03.77s | 1273232 ko || +0m00.06s || 1948 ko | +1.85% | +0.15% 0m03.80s | 982844 ko | PushButtonSynthesis/FancyMontgomeryReduction.vo | 0m03.77s | 981160 ko || +0m00.02s || 1684 ko | +0.79% | +0.17% 0m03.58s | 997692 ko | Rewriter/PerfTesting/Core.vo | 0m03.58s | 993660 ko || +0m00.00s || 4032 ko | +0.00% | +0.40% 0m03.52s | 1232872 ko | PerfTesting/PerfTestPrint.vo | 0m03.55s | 1231676 ko || -0m00.02s || 1196 ko | -0.84% | +0.09% 0m03.21s | 1008336 ko | StandaloneMonadicUtils.vo | 0m03.16s | 1006476 ko || +0m00.04s || 1860 ko | +1.58% | +0.18% 0m03.14s | 567764 ko | Rewriter/Passes/ArithWithRelaxedCasts.vo | 0m03.20s | 567876 ko || -0m00.06s || -112 ko | -1.87% | -0.01% 0m03.13s | 996084 ko | Bedrock/Field/Translation/Proofs/ValidComputable/Func.vo | 0m03.09s | 994320 ko || +0m00.04s || 1764 ko | +1.29% | +0.17% 0m03.13s | 1037072 ko | Bedrock/Standalone/StandaloneHaskellMain.vo | 0m03.15s | 1034988 ko || -0m00.02s || 2084 ko | -0.63% | +0.20% 0m03.10s | 1035384 ko | Bedrock/Standalone/StandaloneJsOfOCamlMain.vo | 0m03.05s | 1033372 ko || +0m00.05s || 2012 ko | +1.63% | +0.19% 0m03.08s | 1005344 ko | StandaloneHaskellMain.vo | 0m03.04s | 1002224 ko || +0m00.04s || 3120 ko | +1.31% | +0.31% 0m03.02s | 1037312 ko | Bedrock/Standalone/StandaloneOCamlMain.vo | 0m03.12s | 1035308 ko || -0m00.10s || 2004 ko | -3.20% | +0.19% 0m03.02s | 575508 ko | Rewriter/Passes/AddAssocLeft.vo | 0m02.92s | 577532 ko || +0m00.10s || -2024 ko | +3.42% | -0.35% 0m03.01s | 999364 ko | Bedrock/Field/Stringification/Stringification.vo | 0m03.07s | 997148 ko || -0m00.06s || 2216 ko | -1.95% | +0.22% 0m03.00s | 938636 ko | Bedrock/Field/Translation/Cmd.vo | 0m03.06s | 942412 ko || -0m00.06s || -3776 ko | -1.96% | -0.40% 0m02.98s | 939264 ko | Bedrock/Field/Translation/Func.vo | 0m02.94s | 942940 ko || +0m00.04s || -3676 ko | +1.36% | -0.38% 0m02.97s | 1012892 ko | StandaloneJsOfOCamlMain.vo | 0m03.03s | 1011080 ko || -0m00.05s || 1812 ko | -1.98% | +0.17% 0m02.96s | 1012548 ko | StandaloneOCamlMain.vo | 0m03.05s | 1010580 ko || -0m00.08s || 1968 ko | -2.95% | +0.19% 0m02.92s | 1022664 ko | Rewriter/PerfTesting/StandaloneOCamlMain.vo | 0m02.89s | 1021240 ko || +0m00.02s || 1424 ko | +1.03% | +0.13% 0m02.89s | 971328 ko | Bedrock/Field/Translation/Parameters/Defaults64.vo | 0m02.86s | 974964 ko || +0m00.03s || -3636 ko | +1.04% | -0.37% 0m02.88s | 995476 ko | Bedrock/Field/Synthesis/New/ComputedOp.vo | 0m02.89s | 993312 ko || -0m00.01s || 2164 ko | -0.34% | +0.21% 0m02.88s | 971372 ko | Bedrock/Field/Translation/Parameters/FE310.vo | 0m02.87s | 975136 ko || +0m00.00s || -3764 ko | +0.34% | -0.38% 0m02.86s | 964220 ko | Bedrock/Field/Translation/Parameters/Defaults.vo | 0m02.84s | 967560 ko || +0m00.02s || -3340 ko | +0.70% | -0.34% 0m02.85s | 971540 ko | Bedrock/Field/Translation/Parameters/Defaults32.vo | 0m02.88s | 975024 ko || -0m00.02s || -3484 ko | -1.04% | -0.35% 0m02.79s | 100444 ko | fiat-bedrock2/src/p256_scalar_64.c | 0m02.78s | 101444 ko || +0m00.01s || -1000 ko | +0.35% | -0.98% 0m02.76s | 101104 ko | fiat-bedrock2/src/secp256k1_montgomery_scalar_64.c | 0m02.71s | 99348 ko || +0m00.04s || 1756 ko | +1.84% | +1.76% 0m02.76s | 88556 ko | fiat-json/src/p256_scalar_64.json | 0m02.76s | 87104 ko || +0m00.00s || 1452 ko | +0.00% | +1.66% 0m02.74s | 87088 ko | fiat-json/src/secp256k1_montgomery_scalar_64.json | 0m02.68s | 89884 ko || +0m00.06s || -2796 ko | +2.23% | -3.11% 0m02.69s | 565928 ko | Rewriter/Passes/FlattenThunkedRects.vo | 0m02.70s | 566044 ko || -0m00.01s || -116 ko | -0.37% | -0.02% 0m02.67s | 71188 ko | fiat-rust/src/p256_scalar_64.rs | 0m02.70s | 72632 ko || -0m00.03s || -1444 ko | -1.11% | -1.98% 0m02.65s | 71568 ko | fiat-c/src/p256_scalar_64.c | 0m02.67s | 70884 ko || -0m00.02s || 684 ko | -0.74% | +0.96% 0m02.65s | 74164 ko | fiat-c/src/secp256k1_montgomery_scalar_64.c | 0m02.65s | 73872 ko || +0m00.00s || 292 ko | +0.00% | +0.39% 0m02.65s | 77536 ko | fiat-go/64/p256scalar/p256scalar.go | 0m02.70s | 77236 ko || -0m00.05s || 300 ko | -1.85% | +0.38% 0m02.65s | 73976 ko | fiat-rust/src/secp256k1_montgomery_scalar_64.rs | 0m02.65s | 73244 ko || +0m00.00s || 732 ko | +0.00% | +0.99% 0m02.65s | 72064 ko | fiat-zig/src/p256_scalar_64.zig | 0m02.67s | 70600 ko || -0m00.02s || 1464 ko | -0.74% | +2.07% 0m02.64s | 78004 ko | fiat-go/64/secp256k1montgomeryscalar/secp256k1montgomeryscalar.go | 0m02.71s | 77792 ko || -0m00.06s || 212 ko | -2.58% | +0.27% 0m02.63s | 70176 ko | fiat-zig/src/secp256k1_montgomery_scalar_64.zig | 0m02.68s | 69524 ko || -0m00.05s || 652 ko | -1.86% | +0.93% 0m02.58s | 57468 ko | fiat-go/64/p448solinas/p448solinas.go | 0m02.57s | 58220 ko || +0m00.01s || -752 ko | +0.38% | -1.29% 0m02.47s | 87764 ko | fiat-json/src/secp256k1_montgomery_64.json | 0m02.40s | 89584 ko || +0m00.07s || -1820 ko | +2.91% | -2.03% 0m02.44s | 98212 ko | fiat-bedrock2/src/secp256k1_montgomery_64.c | 0m02.37s | 97792 ko || +0m00.06s || 420 ko | +2.95% | +0.42% 0m02.42s | 72468 ko | fiat-rust/src/secp256k1_montgomery_64.rs | 0m02.43s | 72696 ko || -0m00.01s || -228 ko | -0.41% | -0.31% 0m02.40s | 74216 ko | fiat-go/64/secp256k1montgomery/secp256k1montgomery.go | 0m02.36s | 73876 ko || +0m00.04s || 340 ko | +1.69% | +0.46% 0m02.39s | 71156 ko | fiat-zig/src/secp256k1_montgomery_64.zig | 0m02.38s | 70956 ko || +0m00.01s || 200 ko | +0.42% | +0.28% 0m02.35s | 70164 ko | fiat-c/src/secp256k1_montgomery_64.c | 0m02.35s | 72620 ko || +0m00.00s || -2456 ko | +0.00% | -3.38% 0m02.30s | 75052 ko | fiat-go/64/curve25519scalar/curve25519scalar.go | 0m02.28s | 72824 ko || +0m00.02s || 2228 ko | +0.87% | +3.05% 0m02.29s | 93720 ko | fiat-bedrock2/src/curve25519_scalar_64.c | 0m02.30s | 93748 ko || -0m00.00s || -28 ko | -0.43% | -0.02% 0m02.27s | 562884 ko | Rewriter/Passes/StripLiteralCasts.vo | 0m02.27s | 564888 ko || +0m00.00s || -2004 ko | +0.00% | -0.35% 0m02.26s | 71596 ko | fiat-rust/src/curve25519_scalar_64.rs | 0m02.29s | 71196 ko || -0m00.03s || 400 ko | -1.31% | +0.56% 0m02.25s | 85432 ko | fiat-json/src/curve25519_scalar_64.json | 0m02.35s | 86952 ko || -0m00.10s || -1520 ko | -4.25% | -1.74% 0m02.25s | 70124 ko | fiat-zig/src/curve25519_scalar_64.zig | 0m02.25s | 68708 ko || +0m00.00s || 1416 ko | +0.00% | +2.06% 0m02.22s | 566620 ko | Rewriter/Passes/UnfoldValueBarrier.vo | 0m02.28s | 566536 ko || -0m00.05s || 84 ko | -2.63% | +0.01% 0m02.19s | 69788 ko | fiat-c/src/curve25519_scalar_64.c | 0m02.21s | 69340 ko || -0m00.02s || 448 ko | -0.90% | +0.64% 0m02.15s | 567208 ko | Rewriter/Passes/ToFancy.vo | 0m02.20s | 567212 ko || -0m00.05s || -4 ko | -2.27% | -0.00% 0m02.13s | 45116 ko | fiat-go/32/curve25519/curve25519.go | 0m02.13s | 43576 ko || +0m00.00s || 1540 ko | +0.00% | +3.53% 0m02.05s | 77620 ko | fiat-bedrock2/src/p448_solinas_64.c | 0m02.07s | 77308 ko || -0m00.02s || 312 ko | -0.96% | +0.40% 0m02.00s | 75804 ko | fiat-bedrock2/src/curve25519_32.c | 0m01.98s | 76816 ko || +0m00.02s || -1012 ko | +1.01% | -1.31% 0m01.97s | 59824 ko | fiat-json/src/p448_solinas_64.json | 0m01.97s | 59328 ko || +0m00.00s || 496 ko | +0.00% | +0.83% 0m01.94s | 43708 ko | fiat-zig/src/p448_solinas_64.zig | 0m01.90s | 42340 ko || +0m00.04s || 1368 ko | +2.10% | +3.23% 0m01.92s | 42480 ko | fiat-c/src/p448_solinas_64.c | 0m01.89s | 41788 ko || +0m00.03s || 692 ko | +1.58% | +1.65% 0m01.92s | 42196 ko | fiat-rust/src/p448_solinas_64.rs | 0m01.92s | 43676 ko || +0m00.00s || -1480 ko | +0.00% | -3.38% 0m01.83s | 85452 ko | fiat-json/src/p224_64.json | 0m01.80s | 88012 ko || +0m00.03s || -2560 ko | +1.66% | -2.90% 0m01.83s | 87112 ko | fiat-json/src/p256_64.json | 0m01.81s | 86432 ko || +0m00.02s || 680 ko | +1.10% | +0.78% 0m01.82s | 96320 ko | fiat-bedrock2/src/p224_64.c | 0m01.87s | 95588 ko || -0m00.05s || 732 ko | -2.67% | +0.76% 0m01.81s | 41768 ko | fiat-zig/src/curve25519_32.zig | 0m01.79s | 41492 ko || +0m00.02s || 276 ko | +1.11% | +0.66% 0m01.81s | 69796 ko | fiat-zig/src/p224_64.zig | 0m01.79s | 69264 ko || +0m00.02s || 532 ko | +1.11% | +0.76% 0m01.80s | 94100 ko | fiat-bedrock2/src/p256_64.c | 0m01.77s | 91532 ko || +0m00.03s || 2568 ko | +1.69% | +2.80% 0m01.80s | 71228 ko | fiat-rust/src/p224_64.rs | 0m01.80s | 68468 ko || +0m00.00s || 2760 ko | +0.00% | +4.03% 0m01.79s | 41952 ko | fiat-java/src/FiatCurve25519.java | 0m01.74s | 42324 ko || +0m00.05s || -372 ko | +2.87% | -0.87% 0m01.78s | 59180 ko | fiat-json/src/curve25519_32.json | 0m01.89s | 60524 ko || -0m00.10s || -1344 ko | -5.82% | -2.22% 0m01.76s | 40544 ko | fiat-c/src/curve25519_32.c | 0m01.76s | 40876 ko || +0m00.00s || -332 ko | +0.00% | -0.81% 0m01.76s | 73780 ko | fiat-go/64/p224/p224.go | 0m01.75s | 73584 ko || +0m00.01s || 196 ko | +0.57% | +0.26% 0m01.76s | 73468 ko | fiat-go/64/p256/p256.go | 0m01.73s | 71364 ko || +0m00.03s || 2104 ko | +1.73% | +2.94% 0m01.75s | 69560 ko | fiat-zig/src/p256_64.zig | 0m01.74s | 70000 ko || +0m00.01s || -440 ko | +0.57% | -0.62% 0m01.74s | 41016 ko | fiat-rust/src/curve25519_32.rs | 0m01.80s | 41968 ko || -0m00.06s || -952 ko | -3.33% | -2.26% 0m01.72s | 68600 ko | fiat-c/src/p224_64.c | 0m01.74s | 69000 ko || -0m00.02s || -400 ko | -1.14% | -0.57% 0m01.70s | 69300 ko | fiat-c/src/p256_64.c | 0m01.68s | 68352 ko || +0m00.02s || 948 ko | +1.19% | +1.38% 0m01.70s | 69860 ko | fiat-rust/src/p256_64.rs | 0m01.74s | 70856 ko || -0m00.04s || -996 ko | -2.29% | -1.40% 0m01.66s | 617724 ko | CompilersTestCases.vo | 0m01.67s | 614372 ko || -0m00.01s || 3352 ko | -0.59% | +0.54% 0m01.43s | 63256 ko | fiat-bedrock2/src/secp256k1_dettman_32.c | 0m01.42s | 60252 ko || +0m00.01s || 3004 ko | +0.70% | +4.98% 0m01.22s | 32000 ko | fiat-go/32/secp256k1dettman/secp256k1dettman.go | 0m01.22s | 31548 ko || +0m00.00s || 452 ko | +0.00% | +1.43% 0m01.22s | 34668 ko | fiat-java/src/FiatSecp256K1Dettman.java | 0m01.22s | 33688 ko || +0m00.00s || 980 ko | +0.00% | +2.90% 0m01.22s | 49040 ko | fiat-json/src/secp256k1_dettman_32.json | 0m01.27s | 48936 ko || -0m00.05s || 104 ko | -3.93% | +0.21% 0m01.22s | 31852 ko | fiat-rust/src/secp256k1_dettman_32.rs | 0m01.21s | 31532 ko || +0m00.01s || 320 ko | +0.82% | +1.01% 0m01.22s | 32152 ko | fiat-zig/src/secp256k1_dettman_32.zig | 0m01.22s | 31720 ko || +0m00.00s || 432 ko | +0.00% | +1.36% 0m01.20s | 33024 ko | fiat-c/src/secp256k1_dettman_32.c | 0m01.21s | 32708 ko || -0m00.01s || 316 ko | -0.82% | +0.96% 0m00.93s | 571828 ko | Rewriter/All.vo | 0m00.98s | 568380 ko || -0m00.04s || 3448 ko | -5.10% | +0.60% 0m00.85s | 456204 ko | Rewriter/Rules.vo | 0m00.86s | 455820 ko || -0m00.01s || 384 ko | -1.16% | +0.08% 0m00.62s | 37376 ko | fiat-go/64/curve25519/curve25519.go | 0m00.62s | 36976 ko || +0m00.00s || 400 ko | +0.00% | +1.08% 0m00.50s | 43752 ko | fiat-bedrock2/src/curve25519_64.c | 0m00.50s | 43516 ko || +0m00.00s || 236 ko | +0.00% | +0.54% 0m00.50s | 40228 ko | fiat-json/src/curve25519_64.json | 0m00.48s | 39756 ko || +0m00.02s || 472 ko | +4.16% | +1.18% 0m00.48s | 31900 ko | fiat-zig/src/curve25519_64.zig | 0m00.48s | 30460 ko || +0m00.00s || 1440 ko | +0.00% | +4.72% 0m00.47s | 110692 ko | ExtractionOCaml/with_bedrock2_fiat_crypto.cmi | 0m00.44s | 110484 ko || +0m00.02s || 208 ko | +6.81% | +0.18% 0m00.46s | 106976 ko | ExtractionOCaml/fiat_crypto.cmi | 0m00.44s | 106972 ko || +0m00.02s || 4 ko | +4.54% | +0.00% 0m00.46s | 31484 ko | fiat-rust/src/curve25519_64.rs | 0m00.47s | 31292 ko || -0m00.00s || 192 ko | -2.12% | +0.61% 0m00.45s | 105408 ko | ExtractionOCaml/base_conversion.cmi | 0m00.43s | 105420 ko || +0m00.02s || -12 ko | +4.65% | -0.01% 0m00.45s | 108780 ko | ExtractionOCaml/bedrock2_unsaturated_solinas.cmi | 0m00.45s | 108964 ko || +0m00.00s || -184 ko | +0.00% | -0.16% 0m00.45s | 107220 ko | ExtractionOCaml/with_bedrock2_base_conversion.cmi | 0m00.41s | 107104 ko || +0m00.04s || 116 ko | +9.75% | +0.10% 0m00.45s | 31516 ko | fiat-c/src/curve25519_64.c | 0m00.45s | 31172 ko || +0m00.00s || 344 ko | +0.00% | +1.10% 0m00.44s | 107500 ko | ExtractionOCaml/bedrock2_dettman_multiplication.cmi | 0m00.47s | 107408 ko || -0m00.02s || 92 ko | -6.38% | +0.08% 0m00.44s | 109688 ko | ExtractionOCaml/bedrock2_fiat_crypto.cmi | 0m00.45s | 109576 ko || -0m00.01s || 112 ko | -2.22% | +0.10% 0m00.44s | 106768 ko | ExtractionOCaml/bedrock2_solinas_reduction.cmi | 0m00.45s | 106852 ko || -0m00.01s || -84 ko | -2.22% | -0.07% 0m00.44s | 108500 ko | ExtractionOCaml/bedrock2_word_by_word_montgomery.cmi | 0m00.47s | 108388 ko || -0m00.02s || 112 ko | -6.38% | +0.10% 0m00.44s | 104152 ko | ExtractionOCaml/dettman_multiplication.cmi | 0m00.44s | 104116 ko || +0m00.00s || 36 ko | +0.00% | +0.03% 0m00.44s | 105080 ko | ExtractionOCaml/solinas_reduction.cmi | 0m00.43s | 104852 ko || +0m00.01s || 228 ko | +2.32% | +0.21% 0m00.44s | 105748 ko | ExtractionOCaml/unsaturated_solinas.cmi | 0m00.44s | 105948 ko || +0m00.00s || -200 ko | +0.00% | -0.18% 0m00.44s | 106800 ko | ExtractionOCaml/with_bedrock2_solinas_reduction.cmi | 0m00.44s | 106716 ko || +0m00.00s || 84 ko | +0.00% | +0.07% 0m00.44s | 105460 ko | ExtractionOCaml/word_by_word_montgomery.cmi | 0m00.46s | 105440 ko || -0m00.02s || 20 ko | -4.34% | +0.01% 0m00.43s | 106940 ko | ExtractionOCaml/bedrock2_base_conversion.cmi | 0m00.45s | 107388 ko || -0m00.02s || -448 ko | -4.44% | -0.41% 0m00.43s | 104764 ko | ExtractionOCaml/saturated_solinas.cmi | 0m00.44s | 104952 ko || -0m00.01s || -188 ko | -2.27% | -0.17% 0m00.43s | 106872 ko | ExtractionOCaml/with_bedrock2_saturated_solinas.cmi | 0m00.45s | 106864 ko || -0m00.02s || 8 ko | -4.44% | +0.00% 0m00.43s | 108272 ko | ExtractionOCaml/with_bedrock2_unsaturated_solinas.cmi | 0m00.45s | 108168 ko || -0m00.02s || 104 ko | -4.44% | +0.09% 0m00.43s | 108648 ko | ExtractionOCaml/with_bedrock2_word_by_word_montgomery.cmi | 0m00.44s | 108860 ko || -0m00.01s || -212 ko | -2.27% | -0.19% 0m00.42s | 106768 ko | ExtractionOCaml/bedrock2_saturated_solinas.cmi | 0m00.44s | 106768 ko || -0m00.02s || 0 ko | -4.54% | +0.00% 0m00.42s | 107376 ko | ExtractionOCaml/with_bedrock2_dettman_multiplication.cmi | 0m00.41s | 107212 ko || +0m00.01s || 164 ko | +2.43% | +0.15% 0m00.41s | 42764 ko | fiat-rust/src/curve25519_solinas_64.rs | 0m00.41s | 42420 ko || +0m00.00s || 344 ko | +0.00% | +0.81% 0m00.40s | 48292 ko | fiat-bedrock2/src/curve25519_solinas_64.c | 0m00.42s | 47448 ko || -0m00.01s || 844 ko | -4.76% | +1.77% 0m00.40s | 42028 ko | fiat-c/src/curve25519_solinas_64.c | 0m00.39s | 41920 ko || +0m00.01s || 108 ko | +2.56% | +0.25% 0m00.40s | 46448 ko | fiat-json/src/curve25519_solinas_64.json | 0m00.43s | 46028 ko || -0m00.02s || 420 ko | -6.97% | +0.91% 0m00.39s | 43412 ko | fiat-go/64/curve25519solinas/curve25519solinas.go | 0m00.42s | 43260 ko || -0m00.02s || 152 ko | -7.14% | +0.35% 0m00.39s | 42768 ko | fiat-zig/src/curve25519_solinas_64.zig | 0m00.40s | 41992 ko || -0m00.01s || 776 ko | -2.50% | +1.84% 0m00.30s | 29992 ko | fiat-go/32/poly1305/poly1305.go | 0m00.29s | 29464 ko || +0m00.01s || 528 ko | +3.44% | +1.79% 0m00.26s | 38380 ko | fiat-bedrock2/src/poly1305_32.c | 0m00.27s | 38752 ko || -0m00.01s || -372 ko | -3.70% | -0.95% 0m00.24s | 34972 ko | fiat-json/src/poly1305_32.json | 0m00.26s | 34748 ko || -0m00.02s || 224 ko | -7.69% | +0.64% 0m00.23s | 34312 ko | fiat-bedrock2/src/secp256k1_dettman_64.c | 0m00.22s | 33788 ko || +0m00.01s || 524 ko | +4.54% | +1.55% 0m00.23s | 28528 ko | fiat-zig/src/poly1305_32.zig | 0m00.22s | 28356 ko || +0m00.01s || 172 ko | +4.54% | +0.60% 0m00.22s | 28592 ko | fiat-go/64/secp256k1dettman/secp256k1dettman.go | 0m00.23s | 28316 ko || -0m00.01s || 276 ko | -4.34% | +0.97% 0m00.22s | 28756 ko | fiat-java/src/FiatPoly1305.java | 0m00.22s | 28688 ko || +0m00.00s || 68 ko | +0.00% | +0.23% 0m00.22s | 28888 ko | fiat-rust/src/poly1305_32.rs | 0m00.22s | 28596 ko || +0m00.00s || 292 ko | +0.00% | +1.02% 0m00.21s | 28244 ko | fiat-c/src/poly1305_32.c | 0m00.22s | 28308 ko || -0m00.01s || -64 ko | -4.54% | -0.22% 0m00.19s | 28908 ko | fiat-json/src/secp256k1_dettman_64.json | 0m00.19s | 28124 ko || +0m00.00s || 784 ko | +0.00% | +2.78% 0m00.18s | 24828 ko | fiat-rust/src/secp256k1_dettman_64.rs | 0m00.19s | 24608 ko || -0m00.01s || 220 ko | -5.26% | +0.89% 0m00.18s | 24692 ko | fiat-zig/src/secp256k1_dettman_64.zig | 0m00.18s | 24300 ko || +0m00.00s || 392 ko | +0.00% | +1.61% 0m00.17s | 61740 ko | ExtractionOCaml/perf_word_by_word_montgomery.cmi | 0m00.15s | 61852 ko || +0m00.02s || -112 ko | +13.33% | -0.18% 0m00.17s | 24668 ko | fiat-c/src/secp256k1_dettman_64.c | 0m00.17s | 24356 ko || +0m00.00s || 312 ko | +0.00% | +1.28% 0m00.17s | 29916 ko | fiat-go/64/poly1305/poly1305.go | 0m00.18s | 29392 ko || -0m00.00s || 524 ko | -5.55% | +1.78% 0m00.15s | 61552 ko | ExtractionOCaml/perf_unsaturated_solinas.cmi | 0m00.17s | 61932 ko || -0m00.02s || -380 ko | -11.76% | -0.61% 0m00.13s | 31476 ko | fiat-json/src/poly1305_64.json | 0m00.13s | 31440 ko || +0m00.00s || 36 ko | +0.00% | +0.11% 0m00.12s | 31576 ko | fiat-bedrock2/src/poly1305_64.c | 0m00.12s | 31240 ko || +0m00.00s || 336 ko | +0.00% | +1.07% 0m00.12s | 26580 ko | fiat-c/src/poly1305_64.c | 0m00.12s | 26524 ko || +0m00.00s || 56 ko | +0.00% | +0.21% 0m00.12s | 27276 ko | fiat-rust/src/poly1305_64.rs | 0m00.12s | 26776 ko || +0m00.00s || 500 ko | +0.00% | +1.86% 0m00.12s | 26968 ko | fiat-zig/src/poly1305_64.zig | 0m00.12s | 26948 ko || +0m00.00s || 20 ko | +0.00% | +0.07% 0m00.00s | 4544 ko | ExtractionJsOfOCaml/bedrock2_fiat_crypto.cmi | 0m00.00s | 4664 ko || +0m00.00s || -120 ko | N/A | -2.57% 0m00.00s | 4508 ko | ExtractionJsOfOCaml/fiat_crypto.cmi | 0m00.00s | 4564 ko || +0m00.00s || -56 ko | N/A | -1.22% 0m00.00s | 4444 ko | ExtractionJsOfOCaml/with_bedrock2_fiat_crypto.cmi | 0m00.00s | 4504 ko || +0m00.00s || -60 ko | N/A | -1.33% ``` </p> </details>
ea82a69
to
fd392ca
Compare
For #1609
Notes:
Ltac CacheTerm.allow_debug_in_cache ::= constr:(true).
to get access to the leftover goalsrepeat ProofsCommonTactics.Compilers.RewriteRules.InterpTactics.handle_reified_rewrite_rules_interp_step (Build_ExprInfoT Compilers.base IdentifiersBasicGENERATED.Compilers.ident Compilers.base_interp (@Compilers.ident_interp)) (Build_ExprExtraInfoT (Build_ExprInfoT Compilers.base IdentifiersBasicGENERATED.Compilers.ident Compilers.base_interp (@Compilers.ident_interp)) Compilers.base_beq (@Compilers.base_interp_beq) Compilers.try_make_base_transport_cps Compilers.baseHasNat Compilers.buildIdent Compilers.toRestrictedIdent Compilers.buildEagerIdent Compilers.invertIdent Compilers.base_default Compilers.reflect_base_beq (@Compilers.reflect_base_interp_beq) Compilers.try_make_base_transport_cps_correct Compilers.baseHasNatCorrect Compilers.toFromRestrictedIdent Compilers.buildInvertIdentCorrect Compilers.buildInterpIdentCorrect Compilers.buildInterpEagerIdentCorrect (@Compilers.ident_interp_Proper)) Compilers.base_interp @Compilers.ident_interp @Compilers.ident_interp_Proper.
to play with the code (discovered with More expressive debugging inhandle_reified_rewrite_rules_interp
rewriter#132)UnderLetsProofs.Compilers.UnderLets.eqv_of_interp_related.
to get appropriate context lemmas forProper
proofsTiming Diff