-
Notifications
You must be signed in to change notification settings - Fork 147
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
Saturated arithmetic experiment #1609
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This rewrite somewhat WIP but substantially far along and quite compelling.
src/Arithmetic/SolinasReduction.v
Outdated
Definition firstn {T} n (xs : stream T) : list T := map xs (seq 0 n). | ||
Definition cons {T} x (xs : stream T) : stream T := | ||
fun i => match i with O => x | S i => xs i end. | ||
Definition prefixes {T} (xs : stream T) : stream (list T) := |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reification of prefixes
fails with "The reference 2 is free."
(fold_right Pos.mul 1%positive
(stream.prefixes (fun _ : Datatypes.nat => 10%positive) 2))
expr.reify_in_context: Attempting to reify:
(fold_right Pos.mul 1%positive
(stream.prefixes (fun _ : Datatypes.nat => 10%positive) 2))
expr.reify_in_context: Case: preprocess
expr.reify_preprocess: Attempting to preprocess:
(fold_right Pos.mul 1%positive
(stream.prefixes (fun _ : Datatypes.nat => 10%positive) 2))
expr.reify_preprocess_extra: Attempting to preprocess:
(fold_right Pos.mul 1%positive
(stream.prefixes (fun _ : Datatypes.nat => 10%positive) 2))
expr.reify_in_context: Attempting to reify (post-preprocessing):
(fold_right Pos.mul 1%positive
(stream.prefixes (fun _ : Datatypes.nat => 10%positive) 2))
expr.reify_in_context: Case: App (check LetIn)
expr.reify_in_context: Case: ident_preprocess
expr.reify_ident_preprocess: Attempting to (ident) preprocess:
(fold_right Pos.mul 1%positive
(stream.prefixes (fun _ : Datatypes.nat => 10%positive) 2))
expr.reify_in_context: Attempting to reify ident (post-preprocessing):
(fold_right Pos.mul 1%positive
(stream.prefixes (fun _ : Datatypes.nat => 10%positive) 2))
reify_ident_via_list_opt: Attempting to reify:
(fold_right Pos.mul 1%positive
(stream.prefixes (fun _ : Datatypes.nat => 10%positive) 2))
reify_ident_via_list_opt: Case: literal?
reify_ident_via_list_opt: Case: interp?
reify_ident_via_list_opt: Case: head eagerly?
reify_ident_via_list_opt: Attempting to lookup ident:
fold_right
reify_ident_via_list_opt: Success in looking up ident: fold_right as @ident_List_fold_right
base.reify: Attempting to reify:
BinNums.positive
reify_base_via_list: Attempting to reify:
BinNums.positive
base.reify: Success in reifying: BinNums.positive as
(base.type.type_base positive)
base.reify: Attempting to reify:
BinNums.positive
reify_base_via_list: Attempting to reify:
BinNums.positive
base.reify: Success in reifying: BinNums.positive as
(base.type.type_base positive)
reify_ident_via_list_opt: Failure in reifying:
(fold_right Pos.mul 1%positive
(stream.prefixes (fun _ : Datatypes.nat => 10%positive) 2))
expr.reify_in_context: Case: not ident
expr.reify_in_context: Case: App
expr.reify_in_context: Case: App (non-template)
expr.reify_in_context: Attempting to reify:
(stream.prefixes (fun _ : Datatypes.nat => 10%positive) 2)
expr.reify_in_context: Case: preprocess
expr.reify_preprocess: Attempting to preprocess:
(stream.prefixes (fun _ : Datatypes.nat => 10%positive) 2)
expr.reify_preprocess_extra: Attempting to preprocess:
(stream.prefixes (fun _ : Datatypes.nat => 10%positive) 2)
expr.reify_in_context: Attempting to reify (post-preprocessing):
(stream.prefixes (fun _ : Datatypes.nat => 10%positive) 2)
expr.reify_in_context: Case: App (check LetIn)
expr.reify_in_context: Case: ident_preprocess
expr.reify_ident_preprocess: Attempting to (ident) preprocess:
(stream.prefixes (fun _ : Datatypes.nat => 10%positive) 2)
expr.reify_in_context: Attempting to reify ident (post-preprocessing):
(stream.prefixes (fun _ : Datatypes.nat => 10%positive) 2)
reify_ident_via_list_opt: Attempting to reify:
(stream.prefixes (fun _ : Datatypes.nat => 10%positive) 2)
reify_ident_via_list_opt: Case: literal?
reify_ident_via_list_opt: Case: interp?
reify_ident_via_list_opt: Case: head eagerly?
reify_ident_via_list_opt: Attempting to lookup ident:
@stream.prefixes
reify_ident_via_list_opt: Failure in looking up:
@stream.prefixes (in (Basic.GallinaAndReifiedIdentList.cons
(@ident_Literal) (@ident.literal)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_comment) (@PreExtra.ident.comment)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_comment_no_keep)
(@PreExtra.ident.comment_no_keep)
(Basic.GallinaAndReifiedIdentList.cons
ident_value_barrier Z.value_barrier
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_succ Nat.succ
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_pred Nat.pred
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_max Nat.max
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_mul Nat.mul
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_add Nat.add
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_sub Nat.sub
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_eqb Nat.eqb
(Basic.GallinaAndReifiedIdentList.cons
(@ident_nil)
(@nil)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_cons)
(@cons)
(Basic.GallinaAndReifiedIdentList.cons
ident_tt tt
(Basic.GallinaAndReifiedIdentList.cons
(@ident_pair)
(@pair)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_fst)
(@fst)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_snd)
(@snd)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_prod_rect)
(@Prod.prod_rect_nodep)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_bool_rect)
Bool.Thunked.bool_rect
(Basic.GallinaAndReifiedIdentList.cons
(@ident_bool_rect_nodep)
(@Bool.bool_rect_nodep)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_nat_rect)
NatUtil.Thunked.nat_rect
(Basic.GallinaAndReifiedIdentList.cons
(@ident_eager_nat_rect)
(ident.eagerly
NatUtil.Thunked.nat_rect)
(Basic.GallinaAndReifiedIdentList.cons
(...)
(...)
(...)))))))))))))))))))))))))
reify_ident_via_list_opt: Failure in reifying:
(stream.prefixes (fun _ : Datatypes.nat => 10%positive) 2)
expr.reify_in_context: Case: not ident
expr.reify_in_context: Case: App
expr.reify_in_context: Case: App (non-template)
expr.reify_in_context: Attempting to reify:
2%nat
expr.reify_in_context: Case: preprocess
expr.reify_preprocess: Attempting to preprocess:
2%nat
expr.reify_preprocess_extra: Attempting to preprocess:
2%nat
expr.reify_in_context: Attempting to reify (post-preprocessing):
2%nat
expr.reify_in_context: Case: App (check LetIn)
expr.reify_in_context: Case: ident_preprocess
expr.reify_ident_preprocess: Attempting to (ident) preprocess:
2%nat
expr.reify_in_context: Attempting to reify ident (post-preprocessing):
2%nat
reify_ident_via_list_opt: Attempting to reify:
2%nat
reify_ident_via_list_opt: Case: literal?
reify_base_via_list: Attempting to reify:
Datatypes.nat
reify_ident_via_list_opt: Case: literal✓
reify_ident_via_list_opt: Success in reifying: 2%nat as (##2%nat)%ident
expr.reify_in_context: Success in reifying: 2%nat as (###2%nat)%expr
expr.reify_in_context: Attempting to reify:
(stream.prefixes (fun _ : Datatypes.nat => 10%positive))
expr.reify_in_context: Case: preprocess
expr.reify_preprocess: Attempting to preprocess:
(stream.prefixes (fun _ : Datatypes.nat => 10%positive))
expr.reify_preprocess_extra: Attempting to preprocess:
(stream.prefixes (fun _ : Datatypes.nat => 10%positive))
expr.reify_in_context: Attempting to reify (post-preprocessing):
(stream.prefixes (fun _ : Datatypes.nat => 10%positive))
expr.reify_in_context: Case: App (check LetIn)
expr.reify_in_context: Case: ident_preprocess
expr.reify_ident_preprocess: Attempting to (ident) preprocess:
(stream.prefixes (fun _ : Datatypes.nat => 10%positive))
expr.reify_in_context: Attempting to reify ident (post-preprocessing):
(stream.prefixes (fun _ : Datatypes.nat => 10%positive))
reify_ident_via_list_opt: Attempting to reify:
(stream.prefixes (fun _ : Datatypes.nat => 10%positive))
reify_ident_via_list_opt: Case: literal?
reify_ident_via_list_opt: Case: interp?
reify_ident_via_list_opt: Case: head eagerly?
reify_ident_via_list_opt: Attempting to lookup ident:
@stream.prefixes
reify_ident_via_list_opt: Failure in looking up:
@stream.prefixes (in (Basic.GallinaAndReifiedIdentList.cons
(@ident_Literal) (@ident.literal)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_comment) (@PreExtra.ident.comment)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_comment_no_keep)
(@PreExtra.ident.comment_no_keep)
(Basic.GallinaAndReifiedIdentList.cons
ident_value_barrier Z.value_barrier
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_succ Nat.succ
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_pred Nat.pred
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_max Nat.max
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_mul Nat.mul
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_add Nat.add
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_sub Nat.sub
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_eqb Nat.eqb
(Basic.GallinaAndReifiedIdentList.cons
(@ident_nil)
(@nil)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_cons)
(@cons)
(Basic.GallinaAndReifiedIdentList.cons
ident_tt tt
(Basic.GallinaAndReifiedIdentList.cons
(@ident_pair)
(@pair)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_fst)
(@fst)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_snd)
(@snd)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_prod_rect)
(@Prod.prod_rect_nodep)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_bool_rect)
Bool.Thunked.bool_rect
(Basic.GallinaAndReifiedIdentList.cons
(@ident_bool_rect_nodep)
(@Bool.bool_rect_nodep)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_nat_rect)
NatUtil.Thunked.nat_rect
(Basic.GallinaAndReifiedIdentList.cons
(@ident_eager_nat_rect)
(ident.eagerly
NatUtil.Thunked.nat_rect)
(Basic.GallinaAndReifiedIdentList.cons
(...)
(...)
(...)))))))))))))))))))))))))
reify_ident_via_list_opt: Failure in reifying:
(stream.prefixes (fun _ : Datatypes.nat => 10%positive))
expr.reify_in_context: Case: not ident
expr.reify_in_context: Case: App
expr.reify_in_context: Case: App (non-template)
expr.reify_in_context: Attempting to reify:
(fun _ : Datatypes.nat => 10%positive)
expr.reify_in_context: Case: preprocess
expr.reify_preprocess: Attempting to preprocess:
(fun _ : Datatypes.nat => 10%positive)
expr.reify_preprocess_extra: Attempting to preprocess:
(fun _ : Datatypes.nat => 10%positive)
expr.reify_in_context: Attempting to reify (post-preprocessing):
(fun _ : Datatypes.nat => 10%positive)
expr.reify_in_context: Case: Lambda
expr.reify_in_context: Case: λ body
type.reify: Attempting to reify:
Datatypes.nat
base.reify: Attempting to reify:
Datatypes.nat
reify_base_via_list: Attempting to reify:
Datatypes.nat
base.reify: Success in reifying: Datatypes.nat as (base.type.type_base nat)
type.reify: Success in reifying: Datatypes.nat as
(type.base (base.type.type_base nat))
expr.reify_in_context: Attempting to reify:
10%positive
expr.reify_in_context: Case: preprocess
expr.reify_preprocess: Attempting to preprocess:
10%positive
expr.reify_preprocess_extra: Attempting to preprocess:
10%positive
expr.reify_in_context: Attempting to reify (post-preprocessing):
10%positive
expr.reify_in_context: Case: App (check LetIn)
expr.reify_in_context: Case: ident_preprocess
expr.reify_ident_preprocess: Attempting to (ident) preprocess:
10%positive
expr.reify_in_context: Attempting to reify ident (post-preprocessing):
10%positive
reify_ident_via_list_opt: Attempting to reify:
10%positive
reify_ident_via_list_opt: Case: literal?
reify_base_via_list: Attempting to reify:
BinNums.positive
reify_ident_via_list_opt: Case: literal✓
reify_ident_via_list_opt: Success in reifying: 10%positive as
(##10%positive)%ident
expr.reify_in_context: Success in reifying: 10%positive as
(###10%positive)%expr
expr.reify_in_context: Success in reifying: (fun _ : Datatypes.nat =>
10%positive) as
(λ _ : var (type.base (base.type.type_base nat)),
###10%positive)%expr
expr.reify_in_context: Attempting to reify:
stream.prefixes
expr.reify_in_context: Case: preprocess
expr.reify_preprocess: Attempting to preprocess:
stream.prefixes
expr.reify_preprocess_extra: Attempting to preprocess:
stream.prefixes
expr.reify_in_context: Attempting to reify (post-preprocessing):
stream.prefixes
expr.reify_in_context: Case: App (check LetIn)
expr.reify_in_context: Case: ident_preprocess
expr.reify_ident_preprocess: Attempting to (ident) preprocess:
stream.prefixes
expr.reify_in_context: Attempting to reify ident (post-preprocessing):
stream.prefixes
reify_ident_via_list_opt: Attempting to reify:
stream.prefixes
reify_ident_via_list_opt: Case: literal?
reify_ident_via_list_opt: Case: interp?
reify_ident_via_list_opt: Case: head eagerly?
reify_ident_via_list_opt: Attempting to lookup ident:
@stream.prefixes
reify_ident_via_list_opt: Failure in looking up:
@stream.prefixes (in (Basic.GallinaAndReifiedIdentList.cons
(@ident_Literal) (@ident.literal)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_comment) (@PreExtra.ident.comment)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_comment_no_keep)
(@PreExtra.ident.comment_no_keep)
(Basic.GallinaAndReifiedIdentList.cons
ident_value_barrier Z.value_barrier
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_succ Nat.succ
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_pred Nat.pred
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_max Nat.max
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_mul Nat.mul
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_add Nat.add
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_sub Nat.sub
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_eqb Nat.eqb
(Basic.GallinaAndReifiedIdentList.cons
(@ident_nil)
(@nil)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_cons)
(@cons)
(Basic.GallinaAndReifiedIdentList.cons
ident_tt tt
(Basic.GallinaAndReifiedIdentList.cons
(@ident_pair)
(@pair)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_fst)
(@fst)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_snd)
(@snd)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_prod_rect)
(@Prod.prod_rect_nodep)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_bool_rect)
Bool.Thunked.bool_rect
(Basic.GallinaAndReifiedIdentList.cons
(@ident_bool_rect_nodep)
(@Bool.bool_rect_nodep)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_nat_rect)
NatUtil.Thunked.nat_rect
(Basic.GallinaAndReifiedIdentList.cons
(@ident_eager_nat_rect)
(ident.eagerly
NatUtil.Thunked.nat_rect)
(Basic.GallinaAndReifiedIdentList.cons
(...)
(...)
(...)))))))))))))))))))))))))
reify_ident_via_list_opt: Failure in reifying:
stream.prefixes
expr.reify_in_context: Case: not ident
expr.reify_in_context: Case: App
expr.reify_in_context: Case: accumulate template
expr.reify_in_context: Attempting to reify:
@stream.prefixes
expr.reify_in_context: Case: preprocess
expr.reify_preprocess: Attempting to preprocess:
@stream.prefixes
expr.reify_preprocess_extra: Attempting to preprocess:
@stream.prefixes
expr.reify_in_context: Attempting to reify (post-preprocessing):
@stream.prefixes
expr.reify_in_context: Case: ident_preprocess
expr.reify_ident_preprocess: Attempting to (ident) preprocess:
@stream.prefixes
expr.reify_in_context: Attempting to reify ident (post-preprocessing):
@stream.prefixes
reify_ident_via_list_opt: Attempting to reify:
@stream.prefixes
reify_ident_via_list_opt: Case: literal?
reify_ident_via_list_opt: Case: interp?
reify_ident_via_list_opt: Case: head eagerly?
reify_ident_via_list_opt: Attempting to lookup ident:
@stream.prefixes
reify_ident_via_list_opt: Failure in looking up:
@stream.prefixes (in (Basic.GallinaAndReifiedIdentList.cons
(@ident_Literal) (@ident.literal)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_comment) (@PreExtra.ident.comment)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_comment_no_keep)
(@PreExtra.ident.comment_no_keep)
(Basic.GallinaAndReifiedIdentList.cons
ident_value_barrier Z.value_barrier
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_succ Nat.succ
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_pred Nat.pred
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_max Nat.max
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_mul Nat.mul
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_add Nat.add
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_sub Nat.sub
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_eqb Nat.eqb
(Basic.GallinaAndReifiedIdentList.cons
(@ident_nil)
(@nil)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_cons)
(@cons)
(Basic.GallinaAndReifiedIdentList.cons
ident_tt tt
(Basic.GallinaAndReifiedIdentList.cons
(@ident_pair)
(@pair)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_fst)
(@fst)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_snd)
(@snd)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_prod_rect)
(@Prod.prod_rect_nodep)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_bool_rect)
Bool.Thunked.bool_rect
(Basic.GallinaAndReifiedIdentList.cons
(@ident_bool_rect_nodep)
(@Bool.bool_rect_nodep)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_nat_rect)
NatUtil.Thunked.nat_rect
(Basic.GallinaAndReifiedIdentList.cons
(@ident_eager_nat_rect)
(ident.eagerly
NatUtil.Thunked.nat_rect)
(Basic.GallinaAndReifiedIdentList.cons
(...)
(...)
(...)))))))))))))))))))))))))
reify_ident_via_list_opt: Failure in reifying:
@stream.prefixes
expr.reify_in_context: Case: not ident
expr.reify_in_context: Case: pre-plug template_ctx
expr.plug_template_ctx: Attempting to plug template ctx into @stream.prefixes [BinNums.positive]
expr.reify_in_context: Case: reify_ident_opt
reify_ident_via_list_opt: Attempting to reify:
stream.prefixes
reify_ident_via_list_opt: Case: literal?
reify_ident_via_list_opt: Case: interp?
reify_ident_via_list_opt: Case: head eagerly?
reify_ident_via_list_opt: Attempting to lookup ident:
@stream.prefixes
reify_ident_via_list_opt: Failure in looking up:
@stream.prefixes (in (Basic.GallinaAndReifiedIdentList.cons
(@ident_Literal) (@ident.literal)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_comment) (@PreExtra.ident.comment)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_comment_no_keep)
(@PreExtra.ident.comment_no_keep)
(Basic.GallinaAndReifiedIdentList.cons
ident_value_barrier Z.value_barrier
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_succ Nat.succ
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_pred Nat.pred
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_max Nat.max
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_mul Nat.mul
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_add Nat.add
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_sub Nat.sub
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_eqb Nat.eqb
(Basic.GallinaAndReifiedIdentList.cons
(@ident_nil)
(@nil)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_cons)
(@cons)
(Basic.GallinaAndReifiedIdentList.cons
ident_tt tt
(Basic.GallinaAndReifiedIdentList.cons
(@ident_pair)
(@pair)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_fst)
(@fst)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_snd)
(@snd)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_prod_rect)
(@Prod.prod_rect_nodep)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_bool_rect)
Bool.Thunked.bool_rect
(Basic.GallinaAndReifiedIdentList.cons
(@ident_bool_rect_nodep)
(@Bool.bool_rect_nodep)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_nat_rect)
NatUtil.Thunked.nat_rect
(Basic.GallinaAndReifiedIdentList.cons
(@ident_eager_nat_rect)
(ident.eagerly
NatUtil.Thunked.nat_rect)
(Basic.GallinaAndReifiedIdentList.cons
(...)
(...)
(...)))))))))))))))))))))))))
reify_ident_via_list_opt: Failure in reifying:
stream.prefixes
expr.reify_in_context: Case: App Constant (unfold)
expr.reify_in_context: Attempting to reify:
((fun (T : Type) (xs : stream T) (i : Datatypes.nat) => stream.firstn i xs)
BinNums.positive)
expr.reify_in_context: Case: preprocess
expr.reify_preprocess: Attempting to preprocess:
((fun (T : Type) (xs : stream T) (i : Datatypes.nat) => stream.firstn i xs)
BinNums.positive)
expr.reify_preprocess_extra: Attempting to preprocess:
((fun (T : Type) (xs : stream T) (i : Datatypes.nat) => stream.firstn i xs)
BinNums.positive)
expr.reify_in_context: Attempting to reify (post-preprocessing):
((fun (T : Type) (xs : stream T) (i : Datatypes.nat) => stream.firstn i xs)
BinNums.positive)
expr.reify_in_context: Case: App (check LetIn)
expr.reify_in_context: Case: ident_preprocess
expr.reify_ident_preprocess: Attempting to (ident) preprocess:
((fun (T : Type) (xs : stream T) (i : Datatypes.nat) => stream.firstn i xs)
BinNums.positive)
expr.reify_in_context: Attempting to reify ident (post-preprocessing):
((fun (T : Type) (xs : stream T) (i : Datatypes.nat) => stream.firstn i xs)
BinNums.positive)
reify_ident_via_list_opt: Attempting to reify:
((fun (T : Type) (xs : stream T) (i : Datatypes.nat) => stream.firstn i xs)
BinNums.positive)
reify_ident_via_list_opt: Case: literal?
reify_ident_via_list_opt: Case: interp?
reify_ident_via_list_opt: Case: head eagerly?
reify_ident_via_list_opt: Attempting to lookup ident:
(fun (T : Type) (xs : stream T) (i : Datatypes.nat) => stream.firstn i xs)
reify_ident_via_list_opt: Failure in looking up:
(fun (T : Type) (xs : stream T) (i : Datatypes.nat) => stream.firstn i xs) (in
(Basic.GallinaAndReifiedIdentList.cons (@ident_Literal)
(@ident.literal)
(Basic.GallinaAndReifiedIdentList.cons (@ident_comment)
(@PreExtra.ident.comment)
(Basic.GallinaAndReifiedIdentList.cons (@ident_comment_no_keep)
(@PreExtra.ident.comment_no_keep)
(Basic.GallinaAndReifiedIdentList.cons ident_value_barrier
Z.value_barrier
(Basic.GallinaAndReifiedIdentList.cons ident_Nat_succ Nat.succ
(Basic.GallinaAndReifiedIdentList.cons ident_Nat_pred Nat.pred
(Basic.GallinaAndReifiedIdentList.cons ident_Nat_max
Nat.max
(Basic.GallinaAndReifiedIdentList.cons ident_Nat_mul
Nat.mul
(Basic.GallinaAndReifiedIdentList.cons ident_Nat_add
Nat.add
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_sub Nat.sub
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_eqb Nat.eqb
(Basic.GallinaAndReifiedIdentList.cons
(@ident_nil) (@nil)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_cons)
(@cons)
(Basic.GallinaAndReifiedIdentList.cons
ident_tt tt
(Basic.GallinaAndReifiedIdentList.cons
(@ident_pair)
(@pair)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_fst)
(@fst)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_snd)
(@snd)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_prod_rect)
(@Prod.prod_rect_nodep)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_bool_rect)
Bool.Thunked.bool_rect
(Basic.GallinaAndReifiedIdentList.cons
(@ident_bool_rect_nodep)
(@Bool.bool_rect_nodep)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_nat_rect)
NatUtil.Thunked.nat_rect
(Basic.GallinaAndReifiedIdentList.cons
(@ident_eager_nat_rect)
(ident.eagerly
NatUtil.Thunked.nat_rect)
(Basic.GallinaAndReifiedIdentList.cons
(...)
(...)
(...)))))))))))))))))))))))))
reify_ident_via_list_opt: Failure in reifying:
((fun (T : Type) (xs : stream T) (i : Datatypes.nat) => stream.firstn i xs)
BinNums.positive)
expr.reify_in_context: Case: not ident
expr.reify_in_context: Case: App
expr.reify_in_context: Case: accumulate template
expr.reify_in_context: Attempting to reify:
(fun (T : Type) (xs : stream T) (i : Datatypes.nat) => stream.firstn i xs)
expr.reify_in_context: Case: preprocess
expr.reify_preprocess: Attempting to preprocess:
(fun (T : Type) (xs : stream T) (i : Datatypes.nat) => stream.firstn i xs)
expr.reify_preprocess_extra: Attempting to preprocess:
(fun (T : Type) (xs : stream T) (i : Datatypes.nat) => stream.firstn i xs)
expr.reify_in_context: Attempting to reify (post-preprocessing):
(fun (T : Type) (xs : stream T) (i : Datatypes.nat) => stream.firstn i xs)
expr.reify_in_context: Case: Lambda
expr.reify_in_context: Case: substnl template arg
expr.reify_in_context: Attempting to reify:
(fun (xs : stream BinNums.positive) (i : Datatypes.nat) => stream.firstn i xs)
expr.reify_in_context: Case: preprocess
expr.reify_preprocess: Attempting to preprocess:
(fun (xs : stream BinNums.positive) (i : Datatypes.nat) => stream.firstn i xs)
expr.reify_preprocess_extra: Attempting to preprocess:
(fun (xs : stream BinNums.positive) (i : Datatypes.nat) => stream.firstn i xs)
expr.reify_in_context: Attempting to reify (post-preprocessing):
(fun (xs : stream BinNums.positive) (i : Datatypes.nat) => stream.firstn i xs)
expr.reify_in_context: Case: Lambda
expr.reify_in_context: Case: λ body
type.reify: Attempting to reify:
(stream BinNums.positive)
type.reify: Attempting to reify:
Datatypes.nat
base.reify: Attempting to reify:
Datatypes.nat
reify_base_via_list: Attempting to reify:
Datatypes.nat
base.reify: Success in reifying: Datatypes.nat as (base.type.type_base nat)
type.reify: Success in reifying: Datatypes.nat as
(type.base (base.type.type_base nat))
type.reify: Attempting to reify:
BinNums.positive
base.reify: Attempting to reify:
BinNums.positive
reify_base_via_list: Attempting to reify:
BinNums.positive
base.reify: Success in reifying: BinNums.positive as
(base.type.type_base positive)
type.reify: Success in reifying: BinNums.positive as
(type.base (base.type.type_base positive))
type.reify: Success in reifying: (stream BinNums.positive) as
(type.base (base.type.type_base nat) ->
type.base (base.type.type_base positive))%etype
expr.reify_in_context: Attempting to reify:
(fun i : Datatypes.nat => stream.firstn i _UNBOUND_REL_2)
expr.reify_in_context: Case: preprocess
expr.reify_preprocess: Attempting to preprocess:
(fun i : Datatypes.nat => stream.firstn i _UNBOUND_REL_2)
expr.reify_preprocess_extra: Attempting to preprocess:
(fun i : Datatypes.nat => stream.firstn i _UNBOUND_REL_2)
expr.reify_in_context: Attempting to reify (post-preprocessing):
(fun i : Datatypes.nat => stream.firstn i _UNBOUND_REL_2)
expr.reify_in_context: Case: Lambda
expr.reify_in_context: Case: λ body
type.reify: Attempting to reify:
Datatypes.nat
base.reify: Attempting to reify:
Datatypes.nat
reify_base_via_list: Attempting to reify:
Datatypes.nat
base.reify: Success in reifying: Datatypes.nat as (base.type.type_base nat)
type.reify: Success in reifying: Datatypes.nat as
(type.base (base.type.type_base nat))
expr.reify_in_context: Attempting to reify:
(stream.firstn _UNBOUND_REL_1 _UNBOUND_REL_2)
expr.reify_in_context: Case: preprocess
expr.reify_preprocess: Attempting to preprocess:
(stream.firstn _UNBOUND_REL_1 _UNBOUND_REL_2)
expr.reify_preprocess_extra: Attempting to preprocess:
(stream.firstn _UNBOUND_REL_1 _UNBOUND_REL_2)
expr.reify_in_context: Attempting to reify (post-preprocessing):
(stream.firstn _UNBOUND_REL_1 _UNBOUND_REL_2)
expr.reify_in_context: Case: App (check LetIn)
expr.reify_in_context: Case: ident_preprocess
expr.reify_ident_preprocess: Attempting to (ident) preprocess:
(stream.firstn _UNBOUND_REL_1 _UNBOUND_REL_2)
expr.reify_in_context: Attempting to reify ident (post-preprocessing):
(stream.firstn _UNBOUND_REL_1 _UNBOUND_REL_2)
reify_ident_via_list_opt: Attempting to reify:
(stream.firstn _UNBOUND_REL_1 _UNBOUND_REL_2)
reify_ident_via_list_opt: Case: literal?
reify_ident_via_list_opt: Case: interp?
reify_ident_via_list_opt: Case: head eagerly?
reify_ident_via_list_opt: Attempting to lookup ident:
@stream.firstn
reify_ident_via_list_opt: Failure in looking up:
@stream.firstn (in (Basic.GallinaAndReifiedIdentList.cons
(@ident_Literal) (@ident.literal)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_comment) (@PreExtra.ident.comment)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_comment_no_keep)
(@PreExtra.ident.comment_no_keep)
(Basic.GallinaAndReifiedIdentList.cons
ident_value_barrier Z.value_barrier
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_succ Nat.succ
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_pred Nat.pred
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_max Nat.max
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_mul Nat.mul
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_add Nat.add
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_sub Nat.sub
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_eqb Nat.eqb
(Basic.GallinaAndReifiedIdentList.cons
(@ident_nil)
(@nil)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_cons)
(@cons)
(Basic.GallinaAndReifiedIdentList.cons
ident_tt tt
(Basic.GallinaAndReifiedIdentList.cons
(@ident_pair)
(@pair)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_fst)
(@fst)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_snd)
(@snd)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_prod_rect)
(@Prod.prod_rect_nodep)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_bool_rect)
Bool.Thunked.bool_rect
(Basic.GallinaAndReifiedIdentList.cons
(@ident_bool_rect_nodep)
(@Bool.bool_rect_nodep)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_nat_rect)
NatUtil.Thunked.nat_rect
(Basic.GallinaAndReifiedIdentList.cons
(@ident_eager_nat_rect)
(ident.eagerly
NatUtil.Thunked.nat_rect)
(Basic.GallinaAndReifiedIdentList.cons
(...)
(...)
(...)))))))))))))))))))))))))
reify_ident_via_list_opt: Failure in reifying:
(stream.firstn _UNBOUND_REL_1 _UNBOUND_REL_2)
expr.reify_in_context: Case: not ident
expr.reify_in_context: Case: App
Warning: expr.reify_in_context: failure to typecheck _UNBOUND_REL_2:
Init.Internal
(err:(Unbound reference: In environment
machine_wordsize := 64 : BinNums.Z
possible_values := if widen_carry
then [0; machine_wordsize]
else [0; 1; machine_wordsize] :
list BinNums.Z
n := 4%nat : Datatypes.nat
boundsn := repeat (Some r[0 ~> 2 ^ machine_wordsize - 1]%zrange) n
: list
(ZRange.type.option.interp
(API.Compilers.Coercions.base (type_base Z)))
var : type (Language.Compilers.base.type base) -> Type
The reference 2 is free.))
expr.reify_in_context: Case: App (non-template)
expr.reify_in_context: Attempting to reify:
_UNBOUND_REL_2
expr.reify_in_context: Case: Rel
Warning: with_term_in_context: Bad asymptotics
expr.reify_in_context: Success in reifying: _UNBOUND_REL_2 as
($$_UNBOUND_REL_2)%expr
expr.reify_in_context: Attempting to reify:
(stream.firstn _UNBOUND_REL_1)
expr.reify_in_context: Case: preprocess
expr.reify_preprocess: Attempting to preprocess:
(stream.firstn _UNBOUND_REL_1)
expr.reify_preprocess_extra: Attempting to preprocess:
(stream.firstn _UNBOUND_REL_1)
expr.reify_in_context: Attempting to reify (post-preprocessing):
(stream.firstn _UNBOUND_REL_1)
expr.reify_in_context: Case: App (check LetIn)
expr.reify_in_context: Case: ident_preprocess
expr.reify_ident_preprocess: Attempting to (ident) preprocess:
(stream.firstn _UNBOUND_REL_1)
expr.reify_in_context: Attempting to reify ident (post-preprocessing):
(stream.firstn _UNBOUND_REL_1)
reify_ident_via_list_opt: Attempting to reify:
(stream.firstn _UNBOUND_REL_1)
reify_ident_via_list_opt: Case: literal?
reify_ident_via_list_opt: Case: interp?
reify_ident_via_list_opt: Case: head eagerly?
reify_ident_via_list_opt: Attempting to lookup ident:
@stream.firstn
reify_ident_via_list_opt: Failure in looking up:
@stream.firstn (in (Basic.GallinaAndReifiedIdentList.cons
(@ident_Literal) (@ident.literal)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_comment) (@PreExtra.ident.comment)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_comment_no_keep)
(@PreExtra.ident.comment_no_keep)
(Basic.GallinaAndReifiedIdentList.cons
ident_value_barrier Z.value_barrier
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_succ Nat.succ
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_pred Nat.pred
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_max Nat.max
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_mul Nat.mul
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_add Nat.add
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_sub Nat.sub
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_eqb Nat.eqb
(Basic.GallinaAndReifiedIdentList.cons
(@ident_nil)
(@nil)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_cons)
(@cons)
(Basic.GallinaAndReifiedIdentList.cons
ident_tt tt
(Basic.GallinaAndReifiedIdentList.cons
(@ident_pair)
(@pair)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_fst)
(@fst)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_snd)
(@snd)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_prod_rect)
(@Prod.prod_rect_nodep)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_bool_rect)
Bool.Thunked.bool_rect
(Basic.GallinaAndReifiedIdentList.cons
(@ident_bool_rect_nodep)
(@Bool.bool_rect_nodep)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_nat_rect)
NatUtil.Thunked.nat_rect
(Basic.GallinaAndReifiedIdentList.cons
(@ident_eager_nat_rect)
(ident.eagerly
NatUtil.Thunked.nat_rect)
(Basic.GallinaAndReifiedIdentList.cons
(...)
(...)
(...)))))))))))))))))))))))))
reify_ident_via_list_opt: Failure in reifying:
(stream.firstn _UNBOUND_REL_1)
expr.reify_in_context: Case: not ident
expr.reify_in_context: Case: App
Warning: expr.reify_in_context: failure to typecheck _UNBOUND_REL_1:
Init.Internal
(err:(Unbound reference: In environment
machine_wordsize := 64 : BinNums.Z
possible_values := if widen_carry
then [0; machine_wordsize]
else [0; 1; machine_wordsize] :
list BinNums.Z
n := 4%nat : Datatypes.nat
boundsn := repeat (Some r[0 ~> 2 ^ machine_wordsize - 1]%zrange) n
: list
(ZRange.type.option.interp
(API.Compilers.Coercions.base (type_base Z)))
var : type (Language.Compilers.base.type base) -> Type
The reference 1 is free.))
expr.reify_in_context: Case: App (non-template)
expr.reify_in_context: Attempting to reify:
_UNBOUND_REL_1
expr.reify_in_context: Case: Rel
Warning: with_term_in_context: Bad asymptotics
expr.reify_in_context: Success in reifying: _UNBOUND_REL_1 as
($$_UNBOUND_REL_1)%expr
expr.reify_in_context: Attempting to reify:
stream.firstn
expr.reify_in_context: Case: preprocess
expr.reify_preprocess: Attempting to preprocess:
stream.firstn
expr.reify_preprocess_extra: Attempting to preprocess:
stream.firstn
expr.reify_in_context: Attempting to reify (post-preprocessing):
stream.firstn
expr.reify_in_context: Case: App (check LetIn)
expr.reify_in_context: Case: ident_preprocess
expr.reify_ident_preprocess: Attempting to (ident) preprocess:
stream.firstn
expr.reify_in_context: Attempting to reify ident (post-preprocessing):
stream.firstn
reify_ident_via_list_opt: Attempting to reify:
stream.firstn
reify_ident_via_list_opt: Case: literal?
reify_ident_via_list_opt: Case: interp?
reify_ident_via_list_opt: Case: head eagerly?
reify_ident_via_list_opt: Attempting to lookup ident:
@stream.firstn
reify_ident_via_list_opt: Failure in looking up:
@stream.firstn (in (Basic.GallinaAndReifiedIdentList.cons
(@ident_Literal) (@ident.literal)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_comment) (@PreExtra.ident.comment)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_comment_no_keep)
(@PreExtra.ident.comment_no_keep)
(Basic.GallinaAndReifiedIdentList.cons
ident_value_barrier Z.value_barrier
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_succ Nat.succ
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_pred Nat.pred
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_max Nat.max
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_mul Nat.mul
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_add Nat.add
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_sub Nat.sub
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_eqb Nat.eqb
(Basic.GallinaAndReifiedIdentList.cons
(@ident_nil)
(@nil)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_cons)
(@cons)
(Basic.GallinaAndReifiedIdentList.cons
ident_tt tt
(Basic.GallinaAndReifiedIdentList.cons
(@ident_pair)
(@pair)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_fst)
(@fst)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_snd)
(@snd)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_prod_rect)
(@Prod.prod_rect_nodep)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_bool_rect)
Bool.Thunked.bool_rect
(Basic.GallinaAndReifiedIdentList.cons
(@ident_bool_rect_nodep)
(@Bool.bool_rect_nodep)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_nat_rect)
NatUtil.Thunked.nat_rect
(Basic.GallinaAndReifiedIdentList.cons
(@ident_eager_nat_rect)
(ident.eagerly
NatUtil.Thunked.nat_rect)
(Basic.GallinaAndReifiedIdentList.cons
(...)
(...)
(...)))))))))))))))))))))))))
reify_ident_via_list_opt: Failure in reifying:
stream.firstn
expr.reify_in_context: Case: not ident
expr.reify_in_context: Case: App
expr.reify_in_context: Case: accumulate template
expr.reify_in_context: Attempting to reify:
@stream.firstn
expr.reify_in_context: Case: preprocess
expr.reify_preprocess: Attempting to preprocess:
@stream.firstn
expr.reify_preprocess_extra: Attempting to preprocess:
@stream.firstn
expr.reify_in_context: Attempting to reify (post-preprocessing):
@stream.firstn
expr.reify_in_context: Case: ident_preprocess
expr.reify_ident_preprocess: Attempting to (ident) preprocess:
@stream.firstn
expr.reify_in_context: Attempting to reify ident (post-preprocessing):
@stream.firstn
reify_ident_via_list_opt: Attempting to reify:
@stream.firstn
reify_ident_via_list_opt: Case: literal?
reify_ident_via_list_opt: Case: interp?
reify_ident_via_list_opt: Case: head eagerly?
reify_ident_via_list_opt: Attempting to lookup ident:
@stream.firstn
reify_ident_via_list_opt: Failure in looking up:
@stream.firstn (in (Basic.GallinaAndReifiedIdentList.cons
(@ident_Literal) (@ident.literal)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_comment) (@PreExtra.ident.comment)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_comment_no_keep)
(@PreExtra.ident.comment_no_keep)
(Basic.GallinaAndReifiedIdentList.cons
ident_value_barrier Z.value_barrier
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_succ Nat.succ
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_pred Nat.pred
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_max Nat.max
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_mul Nat.mul
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_add Nat.add
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_sub Nat.sub
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_eqb Nat.eqb
(Basic.GallinaAndReifiedIdentList.cons
(@ident_nil)
(@nil)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_cons)
(@cons)
(Basic.GallinaAndReifiedIdentList.cons
ident_tt tt
(Basic.GallinaAndReifiedIdentList.cons
(@ident_pair)
(@pair)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_fst)
(@fst)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_snd)
(@snd)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_prod_rect)
(@Prod.prod_rect_nodep)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_bool_rect)
Bool.Thunked.bool_rect
(Basic.GallinaAndReifiedIdentList.cons
(@ident_bool_rect_nodep)
(@Bool.bool_rect_nodep)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_nat_rect)
NatUtil.Thunked.nat_rect
(Basic.GallinaAndReifiedIdentList.cons
(@ident_eager_nat_rect)
(ident.eagerly
NatUtil.Thunked.nat_rect)
(Basic.GallinaAndReifiedIdentList.cons
(...)
(...)
(...)))))))))))))))))))))))))
reify_ident_via_list_opt: Failure in reifying:
@stream.firstn
expr.reify_in_context: Case: not ident
expr.reify_in_context: Case: pre-plug template_ctx
expr.plug_template_ctx: Attempting to plug template ctx into @stream.firstn [BinNums.positive, BinNums.positive]
expr.reify_in_context: Case: reify_ident_opt
reify_ident_via_list_opt: Attempting to reify:
(fun _ : Datatypes.nat => stream.firstn _UNBOUND_REL_2)
reify_ident_via_list_opt: Case: literal?
reify_ident_via_list_opt: Case: interp?
reify_ident_via_list_opt: Case: head eagerly?
reify_ident_via_list_opt: Attempting to lookup ident:
(fun _ : Datatypes.nat => stream.firstn _UNBOUND_REL_2)
reify_ident_via_list_opt: Failure in looking up:
(fun _ : Datatypes.nat => stream.firstn _UNBOUND_REL_2) (in
(Basic.GallinaAndReifiedIdentList.cons (@ident_Literal)
(@ident.literal)
(Basic.GallinaAndReifiedIdentList.cons (@ident_comment)
(@PreExtra.ident.comment)
(Basic.GallinaAndReifiedIdentList.cons (@ident_comment_no_keep)
(@PreExtra.ident.comment_no_keep)
(Basic.GallinaAndReifiedIdentList.cons ident_value_barrier
Z.value_barrier
(Basic.GallinaAndReifiedIdentList.cons ident_Nat_succ Nat.succ
(Basic.GallinaAndReifiedIdentList.cons ident_Nat_pred Nat.pred
(Basic.GallinaAndReifiedIdentList.cons ident_Nat_max
Nat.max
(Basic.GallinaAndReifiedIdentList.cons ident_Nat_mul
Nat.mul
(Basic.GallinaAndReifiedIdentList.cons ident_Nat_add
Nat.add
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_sub Nat.sub
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_eqb Nat.eqb
(Basic.GallinaAndReifiedIdentList.cons
(@ident_nil) (@nil)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_cons)
(@cons)
(Basic.GallinaAndReifiedIdentList.cons
ident_tt tt
(Basic.GallinaAndReifiedIdentList.cons
(@ident_pair)
(@pair)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_fst)
(@fst)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_snd)
(@snd)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_prod_rect)
(@Prod.prod_rect_nodep)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_bool_rect)
Bool.Thunked.bool_rect
(Basic.GallinaAndReifiedIdentList.cons
(@ident_bool_rect_nodep)
(@Bool.bool_rect_nodep)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_nat_rect)
NatUtil.Thunked.nat_rect
(Basic.GallinaAndReifiedIdentList.cons
(@ident_eager_nat_rect)
(ident.eagerly
NatUtil.Thunked.nat_rect)
(Basic.GallinaAndReifiedIdentList.cons
(...)
(...)
(...)))))))))))))))))))))))))
reify_ident_via_list_opt: Failure in reifying:
(fun _ : Datatypes.nat => stream.firstn _UNBOUND_REL_2)
expr.reify_in_context: Case: App Constant (unfold)
expr.reify_in_context: Attempting to reify:
(fun _ : Datatypes.nat =>
(fun (T : Type) (n0 : Datatypes.nat) (xs : stream T) => map xs (seq 0 n0))
BinNums.positive _UNBOUND_REL_2)
expr.reify_in_context: Case: preprocess
expr.reify_preprocess: Attempting to preprocess:
(fun _ : Datatypes.nat =>
(fun (T : Type) (n0 : Datatypes.nat) (xs : stream T) => map xs (seq 0 n0))
BinNums.positive _UNBOUND_REL_2)
expr.reify_preprocess_extra: Attempting to preprocess:
(fun _ : Datatypes.nat =>
(fun (T : Type) (n0 : Datatypes.nat) (xs : stream T) => map xs (seq 0 n0))
BinNums.positive _UNBOUND_REL_2)
expr.reify_in_context: Attempting to reify (post-preprocessing):
(fun _ : Datatypes.nat =>
(fun (T : Type) (n0 : Datatypes.nat) (xs : stream T) => map xs (seq 0 n0))
BinNums.positive _UNBOUND_REL_2)
expr.reify_in_context: Case: Lambda
expr.reify_in_context: Case: λ body
type.reify: Attempting to reify:
Datatypes.nat
base.reify: Attempting to reify:
Datatypes.nat
reify_base_via_list: Attempting to reify:
Datatypes.nat
base.reify: Success in reifying: Datatypes.nat as (base.type.type_base nat)
type.reify: Success in reifying: Datatypes.nat as
(type.base (base.type.type_base nat))
expr.reify_in_context: Attempting to reify:
((fun (T : Type) (n : Datatypes.nat) (xs : stream T) => map xs (seq 0 n))
BinNums.positive _UNBOUND_REL_2)
expr.reify_in_context: Case: preprocess
expr.reify_preprocess: Attempting to preprocess:
((fun (T : Type) (n : Datatypes.nat) (xs : stream T) => map xs (seq 0 n))
BinNums.positive _UNBOUND_REL_2)
expr.reify_preprocess_extra: Attempting to preprocess:
((fun (T : Type) (n : Datatypes.nat) (xs : stream T) => map xs (seq 0 n))
BinNums.positive _UNBOUND_REL_2)
expr.reify_in_context: Attempting to reify (post-preprocessing):
((fun (T : Type) (n : Datatypes.nat) (xs : stream T) => map xs (seq 0 n))
BinNums.positive _UNBOUND_REL_2)
expr.reify_in_context: Case: App (check LetIn)
expr.reify_in_context: Case: ident_preprocess
expr.reify_ident_preprocess: Attempting to (ident) preprocess:
((fun (T : Type) (n : Datatypes.nat) (xs : stream T) => map xs (seq 0 n))
BinNums.positive _UNBOUND_REL_2)
expr.reify_in_context: Attempting to reify ident (post-preprocessing):
((fun (T : Type) (n : Datatypes.nat) (xs : stream T) => map xs (seq 0 n))
BinNums.positive _UNBOUND_REL_2)
reify_ident_via_list_opt: Attempting to reify:
((fun (T : Type) (n : Datatypes.nat) (xs : stream T) => map xs (seq 0 n))
BinNums.positive _UNBOUND_REL_2)
reify_ident_via_list_opt: Case: literal?
reify_ident_via_list_opt: Case: interp?
reify_ident_via_list_opt: Case: head eagerly?
reify_ident_via_list_opt: Attempting to lookup ident:
(fun (T : Type) (n : Datatypes.nat) (xs : stream T) => map xs (seq 0 n))
reify_ident_via_list_opt: Failure in looking up:
(fun (T : Type) (n : Datatypes.nat) (xs : stream T) => map xs (seq 0 n)) (in
(Basic.GallinaAndReifiedIdentList.cons (@ident_Literal)
(@ident.literal)
(Basic.GallinaAndReifiedIdentList.cons (@ident_comment)
(@PreExtra.ident.comment)
(Basic.GallinaAndReifiedIdentList.cons (@ident_comment_no_keep)
(@PreExtra.ident.comment_no_keep)
(Basic.GallinaAndReifiedIdentList.cons ident_value_barrier
Z.value_barrier
(Basic.GallinaAndReifiedIdentList.cons ident_Nat_succ Nat.succ
(Basic.GallinaAndReifiedIdentList.cons ident_Nat_pred Nat.pred
(Basic.GallinaAndReifiedIdentList.cons ident_Nat_max
Nat.max
(Basic.GallinaAndReifiedIdentList.cons ident_Nat_mul
Nat.mul
(Basic.GallinaAndReifiedIdentList.cons ident_Nat_add
Nat.add
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_sub Nat.sub
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_eqb Nat.eqb
(Basic.GallinaAndReifiedIdentList.cons
(@ident_nil) (@nil)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_cons)
(@cons)
(Basic.GallinaAndReifiedIdentList.cons
ident_tt tt
(Basic.GallinaAndReifiedIdentList.cons
(@ident_pair)
(@pair)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_fst)
(@fst)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_snd)
(@snd)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_prod_rect)
(@Prod.prod_rect_nodep)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_bool_rect)
Bool.Thunked.bool_rect
(Basic.GallinaAndReifiedIdentList.cons
(@ident_bool_rect_nodep)
(@Bool.bool_rect_nodep)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_nat_rect)
NatUtil.Thunked.nat_rect
(Basic.GallinaAndReifiedIdentList.cons
(@ident_eager_nat_rect)
(ident.eagerly
NatUtil.Thunked.nat_rect)
(Basic.GallinaAndReifiedIdentList.cons
(...)
(...)
(...)))))))))))))))))))))))))
reify_ident_via_list_opt: Failure in reifying:
((fun (T : Type) (n : Datatypes.nat) (xs : stream T) => map xs (seq 0 n))
BinNums.positive _UNBOUND_REL_2)
expr.reify_in_context: Case: not ident
expr.reify_in_context: Case: App
Warning: expr.reify_in_context: failure to typecheck _UNBOUND_REL_2:
Init.Internal
(err:(Unbound reference: In environment
machine_wordsize := 64 : BinNums.Z
possible_values := if widen_carry
then [0; machine_wordsize]
else [0; 1; machine_wordsize] :
list BinNums.Z
n := 4%nat : Datatypes.nat
boundsn := repeat (Some r[0 ~> 2 ^ machine_wordsize - 1]%zrange) n
: list
(ZRange.type.option.interp
(API.Compilers.Coercions.base (type_base Z)))
var : type (Language.Compilers.base.type base) -> Type
The reference 2 is free.))
expr.reify_in_context: Case: App (non-template)
expr.reify_in_context: Attempting to reify:
_UNBOUND_REL_2
expr.reify_in_context: Case: Rel
Warning: with_term_in_context: Bad asymptotics
expr.reify_in_context: Success in reifying: _UNBOUND_REL_2 as
($$_UNBOUND_REL_2)%expr
expr.reify_in_context: Attempting to reify:
((fun (T : Type) (n : Datatypes.nat) (xs : stream T) => map xs (seq 0 n))
BinNums.positive)
expr.reify_in_context: Case: preprocess
expr.reify_preprocess: Attempting to preprocess:
((fun (T : Type) (n : Datatypes.nat) (xs : stream T) => map xs (seq 0 n))
BinNums.positive)
expr.reify_preprocess_extra: Attempting to preprocess:
((fun (T : Type) (n : Datatypes.nat) (xs : stream T) => map xs (seq 0 n))
BinNums.positive)
expr.reify_in_context: Attempting to reify (post-preprocessing):
((fun (T : Type) (n : Datatypes.nat) (xs : stream T) => map xs (seq 0 n))
BinNums.positive)
expr.reify_in_context: Case: App (check LetIn)
expr.reify_in_context: Case: ident_preprocess
expr.reify_ident_preprocess: Attempting to (ident) preprocess:
((fun (T : Type) (n : Datatypes.nat) (xs : stream T) => map xs (seq 0 n))
BinNums.positive)
expr.reify_in_context: Attempting to reify ident (post-preprocessing):
((fun (T : Type) (n : Datatypes.nat) (xs : stream T) => map xs (seq 0 n))
BinNums.positive)
reify_ident_via_list_opt: Attempting to reify:
((fun (T : Type) (n : Datatypes.nat) (xs : stream T) => map xs (seq 0 n))
BinNums.positive)
reify_ident_via_list_opt: Case: literal?
reify_ident_via_list_opt: Case: interp?
reify_ident_via_list_opt: Case: head eagerly?
reify_ident_via_list_opt: Attempting to lookup ident:
(fun (T : Type) (n : Datatypes.nat) (xs : stream T) => map xs (seq 0 n))
reify_ident_via_list_opt: Failure in looking up:
(fun (T : Type) (n : Datatypes.nat) (xs : stream T) => map xs (seq 0 n)) (in
(Basic.GallinaAndReifiedIdentList.cons (@ident_Literal)
(@ident.literal)
(Basic.GallinaAndReifiedIdentList.cons (@ident_comment)
(@PreExtra.ident.comment)
(Basic.GallinaAndReifiedIdentList.cons (@ident_comment_no_keep)
(@PreExtra.ident.comment_no_keep)
(Basic.GallinaAndReifiedIdentList.cons ident_value_barrier
Z.value_barrier
(Basic.GallinaAndReifiedIdentList.cons ident_Nat_succ Nat.succ
(Basic.GallinaAndReifiedIdentList.cons ident_Nat_pred Nat.pred
(Basic.GallinaAndReifiedIdentList.cons ident_Nat_max
Nat.max
(Basic.GallinaAndReifiedIdentList.cons ident_Nat_mul
Nat.mul
(Basic.GallinaAndReifiedIdentList.cons ident_Nat_add
Nat.add
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_sub Nat.sub
(Basic.GallinaAndReifiedIdentList.cons
ident_Nat_eqb Nat.eqb
(Basic.GallinaAndReifiedIdentList.cons
(@ident_nil) (@nil)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_cons)
(@cons)
(Basic.GallinaAndReifiedIdentList.cons
ident_tt tt
(Basic.GallinaAndReifiedIdentList.cons
(@ident_pair)
(@pair)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_fst)
(@fst)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_snd)
(@snd)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_prod_rect)
(@Prod.prod_rect_nodep)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_bool_rect)
Bool.Thunked.bool_rect
(Basic.GallinaAndReifiedIdentList.cons
(@ident_bool_rect_nodep)
(@Bool.bool_rect_nodep)
(Basic.GallinaAndReifiedIdentList.cons
(@ident_nat_rect)
NatUtil.Thunked.nat_rect
(Basic.GallinaAndReifiedIdentList.cons
(@ident_eager_nat_rect)
(ident.eagerly
NatUtil.Thunked.nat_rect)
(Basic.GallinaAndReifiedIdentList.cons
(...)
(...)
(...)))))))))))))))))))))))))
reify_ident_via_list_opt: Failure in reifying:
((fun (T : Type) (n : Datatypes.nat) (xs : stream T) => map xs (seq 0 n))
BinNums.positive)
expr.reify_in_context: Case: not ident
expr.reify_in_context: Case: App
expr.reify_in_context: Case: accumulate template
expr.reify_in_context: Attempting to reify:
(fun (T : Type) (n : Datatypes.nat) (xs : stream T) => map xs (seq 0 n))
expr.reify_in_context: Case: preprocess
expr.reify_preprocess: Attempting to preprocess:
(fun (T : Type) (n : Datatypes.nat) (xs : stream T) => map xs (seq 0 n))
expr.reify_preprocess_extra: Attempting to preprocess:
(fun (T : Type) (n : Datatypes.nat) (xs : stream T) => map xs (seq 0 n))
expr.reify_in_context: Attempting to reify (post-preprocessing):
(fun (T : Type) (n : Datatypes.nat) (xs : stream T) => map xs (seq 0 n))
expr.reify_in_context: Case: Lambda
expr.reify_in_context: Case: substnl template arg
expr.reify_in_context: Attempting to reify:
(fun (n : Datatypes.nat) (xs : stream BinNums.positive) => map xs (seq 0 n))
expr.reify_in_context: Case: preprocess
expr.reify_preprocess: Attempting to preprocess:
(fun (n : Datatypes.nat) (xs : stream BinNums.positive) => map xs (seq 0 n))
expr.reify_preprocess_extra: Attempting to preprocess:
(fun (n : Datatypes.nat) (xs : stream BinNums.positive) => map xs (seq 0 n))
expr.reify_in_context: Attempting to reify (post-preprocessing):
(fun (n : Datatypes.nat) (xs : stream BinNums.positive) => map xs (seq 0 n))
expr.reify_in_context: Case: Lambda
expr.reify_in_context: Case: λ body
type.reify: Attempting to reify:
Datatypes.nat
base.reify: Attempting to reify:
Datatypes.nat
reify_base_via_list: Attempting to reify:
Datatypes.nat
base.reify: Success in reifying: Datatypes.nat as (base.type.type_base nat)
type.reify: Success in reifying: Datatypes.nat as
(type.base (base.type.type_base nat))
expr.reify_in_context: Attempting to reify:
(fun xs : stream BinNums.positive => map xs (seq 0 _UNBOUND_REL_2))
expr.reify_in_context: Case: preprocess
expr.reify_preprocess: Attempting to preprocess:
(fun xs : stream BinNums.positive => map xs (seq 0 _UNBOUND_REL_2))
expr.reify_preprocess_extra: Attempting to preprocess:
(fun xs : stream BinNums.positive => map xs (seq 0 _UNBOUND_REL_2))
expr.reify_in_context: Attempting to reify (post-preprocessing):
(fun xs : stream BinNums.positive => map xs (seq 0 _UNBOUND_REL_2))
expr.reify_in_context: Case: Lambda
expr.reify_in_context: Case: λ body
type.reify: Attempting to reify:
(stream BinNums.positive)
type.reify: Attempting to reify:
Datatypes.nat
base.reify: Attempting to reify:
Datatypes.nat
reify_base_via_list: Attempting to reify:
Datatypes.nat
base.reify: Success in reifying: Datatypes.nat as (base.type.type_base nat)
type.reify: Success in reifying: Datatypes.nat as
(type.base (base.type.type_base nat))
type.reify: Attempting to reify:
BinNums.positive
base.reify: Attempting to reify:
BinNums.positive
reify_base_via_list: Attempting to reify:
BinNums.positive
base.reify: Success in reifying: BinNums.positive as
(base.type.type_base positive)
type.reify: Success in reifying: BinNums.positive as
(type.base (base.type.type_base positive))
type.reify: Success in reifying: (stream BinNums.positive) as
(type.base (base.type.type_base nat) ->
type.base (base.type.type_base positive))%etype
expr.reify_in_context: Attempting to reify:
(map _UNBOUND_REL_1 (seq 0 _UNBOUND_REL_2))
expr.reify_in_context: Case: preprocess
expr.reify_preprocess: Attempting to preprocess:
(map _UNBOUND_REL_1 (seq 0 _UNBOUND_REL_2))
expr.reify_preprocess_extra: Attempting to preprocess:
(map _UNBOUND_REL_1 (seq 0 _UNBOUND_REL_2))
expr.reify_in_context: Attempting to reify (post-preprocessing):
(map _UNBOUND_REL_1 (seq 0 _UNBOUND_REL_2))
expr.reify_in_context: Case: App (check LetIn)
expr.reify_in_context: Case: ident_preprocess
expr.reify_ident_preprocess: Attempting to (ident) preprocess:
(map _UNBOUND_REL_1 (seq 0 _UNBOUND_REL_2))
expr.reify_in_context: Attempting to reify ident (post-preprocessing):
(map _UNBOUND_REL_1 (seq 0 _UNBOUND_REL_2))
reify_ident_via_list_opt: Attempting to reify:
(map _UNBOUND_REL_1 (seq 0 _UNBOUND_REL_2))
reify_ident_via_list_opt: Case: literal?
reify_ident_via_list_opt: Case: interp?
reify_ident_via_list_opt: Case: head eagerly?
reify_ident_via_list_opt: Attempting to lookup ident:
map
reify_ident_via_list_opt: Success in looking up ident: map as @ident_List_map
base.reify: Attempting to reify:
Datatypes.nat
reify_base_via_list: Attempting to reify:
Datatypes.nat
base.reify: Success in reifying: Datatypes.nat as (base.type.type_base nat)
base.reify: Attempting to reify:
BinNums.positive
reify_base_via_list: Attempting to reify:
BinNums.positive
base.reify: Success in reifying: BinNums.positive as
(base.type.type_base positive)
reify_ident_via_list_opt: Failure in reifying:
(map _UNBOUND_REL_1 (seq 0 _UNBOUND_REL_2))
expr.reify_in_context: Case: not ident
expr.reify_in_context: Case: App
Warning: expr.reify_in_context: failure to typecheck
(seq 0 _UNBOUND_REL_2): Init.Internal
(err:(Unbound reference: In environment
machine_wordsize := 64 : BinNums.Z
possible_values := if widen_carry
then [0; machine_wordsize]
else [0; 1; machine_wordsize]
: list BinNums.Z
n := 4%nat : Datatypes.nat
boundsn := repeat
(Some
r[0 ~> 2 ^ machine_wordsize - 1]%zrange)
n
: list
(ZRange.type.option.interp
(API.Compilers.Coercions.base (type_base Z)))
var : type (Language.Compilers.base.type base) ->
Type
The reference 2 is free.))
expr.reify_in_context: Case: App (non-template)
expr.reify_in_context: Attempting to reify:
(seq 0 _UNBOUND_REL_2)
expr.reify_in_context: Case: preprocess
expr.reify_preprocess: Attempting to preprocess:
(seq 0 _UNBOUND_REL_2)
expr.reify_preprocess_extra: Attempting to preprocess:
(seq 0 _UNBOUND_REL_2)
expr.reify_in_context: Attempting to reify (post-preprocessing):
(seq 0 _UNBOUND_REL_2)
expr.reify_in_context: Case: App (check LetIn)
expr.reify_in_context: Case: ident_preprocess
expr.reify_ident_preprocess: Attempting to (ident) preprocess:
(seq 0 _UNBOUND_REL_2)
expr.reify_in_context: Attempting to reify ident (post-preprocessing):
(seq 0 _UNBOUND_REL_2)
reify_ident_via_list_opt: Attempting to reify:
(seq 0 _UNBOUND_REL_2)
reify_ident_via_list_opt: Case: literal?
reify_ident_via_list_opt: Case: interp?
reify_ident_via_list_opt: Case: head eagerly?
reify_ident_via_list_opt: Attempting to lookup ident:
seq
reify_ident_via_list_opt: Success in looking up ident: seq as ident_List_seq
reify_ident_via_list_opt: Failure in reifying:
(seq 0 _UNBOUND_REL_2)
expr.reify_in_context: Case: not ident
expr.reify_in_context: Case: App
Warning: expr.reify_in_context: failure to typecheck _UNBOUND_REL_2:
Init.Internal
(err:(Unbound reference: In environment
machine_wordsize := 64 : BinNums.Z
possible_values := if widen_carry
then [0; machine_wordsize]
else [0; 1; machine_wordsize] :
list BinNums.Z
n := 4%nat : Datatypes.nat
boundsn := repeat (Some r[0 ~> 2 ^ machine_wordsize - 1]%zrange) n
: list
(ZRange.type.option.interp
(API.Compilers.Coercions.base (type_base Z)))
var : type (Language.Compilers.base.type base) -> Type
The reference 2 is free.))
expr.reify_in_context: Case: App (non-template)
expr.reify_in_context: Attempting to reify:
_UNBOUND_REL_2
expr.reify_in_context: Case: Rel
Warning: with_term_in_context: Bad asymptotics
expr.reify_in_context: Success in reifying: _UNBOUND_REL_2 as
($$_UNBOUND_REL_2)%expr
expr.reify_in_context: Attempting to reify:
(seq 0)
expr.reify_in_context: Case: preprocess
expr.reify_preprocess: Attempting to preprocess:
(seq 0)
expr.reify_preprocess_extra: Attempting to preprocess:
(seq 0)
expr.reify_in_context: Attempting to reify (post-preprocessing):
(seq 0)
expr.reify_in_context: Case: App (check LetIn)
expr.reify_in_context: Case: ident_preprocess
expr.reify_ident_preprocess: Attempting to (ident) preprocess:
(seq 0)
expr.reify_in_context: Attempting to reify ident (post-preprocessing):
(seq 0)
reify_ident_via_list_opt: Attempting to reify:
(seq 0)
reify_ident_via_list_opt: Case: literal?
reify_ident_via_list_opt: Case: interp?
reify_ident_via_list_opt: Case: head eagerly?
reify_ident_via_list_opt: Attempting to lookup ident:
seq
reify_ident_via_list_opt: Success in looking up ident: seq as ident_List_seq
reify_ident_via_list_opt: Failure in reifying:
(seq 0)
expr.reify_in_context: Case: not ident
expr.reify_in_context: Case: App
expr.reify_in_context: Case: App (non-template)
expr.reify_in_context: Attempting to reify:
0%nat
expr.reify_in_context: Case: preprocess
expr.reify_preprocess: Attempting to preprocess:
0%nat
expr.reify_preprocess_extra: Attempting to preprocess:
0%nat
expr.reify_in_context: Attempting to reify (post-preprocessing):
0%nat
expr.reify_in_context: Case: ident_preprocess
expr.reify_ident_preprocess: Attempting to (ident) preprocess:
0%nat
expr.reify_in_context: Attempting to reify ident (post-preprocessing):
0%nat
reify_ident_via_list_opt: Attempting to reify:
0%nat
reify_ident_via_list_opt: Case: literal?
reify_base_via_list: Attempting to reify:
Datatypes.nat
reify_ident_via_list_opt: Case: literal✓
reify_ident_via_list_opt: Success in reifying: 0%nat as (##0%nat)%ident
expr.reify_in_context: Success in reifying: 0%nat as (###0%nat)%expr
expr.reify_in_context: Attempting to reify:
seq
expr.reify_in_context: Case: preprocess
expr.reify_preprocess: Attempting to preprocess:
seq
expr.reify_preprocess_extra: Attempting to preprocess:
seq
expr.reify_in_context: Attempting to reify (post-preprocessing):
seq
expr.reify_in_context: Case: ident_preprocess
expr.reify_ident_preprocess: Attempting to (ident) preprocess:
seq
expr.reify_in_context: Attempting to reify ident (post-preprocessing):
seq
reify_ident_via_list_opt: Attempting to reify:
seq
reify_ident_via_list_opt: Case: literal?
reify_ident_via_list_opt: Case: interp?
reify_ident_via_list_opt: Case: head eagerly?
reify_ident_via_list_opt: Attempting to lookup ident:
seq
reify_ident_via_list_opt: Success in looking up ident: seq as ident_List_seq
reify_ident_via_list_opt: Success in reifying: seq as ident_List_seq
expr.reify_in_context: Success in reifying: seq as (#ident_List_seq)%expr
expr.reify_in_context: Success in reifying: (seq 0) as
(#ident_List_seq @ ###0%nat)%expr
Warning: with_term_in_context: Bad asymptotics
expr.reify_in_context: Success in reifying: (seq 0 _UNBOUND_REL_2) as
(#ident_List_seq @ ###0%nat @ $$_UNBOUND_REL_2)%expr
expr.reify_in_context: Attempting to reify:
(map _UNBOUND_REL_1)
expr.reify_in_context: Case: preprocess
expr.reify_preprocess: Attempting to preprocess:
(map _UNBOUND_REL_1)
expr.reify_preprocess_extra: Attempting to preprocess:
(map _UNBOUND_REL_1)
expr.reify_in_context: Attempting to reify (post-preprocessing):
(map _UNBOUND_REL_1)
expr.reify_in_context: Case: App (check LetIn)
expr.reify_in_context: Case: ident_preprocess
expr.reify_ident_preprocess: Attempting to (ident) preprocess:
(map _UNBOUND_REL_1)
expr.reify_in_context: Attempting to reify ident (post-preprocessing):
(map _UNBOUND_REL_1)
reify_ident_via_list_opt: Attempting to reify:
(map _UNBOUND_REL_1)
reify_ident_via_list_opt: Case: literal?
reify_ident_via_list_opt: Case: interp?
reify_ident_via_list_opt: Case: head eagerly?
reify_ident_via_list_opt: Attempting to lookup ident:
map
reify_ident_via_list_opt: Success in looking up ident: map as @ident_List_map
base.reify: Attempting to reify:
Datatypes.nat
reify_base_via_list: Attempting to reify:
Datatypes.nat
base.reify: Success in reifying: Datatypes.nat as (base.type.type_base nat)
base.reify: Attempting to reify:
BinNums.positive
reify_base_via_list: Attempting to reify:
BinNums.positive
base.reify: Success in reifying: BinNums.positive as
(base.type.type_base positive)
reify_ident_via_list_opt: Failure in reifying:
(map _UNBOUND_REL_1)
expr.reify_in_context: Case: not ident
expr.reify_in_context: Case: App
Warning: expr.reify_in_context: failure to typecheck _UNBOUND_REL_1:
Init.Internal
(err:(Unbound reference: In environment
machine_wordsize := 64 : BinNums.Z
possible_values := if widen_carry
then [0; machine_wordsize]
else [0; 1; machine_wordsize] :
list BinNums.Z
n := 4%nat : Datatypes.nat
boundsn := repeat (Some r[0 ~> 2 ^ machine_wordsize - 1]%zrange) n
: list
(ZRange.type.option.interp
(API.Compilers.Coercions.base (type_base Z)))
var : type (Language.Compilers.base.type base) -> Type
The reference 1 is free.))
expr.reify_in_context: Case: App (non-template)
expr.reify_in_context: Attempting to reify:
_UNBOUND_REL_1
expr.reify_in_context: Case: Rel
Warning: with_term_in_context: Bad asymptotics
expr.reify_in_context: Success in reifying: _UNBOUND_REL_1 as
($$_UNBOUND_REL_1)%expr
expr.reify_in_context: Attempting to reify:
(map (A:=Datatypes.nat) (B:=BinNums.positive))
expr.reify_in_context: Case: preprocess
expr.reify_preprocess: Attempting to preprocess:
(map (A:=Datatypes.nat) (B:=BinNums.positive))
expr.reify_preprocess_extra: Attempting to preprocess:
(map (A:=Datatypes.nat) (B:=BinNums.positive))
expr.reify_in_context: Attempting to reify (post-preprocessing):
(map (A:=Datatypes.nat) (B:=BinNums.positive))
expr.reify_in_context: Case: App (check LetIn)
expr.reify_in_context: Case: ident_preprocess
expr.reify_ident_preprocess: Attempting to (ident) preprocess:
(map (A:=Datatypes.nat) (B:=BinNums.positive))
expr.reify_in_context: Attempting to reify ident (post-preprocessing):
(map (A:=Datatypes.nat) (B:=BinNums.positive))
reify_ident_via_list_opt: Attempting to reify:
(map (A:=Datatypes.nat) (B:=BinNums.positive))
reify_ident_via_list_opt: Case: literal?
reify_ident_via_list_opt: Case: interp?
reify_ident_via_list_opt: Case: head eagerly?
reify_ident_via_list_opt: Attempting to lookup ident:
map
reify_ident_via_list_opt: Success in looking up ident: map as @ident_List_map
base.reify: Attempting to reify:
Datatypes.nat
reify_base_via_list: Attempting to reify:
Datatypes.nat
base.reify: Success in reifying: Datatypes.nat as (base.type.type_base nat)
base.reify: Attempting to reify:
BinNums.positive
reify_base_via_list: Attempting to reify:
BinNums.positive
base.reify: Success in reifying: BinNums.positive as
(base.type.type_base positive)
reify_ident_via_list_opt: Success in reifying: (map (A:=Datatypes.nat)
(B:=BinNums.positive)) as ident_List_map
expr.reify_in_context: Success in reifying: (map (A:=Datatypes.nat)
(B:=BinNums.positive)) as
(#ident_List_map)%expr
Warning: with_term_in_context: Bad asymptotics
expr.reify_in_context: Success in reifying: (map _UNBOUND_REL_1) as
(#ident_List_map @ $$_UNBOUND_REL_1)%expr
Warning: with_term_in_context: Bad asymptotics
expr.reify_in_context: Success in reifying: (map _UNBOUND_REL_1
(seq 0 _UNBOUND_REL_2)) as
(#ident_List_map @ $$_UNBOUND_REL_1 @
(#ident_List_seq @ ###0%nat @ $$_UNBOUND_REL_2))%expr
Warning: with_term_in_context: Bad asymptotics
expr.reify_in_context: Success in reifying: (fun xs : stream BinNums.positive
=> map xs (seq 0 _UNBOUND_REL_2)) as
(λ xs : var
(type.base (base.type.type_base nat) ->
type.base (base.type.type_base positive))%etype,
#ident_List_map @ $$xs @ (#ident_List_seq @ ###0%nat @ $$_UNBOUND_REL_2))%expr
expr.reify_in_context: Success in reifying: (fun (n : Datatypes.nat)
(xs : stream BinNums.positive)
=> map xs (seq 0 n)) as
(λ (n : var (type.base (base.type.type_base nat)))
(xs : var
(type.base (base.type.type_base nat) ->
type.base (base.type.type_base positive))%etype),
#ident_List_map @ $$xs @ (#ident_List_seq @ ###0%nat @ $$n))%expr
expr.reify_in_context: Success in reifying: (fun (T : Type)
(n : Datatypes.nat)
(xs : stream T) =>
map xs (seq 0 n)) as
(λ (n : var (type.base (base.type.type_base nat)))
(xs : var
(type.base (base.type.type_base nat) ->
type.base (base.type.type_base positive))%etype),
#ident_List_map @ $$xs @ (#ident_List_seq @ ###0%nat @ $$n))%expr
expr.reify_in_context: Success in reifying: ((fun
(T : Type)
(n : Datatypes.nat)
(xs : stream T) =>
map xs (seq 0 n))
BinNums.positive) as
(λ (n : var (type.base (base.type.type_base nat)))
(xs : var
(type.base (base.type.type_base nat) ->
type.base (base.type.type_base positive))%etype),
#ident_List_map @ $$xs @ (#ident_List_seq @ ###0%nat @ $$n))%expr
Warning: with_term_in_context: Bad asymptotics
expr.reify_in_context: Success in reifying: ((fun
(T : Type)
(n : Datatypes.nat)
(xs : stream T) =>
map xs (seq 0 n))
BinNums.positive
_UNBOUND_REL_2) as
((λ (n : var (type.base (base.type.type_base nat)))
(xs : var
(type.base (base.type.type_base nat) ->
type.base (base.type.type_base positive))%etype),
#ident_List_map @ $$xs @ (#ident_List_seq @ ###0%nat @ $$n)) @
$$_UNBOUND_REL_2)%expr
Warning: with_term_in_context: Bad asymptotics
expr.reify_in_context: Success in reifying: (fun _ : Datatypes.nat =>
(fun
(T : Type)
(n0 : Datatypes.nat)
(xs : stream T) =>
map xs (seq 0 n0))
BinNums.positive
_UNBOUND_REL_2) as
(λ _ : var (type.base (base.type.type_base nat)),
(λ (n0 : var (type.base (base.type.type_base nat)))
(xs : var
(type.base (base.type.type_base nat) ->
type.base (base.type.type_base positive))%etype),
#ident_List_map @ $$xs @ (#ident_List_seq @ ###0%nat @ $$n0)) @
$$_UNBOUND_REL_2)%expr
expr.reify_in_context: Success in reifying: @stream.firstn as reified_firstn
expr.reify_in_context: Success in reifying: stream.firstn as reified_firstn
Warning: with_term_in_context: Bad asymptotics
Tactic call reify_in_context_opt ran for 0.284 secs (0.28u,0.003s) (failure)
The command has indeed failed with message:
Unbound reference: In environment
machine_wordsize := 64 : BinNums.Z
possible_values := if widen_carry
then [0; machine_wordsize]
else [0; 1; machine_wordsize] :
list BinNums.Z
n := 4%nat : Datatypes.nat
boundsn := repeat (Some r[0 ~> 2 ^ machine_wordsize - 1]%zrange) n
: list
(ZRange.type.option.interp (API.Compilers.Coercions.base (type_base Z)))
var : type (Language.Compilers.base.type base) -> Type
DUMMY : var (type.base (base.type.type_base nat))
DUMMY0 : var
(type.base (base.type.type_base nat) ->
type.base (base.type.type_base positive))%etype
n0 : var (type.base (base.type.type_base nat))
The reference 2 is free.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Urgh, this looks like it's probably a bug in my Ltac2 code for dealing with open terms. :-( It's really unfortunate that Ltac2 doesn't have support for manually managing the context (cf coq/coq#18364), and needs piles of hacks to deal with it.
src/Arithmetic/SolinasReduction.v
Outdated
list_rect_fbb_b_b_b_b_b | ||
(fun bound acc h c o => ([], (h, c, o))) | ||
(fun x_y _ rec bound acc h c o => | ||
let '(x, y) := x_y in (* workaround for Reify *) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@JasonGross reification fails if the match is before the other lambdas, but having to use this workaround is not a problem.
src/Arithmetic/SolinasReduction.v
Outdated
Z.div_mod_to_equations; nia. | ||
Qed. | ||
|
||
Definition add_mul_limb' bound acc x ys : list Z * Z := |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jadephilipoom Perhaps you have some insight for factoring definitions here? There are three axes of flexibility I am aware of:
- whether add_mul_limb static-asserts that its input is small enough to produce a nonnegative word as the highest output (add_mul_limb' vs add_mul_small)
- whether add_mul_limb propagates carries through a larger accumulator than the multiplication input (add_mul_limb' vs add_mul)
- whether the output is a canonical list and separately the last word, or one long list not proven canonical (add_mul_limb_)
src/Arithmetic/SolinasReduction.v
Outdated
Qed. | ||
|
||
Definition reduce bound k (c : Z) (a : list Z) (b : list Z) : list Z := | ||
(* NOTE: it would be nice if we had an "if" that threw error messages during specialization *) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@JasonGross it'd be neat if we could generate synthesis error messages from this kind of assertions failing deep inside the call stack
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Say more? (Also, I think it'd be easier to reconstruct things if the code highlight included a couple lines below this as well)
src/Arithmetic/SolinasReduction.v
Outdated
Qed. | ||
|
||
|
||
Definition divmodw bound (xs : list Z) (s : Z) : Z * list Z := |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@andres-erbsen rename to truncate
, match return-value endianness of fiat-crypto instead of coq
@@ -45,6 +45,11 @@ Local Notation "x <= y <= z" := (andb (is_tighter_than_bool (ZRange.normalize x) | |||
Local Notation litZZ x := (ident.literal (fst x), ident.literal (snd x)) (only parsing). | |||
Local Notation n r := (ZRange.normalize r) (only parsing). | |||
|
|||
Local Notation "typeof! x" := ltac:(let t := type of x in exact t) (at level 10, only parsing). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there any reason we are not already generating rewrite rules from lemmas?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not especially. It seems a bit easier to understand the rewrite rule databases when the types are all explicitly in a list, rather than just listing the lemma names? (There's no technical reason, though.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, maybe this notation should go in src/Utils/Notations.v
?
@@ -288,18 +301,35 @@ Definition arith_rewrite_rulesT (max_const_val : Z) : list (bool * Prop) | |||
; (forall s y x, | |||
Z.add_get_carry_full s (- y) x | |||
= dlet vb := Z.sub_get_borrow_full s x y in (fst vb, - snd vb)) | |||
; (forall s y x k, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jadephilipoom perhaps we should standardize on Z.add_get_carry_full
and get rid of other variants?
@@ -395,6 +425,16 @@ Definition arith_with_casts_rewrite_rulesT (adc_no_carry_to_add : bool) : list ( | |||
y ∈ ry -> y = Z.ones (Z.succ (Z.log2 y)) | |||
-> cstZ rv (cstZ ry ('y) &' cstZ rx x) = cstZ rx x) | |||
]%Z%zrange | |||
; mymap |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@andres-erbsen turn mul_split with negated intput into negated mul_split first
Compute | ||
Show.show (* [show] for pretty-printing of the AST without needing lots of imports *) | ||
(Pipeline.BoundsPipelineToString | ||
"fiat_" "fe4_mul_no_reduce" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@JasonGross Synthesis fails due to redundant if
s here, like 0 <= (uint64_t)x
.
= "Error Computed bounds (Some [Some [0x0 ~> 0xffffffffffffffff], Some [0x0 ~> 0xffffffffffffffff], Some [0x0 ~> 0xffffffffffffffff], Some [0x0 ~> 0xffffffffffffffff], Some [0x0 ~> 0xffffffffffffffff], None, None, None]) are not tight enough (expected bounds not looser than (Some [Some [0x0 ~> 0xffffffffffffffff], Some [0x0 ~> 0xffffffffffffffff], Some [0x0 ~> 0xffffffffffffffff], Some [0x0 ~> 0xffffffffffffffff], Some [0x0 ~> 0xffffffffffffffff], Some [0x0 ~> 0xffffffffffffffff], Some [0x0 ~> 0xffffffffffffffff], Some [0x0 ~> 0xffffffffffffffff]])).
Found None where Some was expected
(Unprintible syntax tree used in bounds analysis)
Stringification failed on the syntax tree:
(λ x1 x2,
let x3 := Z.mul_split(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)(x1[0]), (uint64_t)(x2[0]))) (* : uint64_t, [0x0 ~> 0xfffffffffffffffe] *) in
let x4 := Z.mul_split(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)(x1[0]), (uint64_t)(x2[1]))) (* : uint64_t, [0x0 ~> 0xfffffffffffffffe] *) in
let x5 := Z.add_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), (([0x0 ~> 0xfffffffffffffffe])x3₂, (uint64_t)x4₁)) (* : uint64_t, uint1_t *) in
let x6 := Z.mul_split(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)(x1[0]), (uint64_t)(x2[2]))) (* : uint64_t, [0x0 ~> 0xfffffffffffffffe] *) in
let x7 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x5₂, (([0x0 ~> 0xfffffffffffffffe])x4₂, (uint64_t)x6₁))) (* : uint64_t, uint1_t *) in
let x8 := Z.mul_split(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)(x1[0]), (uint64_t)(x2[3]))) (* : uint64_t, [0x0 ~> 0xfffffffffffffffe] *) in
let x9 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x7₂, (([0x0 ~> 0xfffffffffffffffe])x6₂, (uint64_t)x8₁))) (* : uint64_t, uint1_t *) in
let x10 := Z.mul_split(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)(x1[1]), (uint64_t)(x2[0]))) (* : uint64_t, [0x0 ~> 0xfffffffffffffffe] *) in
let x11 := Z.add_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)x5₁, (uint64_t)x10₁)) (* : uint64_t, uint1_t *) in
let x12 := Z.mul_split(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)(x1[1]), (uint64_t)(x2[1]))) (* : uint64_t, [0x0 ~> 0xfffffffffffffffe] *) in
let x13 := Z.add_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)x7₁, ([0x0 ~> 0xfffffffffffffffe])x10₂)) (* : uint64_t, uint1_t *) in
let x14 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x11₂, ((uint64_t)x13₁, (uint64_t)x12₁))) (* : uint64_t, uint1_t *) in
let x15 := Z.mul_split(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)(x1[1]), (uint64_t)(x2[2]))) (* : uint64_t, [0x0 ~> 0xfffffffffffffffe] *) in
let x16 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x13₂, ((uint64_t)x9₁, ([0x0 ~> 0xfffffffffffffffe])x12₂))) (* : uint64_t, uint1_t *) in
let x17 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x14₂, ((uint64_t)x16₁, (uint64_t)x15₁))) (* : uint64_t, uint1_t *) in
let x18 := Z.mul_split(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)(x1[1]), (uint64_t)(x2[3]))) (* : uint64_t, [0x0 ~> 0xfffffffffffffffe] *) in
let x19 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x16₂, ((uint64_t)(x9₂ + x8₂), ([0x0 ~> 0xfffffffffffffffe])x15₂))) (* : uint64_t, uint1_t *) in
let x20 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x17₂, ((uint64_t)x19₁, (uint64_t)x18₁))) (* : uint64_t, uint1_t *) in
let x21 := Z.mul_split(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)(x1[2]), (uint64_t)(x2[0]))) (* : uint64_t, [0x0 ~> 0xfffffffffffffffe] *) in
let x22 := Z.add_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)x14₁, (uint64_t)x21₁)) (* : uint64_t, uint1_t *) in
let x23 := Z.mul_split(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)(x1[2]), (uint64_t)(x2[1]))) (* : uint64_t, [0x0 ~> 0xfffffffffffffffe] *) in
let x24 := Z.add_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)x17₁, ([0x0 ~> 0xfffffffffffffffe])x21₂)) (* : uint64_t, uint1_t *) in
let x25 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x22₂, ((uint64_t)x24₁, (uint64_t)x23₁))) (* : uint64_t, uint1_t *) in
let x26 := Z.mul_split(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)(x1[2]), (uint64_t)(x2[2]))) (* : uint64_t, [0x0 ~> 0xfffffffffffffffe] *) in
let x27 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x24₂, ((uint64_t)x20₁, ([0x0 ~> 0xfffffffffffffffe])x23₂))) (* : uint64_t, uint1_t *) in
let x28 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x25₂, ((uint64_t)x27₁, (uint64_t)x26₁))) (* : uint64_t, uint1_t *) in
let x29 := Z.mul_split(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)(x1[2]), (uint64_t)(x2[3]))) (* : uint64_t, [0x0 ~> 0xfffffffffffffffe] *) in
let x30 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x27₂, ((if if (uint0_t)0 ≤ (uint64_t)((x5₁ + ((x7₁ + ((x9₁ + ((x9₂ + x8₂) << 64)) << 64)) << 64) + x1[1] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256) then (λ ()_30, (uint64_t)((x5₁ + ((x7₁ + ((x9₁ + ((x9₂ + x8₂) << 64)) << 64)) << 64) + x1[1] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256) < ([0x10000000000000000 ~> 0x10000000000000000])(2^64)) else (λ ()_30, false) then (λ ()_30, (Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x20₂, ((uint64_t)(Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x19₂, (([0x0 ~> 0xfffffffffffffffe])x18₂, (uint0_t)0))))₁, (uint0_t)0))))₁) else (λ ()_30, x18₂ + x19₂ + x20₂)), ([0x0 ~> 0xfffffffffffffffe])x26₂))) in
let x31 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x28₂, (x30₁, (uint64_t)x29₁))) in
let x32 := Z.mul_split(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)(x1[3]), (uint64_t)(x2[0]))) (* : uint64_t, [0x0 ~> 0xfffffffffffffffe] *) in
let x33 := Z.add_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)x25₁, (uint64_t)x32₁)) (* : uint64_t, uint1_t *) in
let x34 := Z.mul_split(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)(x1[3]), (uint64_t)(x2[1]))) (* : uint64_t, [0x0 ~> 0xfffffffffffffffe] *) in
let x35 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint0_t)0, ((uint64_t)x28₁, ([0x0 ~> 0xfffffffffffffffe])x32₂))) (* : uint64_t, uint1_t *) in
let x36 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x33₂, ((uint64_t)x35₁, (uint64_t)x34₁))) (* : uint64_t, uint1_t *) in
let x37 := Z.mul_split(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)(x1[3]), (uint64_t)(x2[2]))) (* : uint64_t, [0x0 ~> 0xfffffffffffffffe] *) in
let x38 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x35₂, (x31₁, ([0x0 ~> 0xfffffffffffffffe])x34₂))) in
let x39 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x36₂, (x38₁, (uint64_t)x37₁))) in
let x40 := Z.mul_split(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)(x1[3]), (uint64_t)(x2[3]))) (* : uint64_t, [0x0 ~> 0xfffffffffffffffe] *) in
let x41 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), (x38₂, ((if if (uint0_t)0 ≤ (x14₁ + ((x17₁ + ((x20₁ + ((if if (uint0_t)0 ≤ (uint64_t)((x5₁ + ((x7₁ + ((x9₁ + ((x9₂ + x8₂) << 64)) << 64)) << 64) + x1[1] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256) then (λ ()_41, (uint64_t)((x5₁ + ((x7₁ + ((x9₁ + ((x9₂ + x8₂) << 64)) << 64)) << 64) + x1[1] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256) < ([0x10000000000000000 ~> 0x10000000000000000])(2^64)) else (λ ()_41, false) then (λ ()_41, (Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x20₂, ((uint64_t)(Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x19₂, (([0x0 ~> 0xfffffffffffffffe])x18₂, (uint0_t)0))))₁, (uint0_t)0))))₁) else (λ ()_41, x18₂ + x19₂ + x20₂)) << 64)) << 64)) << 64) + x1[2] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256 then (λ ()_41, (x14₁ + ((x17₁ + ((x20₁ + ((if if (uint0_t)0 ≤ (uint64_t)((x5₁ + ((x7₁ + ((x9₁ + ((x9₂ + x8₂) << 64)) << 64)) << 64) + x1[1] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256) then (λ ()_42, (uint64_t)((x5₁ + ((x7₁ + ((x9₁ + ((x9₂ + x8₂) << 64)) << 64)) << 64) + x1[1] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256) < ([0x10000000000000000 ~> 0x10000000000000000])(2^64)) else (λ ()_42, false) then (λ ()_42, (Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x20₂, ((uint64_t)(Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x19₂, (([0x0 ~> 0xfffffffffffffffe])x18₂, (uint0_t)0))))₁, (uint0_t)0))))₁) else (λ ()_42, x18₂ + x19₂ + x20₂)) << 64)) << 64)) << 64) + x1[2] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256 < ([0x10000000000000000 ~> 0x10000000000000000])(2^64)) else (λ ()_41, false) then (λ ()_41, (Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), (x31₂, ((Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), (x30₂, (([0x0 ~> 0xfffffffffffffffe])x29₂, (uint0_t)0))))₁, (uint0_t)0))))₁) else (λ ()_41, x29₂ + x30₂ + x31₂)), ([0x0 ~> 0xfffffffffffffffe])x37₂))) in
let x42 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), (x39₂, (x41₁, (uint64_t)x40₁))) in
let x43 := if if (uint0_t)0 ≤ (x25₁ + ((x28₁ + ((x31₁ + ((if if (uint0_t)0 ≤ (x14₁ + ((x17₁ + ((x20₁ + ((if if (uint0_t)0 ≤ (uint64_t)((x5₁ + ((x7₁ + ((x9₁ + ((x9₂ + x8₂) << 64)) << 64)) << 64) + x1[1] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256) then (λ ()_43, (uint64_t)((x5₁ + ((x7₁ + ((x9₁ + ((x9₂ + x8₂) << 64)) << 64)) << 64) + x1[1] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256) < ([0x10000000000000000 ~> 0x10000000000000000])(2^64)) else (λ ()_43, false) then (λ ()_43, (Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x20₂, ((uint64_t)(Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x19₂, (([0x0 ~> 0xfffffffffffffffe])x18₂, (uint0_t)0))))₁, (uint0_t)0))))₁) else (λ ()_43, x18₂ + x19₂ + x20₂)) << 64)) << 64)) << 64) + x1[2] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256 then (λ ()_43, (x14₁ + ((x17₁ + ((x20₁ + ((if if (uint0_t)0 ≤ (uint64_t)((x5₁ + ((x7₁ + ((x9₁ + ((x9₂ + x8₂) << 64)) << 64)) << 64) + x1[1] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256) then (λ ()_44, (uint64_t)((x5₁ + ((x7₁ + ((x9₁ + ((x9₂ + x8₂) << 64)) << 64)) << 64) + x1[1] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256) < ([0x10000000000000000 ~> 0x10000000000000000])(2^64)) else (λ ()_44, false) then (λ ()_44, (Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x20₂, ((uint64_t)(Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x19₂, (([0x0 ~> 0xfffffffffffffffe])x18₂, (uint0_t)0))))₁, (uint0_t)0))))₁) else (λ ()_44, x18₂ + x19₂ + x20₂)) << 64)) << 64)) << 64) + x1[2] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256 < ([0x10000000000000000 ~> 0x10000000000000000])(2^64)) else (λ ()_43, false) then (λ ()_43, (Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), (x31₂, ((Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), (x30₂, (([0x0 ~> 0xfffffffffffffffe])x29₂, (uint0_t)0))))₁, (uint0_t)0))))₁) else (λ ()_43, x29₂ + x30₂ + x31₂)) << 64)) << 64)) << 64) + x1[3] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256 then (λ ()_43, (x25₁ + ((x28₁ + ((x31₁ + ((if if (uint0_t)0 ≤ (x14₁ + ((x17₁ + ((x20₁ + ((if if (uint0_t)0 ≤ (uint64_t)((x5₁ + ((x7₁ + ((x9₁ + ((x9₂ + x8₂) << 64)) << 64)) << 64) + x1[1] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256) then (λ ()_44, (uint64_t)((x5₁ + ((x7₁ + ((x9₁ + ((x9₂ + x8₂) << 64)) << 64)) << 64) + x1[1] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256) < ([0x10000000000000000 ~> 0x10000000000000000])(2^64)) else (λ ()_44, false) then (λ ()_44, (Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x20₂, ((uint64_t)(Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x19₂, (([0x0 ~> 0xfffffffffffffffe])x18₂, (uint0_t)0))))₁, (uint0_t)0))))₁) else (λ ()_44, x18₂ + x19₂ + x20₂)) << 64)) << 64)) << 64) + x1[2] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256 then (λ ()_44, (x14₁ + ((x17₁ + ((x20₁ + ((if if (uint0_t)0 ≤ (uint64_t)((x5₁ + ((x7₁ + ((x9₁ + ((x9₂ + x8₂) << 64)) << 64)) << 64) + x1[1] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256) then (λ ()_45, (uint64_t)((x5₁ + ((x7₁ + ((x9₁ + ((x9₂ + x8₂) << 64)) << 64)) << 64) + x1[1] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256) < ([0x10000000000000000 ~> 0x10000000000000000])(2^64)) else (λ ()_45, false) then (λ ()_45, (Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x20₂, ((uint64_t)(Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x19₂, (([0x0 ~> 0xfffffffffffffffe])x18₂, (uint0_t)0))))₁, (uint0_t)0))))₁) else (λ ()_45, x18₂ + x19₂ + x20₂)) << 64)) << 64)) << 64) + x1[2] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256 < ([0x10000000000000000 ~> 0x10000000000000000])(2^64)) else (λ ()_44, false) then (λ ()_44, (Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), (x31₂, ((Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), (x30₂, (([0x0 ~> 0xfffffffffffffffe])x29₂, (uint0_t)0))))₁, (uint0_t)0))))₁) else (λ ()_44, x29₂ + x30₂ + x31₂)) << 64)) << 64)) << 64) + x1[3] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256 < ([0x10000000000000000 ~> 0x10000000000000000])(2^64)) else (λ ()_43, false) then (λ ()_43, (Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), (x42₂, ((Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), (x41₂, (([0x0 ~> 0xfffffffffffffffe])x40₂, (uint0_t)0))))₁, (uint0_t)0))))₁) else (λ ()_43, x40₂ + x41₂ + x42₂) in
x3₁ :: x11₁ :: x22₁ :: x33₁ :: x36₁ :: x39₁ :: x42₁ :: x43 :: []
)
Error in converting f to C:
Invalid non-arithmetic let-bound App of type 𝔹 → 𝔹"
: String.string
Finished transaction in 2.002 secs (2.003u,0.s) (successful)
I was hoping these rules would work, and they do in other code.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First thought (haven't dug into it and don't have time right now): is it possible that bounds analysis can't see deep enough into the tree to handle this? We only run bounds analysis twice, I think, so if we need bounds analysis to remove ifs so that bounds analysis can allow removing of future ifs, I think we might be sad?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The bounds in the <details>
look plausible, though -- just extra ifs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Notice how the innermost if
has casts on both sides of the comparison (if (uint0_t)0 ≤ (uint64_t)((...
) but the other if
s are lacking casts. This is because bounds analysis can't see through if
statements well enough.
The code at
fiat-crypto/src/AbstractInterpretation/ZRange.v
Lines 622 to 633 in e34854f
| ident.bool_rect _ | |
=> fun t f b | |
=> match b with | |
| Some b => if b then t tt else f tt | |
| None => ZRange.type.base.option.None | |
end | |
| ident.bool_rect_nodep _ | |
=> fun t f b | |
=> match b with | |
| Some b => if b then t else f | |
| None => ZRange.type.base.option.None | |
end |
should take the union of the bounds when the boolean is unknown.
Additionally, the code at
fiat-crypto/src/AbstractInterpretation/ZRange.v
Lines 575 to 589 in e34854f
| ident.Z_eqb as idc | |
| ident.Z_leb as idc | |
| ident.Z_ltb as idc | |
| ident.Z_geb as idc | |
| ident.Z_gtb as idc | |
| ident.Z_max as idc | |
| ident.Z_min as idc | |
| ident.Z_pow as idc | |
| ident.Z_lxor as idc | |
| ident.Z_modulo as idc | |
| ident.Build_zrange as idc | |
=> fun x y => match to_literal x, to_literal y with | |
| Some x, Some y => of_literal (ident.interp idc x y) | |
| _, _ => ZRange.type.base.option.None | |
end |
should split off the Z comparisons and see if the ranges allow evaluation.
(And I guess min and max can be fused with the four_corners rules)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I implemented what I think you suggested here and the simplification is still stuck.
New output (essentially unchanged)
= "Error Computed bounds (Some [Some [0x0 ~> 0xffffffffffffffff], Some [0x0 ~> 0xffffffffffffffff], Some [0x0 ~> 0xffffffffffffffff], Some [0x0 ~> 0xffffffffffffffff], Some [0x0 ~> 0xffffffffffffffff], None, None, None]) are not tight enough (expected bounds not looser than (Some [Some [0x0 ~> 0xffffffffffffffff], Some [0x0 ~> 0xffffffffffffffff], Some [0x0 ~> 0xffffffffffffffff], Some [0x0 ~> 0xffffffffffffffff], Some [0x0 ~> 0xffffffffffffffff], Some [0x0 ~> 0xffffffffffffffff], Some [0x0 ~> 0xffffffffffffffff], Some [0x0 ~> 0xffffffffffffffff]])).
Found None where Some was expected
(Unprintible syntax tree used in bounds analysis)
Stringification failed on the syntax tree:
(λ x1 x2,
let x3 := Z.mul_split(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)(x1[0]), (uint64_t)(x2[0]))) (* : uint64_t, [0x0 ~> 0xfffffffffffffffe] *) in
let x4 := Z.mul_split(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)(x1[0]), (uint64_t)(x2[1]))) (* : uint64_t, [0x0 ~> 0xfffffffffffffffe] *) in
let x5 := Z.add_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), (([0x0 ~> 0xfffffffffffffffe])x3₂, (uint64_t)x4₁)) (* : uint64_t, uint1_t *) in
let x6 := Z.mul_split(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)(x1[0]), (uint64_t)(x2[2]))) (* : uint64_t, [0x0 ~> 0xfffffffffffffffe] *) in
let x7 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x5₂, (([0x0 ~> 0xfffffffffffffffe])x4₂, (uint64_t)x6₁))) (* : uint64_t, uint1_t *) in
let x8 := Z.mul_split(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)(x1[0]), (uint64_t)(x2[3]))) (* : uint64_t, [0x0 ~> 0xfffffffffffffffe] *) in
let x9 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x7₂, (([0x0 ~> 0xfffffffffffffffe])x6₂, (uint64_t)x8₁))) (* : uint64_t, uint1_t *) in
let x10 := Z.mul_split(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)(x1[1]), (uint64_t)(x2[0]))) (* : uint64_t, [0x0 ~> 0xfffffffffffffffe] *) in
let x11 := Z.add_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)x5₁, (uint64_t)x10₁)) (* : uint64_t, uint1_t *) in
let x12 := Z.mul_split(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)(x1[1]), (uint64_t)(x2[1]))) (* : uint64_t, [0x0 ~> 0xfffffffffffffffe] *) in
let x13 := Z.add_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)x7₁, ([0x0 ~> 0xfffffffffffffffe])x10₂)) (* : uint64_t, uint1_t *) in
let x14 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x11₂, ((uint64_t)x13₁, (uint64_t)x12₁))) (* : uint64_t, uint1_t *) in
let x15 := Z.mul_split(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)(x1[1]), (uint64_t)(x2[2]))) (* : uint64_t, [0x0 ~> 0xfffffffffffffffe] *) in
let x16 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x13₂, ((uint64_t)x9₁, ([0x0 ~> 0xfffffffffffffffe])x12₂))) (* : uint64_t, uint1_t *) in
let x17 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x14₂, ((uint64_t)x16₁, (uint64_t)x15₁))) (* : uint64_t, uint1_t *) in
let x18 := Z.mul_split(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)(x1[1]), (uint64_t)(x2[3]))) (* : uint64_t, [0x0 ~> 0xfffffffffffffffe] *) in
let x19 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x16₂, ((uint64_t)(x9₂ + x8₂), ([0x0 ~> 0xfffffffffffffffe])x15₂))) (* : uint64_t, uint1_t *) in
let x20 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x17₂, ((uint64_t)x19₁, (uint64_t)x18₁))) (* : uint64_t, uint1_t *) in
let x21 := Z.mul_split(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)(x1[2]), (uint64_t)(x2[0]))) (* : uint64_t, [0x0 ~> 0xfffffffffffffffe] *) in
let x22 := Z.add_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)x14₁, (uint64_t)x21₁)) (* : uint64_t, uint1_t *) in
let x23 := Z.mul_split(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)(x1[2]), (uint64_t)(x2[1]))) (* : uint64_t, [0x0 ~> 0xfffffffffffffffe] *) in
let x24 := Z.add_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)x17₁, ([0x0 ~> 0xfffffffffffffffe])x21₂)) (* : uint64_t, uint1_t *) in
let x25 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x22₂, ((uint64_t)x24₁, (uint64_t)x23₁))) (* : uint64_t, uint1_t *) in
let x26 := Z.mul_split(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)(x1[2]), (uint64_t)(x2[2]))) (* : uint64_t, [0x0 ~> 0xfffffffffffffffe] *) in
let x27 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x24₂, ((uint64_t)x20₁, ([0x0 ~> 0xfffffffffffffffe])x23₂))) (* : uint64_t, uint1_t *) in
let x28 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x25₂, ((uint64_t)x27₁, (uint64_t)x26₁))) (* : uint64_t, uint1_t *) in
let x29 := Z.mul_split(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)(x1[2]), (uint64_t)(x2[3]))) (* : uint64_t, [0x0 ~> 0xfffffffffffffffe] *) in
let x30 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x27₂, ((if if (uint0_t)0 ≤ (uint64_t)VAL then (λ ()_30, (uint64_t)VAL < 2^64) else (λ ()_30, false) then (λ ()_30, (Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x20₂, ((uint64_t)(Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x19₂, (([0x0 ~> 0xfffffffffffffffe])x18₂, (uint0_t)0))))₁, (uint0_t)0))))₁) else (λ ()_30, x18₂ + x19₂ + x20₂)), ([0x0 ~> 0xfffffffffffffffe])x26₂))) in
let x31 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x28₂, (x30₁, (uint64_t)x29₁))) in
let x32 := Z.mul_split(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)(x1[3]), (uint64_t)(x2[0]))) (* : uint64_t, [0x0 ~> 0xfffffffffffffffe] *) in
let x33 := Z.add_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)x25₁, (uint64_t)x32₁)) (* : uint64_t, uint1_t *) in
let x34 := Z.mul_split(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)(x1[3]), (uint64_t)(x2[1]))) (* : uint64_t, [0x0 ~> 0xfffffffffffffffe] *) in
let x35 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint0_t)0, ((uint64_t)x28₁, ([0x0 ~> 0xfffffffffffffffe])x32₂))) (* : uint64_t, uint1_t *) in
let x36 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x33₂, ((uint64_t)x35₁, (uint64_t)x34₁))) (* : uint64_t, uint1_t *) in
let x37 := Z.mul_split(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)(x1[3]), (uint64_t)(x2[2]))) (* : uint64_t, [0x0 ~> 0xfffffffffffffffe] *) in
let x38 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x35₂, (x31₁, ([0x0 ~> 0xfffffffffffffffe])x34₂))) in
let x39 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x36₂, (x38₁, (uint64_t)x37₁))) in
let x40 := Z.mul_split(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint64_t)(x1[3]), (uint64_t)(x2[3]))) (* : uint64_t, [0x0 ~> 0xfffffffffffffffe] *) in
let x41 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), (x38₂, ((if if (uint0_t)0 ≤ (x14₁ + ((x17₁ + ((x20₁ + ((if if (uint0_t)0 ≤ (uint64_t)((x5₁ + ((x7₁ + ((x9₁ + ((x9₂ + x8₂) << 64)) << 64)) << 64) + x1[1] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256) then (λ ()_41, (uint64_t)((x5₁ + ((x7₁ + ((x9₁ + ((x9₂ + x8₂) << 64)) << 64)) << 64) + x1[1] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256) < ([0x10000000000000000 ~> 0x10000000000000000])(2^64)) else (λ ()_41, false) then (λ ()_41, (Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x20₂, ((uint64_t)(Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x19₂, (([0x0 ~> 0xfffffffffffffffe])x18₂, (uint0_t)0))))₁, (uint0_t)0))))₁) else (λ ()_41, x18₂ + x19₂ + x20₂)) << 64)) << 64)) << 64) + x1[2] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256 then (λ ()_41, (x14₁ + ((x17₁ + ((x20₁ + ((if if (uint0_t)0 ≤ (uint64_t)((x5₁ + ((x7₁ + ((x9₁ + ((x9₂ + x8₂) << 64)) << 64)) << 64) + x1[1] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256) then (λ ()_42, (uint64_t)((x5₁ + ((x7₁ + ((x9₁ + ((x9₂ + x8₂) << 64)) << 64)) << 64) + x1[1] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256) < ([0x10000000000000000 ~> 0x10000000000000000])(2^64)) else (λ ()_42, false) then (λ ()_42, (Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x20₂, ((uint64_t)(Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x19₂, (([0x0 ~> 0xfffffffffffffffe])x18₂, (uint0_t)0))))₁, (uint0_t)0))))₁) else (λ ()_42, x18₂ + x19₂ + x20₂)) << 64)) << 64)) << 64) + x1[2] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256 < ([0x10000000000000000 ~> 0x10000000000000000])(2^64)) else (λ ()_41, false) then (λ ()_41, (Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), (x31₂, ((Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), (x30₂, (([0x0 ~> 0xfffffffffffffffe])x29₂, (uint0_t)0))))₁, (uint0_t)0))))₁) else (λ ()_41, x29₂ + x30₂ + x31₂)), ([0x0 ~> 0xfffffffffffffffe])x37₂))) in
let x42 := Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), (x39₂, (x41₁, (uint64_t)x40₁))) in
let x43 := if if (uint0_t)0 ≤ (x25₁ + ((x28₁ + ((x31₁ + ((if if (uint0_t)0 ≤ (x14₁ + ((x17₁ + ((x20₁ + ((if if (uint0_t)0 ≤ (uint64_t)((x5₁ + ((x7₁ + ((x9₁ + ((x9₂ + x8₂) << 64)) << 64)) << 64) + x1[1] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256) then (λ ()_43, (uint64_t)((x5₁ + ((x7₁ + ((x9₁ + ((x9₂ + x8₂) << 64)) << 64)) << 64) + x1[1] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256) < ([0x10000000000000000 ~> 0x10000000000000000])(2^64)) else (λ ()_43, false) then (λ ()_43, (Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x20₂, ((uint64_t)(Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x19₂, (([0x0 ~> 0xfffffffffffffffe])x18₂, (uint0_t)0))))₁, (uint0_t)0))))₁) else (λ ()_43, x18₂ + x19₂ + x20₂)) << 64)) << 64)) << 64) + x1[2] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256 then (λ ()_43, (x14₁ + ((x17₁ + ((x20₁ + ((if if (uint0_t)0 ≤ (uint64_t)((x5₁ + ((x7₁ + ((x9₁ + ((x9₂ + x8₂) << 64)) << 64)) << 64) + x1[1] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256) then (λ ()_44, (uint64_t)((x5₁ + ((x7₁ + ((x9₁ + ((x9₂ + x8₂) << 64)) << 64)) << 64) + x1[1] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256) < ([0x10000000000000000 ~> 0x10000000000000000])(2^64)) else (λ ()_44, false) then (λ ()_44, (Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x20₂, ((uint64_t)(Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x19₂, (([0x0 ~> 0xfffffffffffffffe])x18₂, (uint0_t)0))))₁, (uint0_t)0))))₁) else (λ ()_44, x18₂ + x19₂ + x20₂)) << 64)) << 64)) << 64) + x1[2] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256 < ([0x10000000000000000 ~> 0x10000000000000000])(2^64)) else (λ ()_43, false) then (λ ()_43, (Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), (x31₂, ((Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), (x30₂, (([0x0 ~> 0xfffffffffffffffe])x29₂, (uint0_t)0))))₁, (uint0_t)0))))₁) else (λ ()_43, x29₂ + x30₂ + x31₂)) << 64)) << 64)) << 64) + x1[3] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256 then (λ ()_43, (x25₁ + ((x28₁ + ((x31₁ + ((if if (uint0_t)0 ≤ (x14₁ + ((x17₁ + ((x20₁ + ((if if (uint0_t)0 ≤ (uint64_t)((x5₁ + ((x7₁ + ((x9₁ + ((x9₂ + x8₂) << 64)) << 64)) << 64) + x1[1] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256) then (λ ()_44, (uint64_t)((x5₁ + ((x7₁ + ((x9₁ + ((x9₂ + x8₂) << 64)) << 64)) << 64) + x1[1] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256) < ([0x10000000000000000 ~> 0x10000000000000000])(2^64)) else (λ ()_44, false) then (λ ()_44, (Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x20₂, ((uint64_t)(Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x19₂, (([0x0 ~> 0xfffffffffffffffe])x18₂, (uint0_t)0))))₁, (uint0_t)0))))₁) else (λ ()_44, x18₂ + x19₂ + x20₂)) << 64)) << 64)) << 64) + x1[2] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256 then (λ ()_44, (x14₁ + ((x17₁ + ((x20₁ + ((if if (uint0_t)0 ≤ (uint64_t)((x5₁ + ((x7₁ + ((x9₁ + ((x9₂ + x8₂) << 64)) << 64)) << 64) + x1[1] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256) then (λ ()_45, (uint64_t)((x5₁ + ((x7₁ + ((x9₁ + ((x9₂ + x8₂) << 64)) << 64)) << 64) + x1[1] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256) < ([0x10000000000000000 ~> 0x10000000000000000])(2^64)) else (λ ()_45, false) then (λ ()_45, (Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x20₂, ((uint64_t)(Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), ((uint1_t)x19₂, (([0x0 ~> 0xfffffffffffffffe])x18₂, (uint0_t)0))))₁, (uint0_t)0))))₁) else (λ ()_45, x18₂ + x19₂ + x20₂)) << 64)) << 64)) << 64) + x1[2] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256 < ([0x10000000000000000 ~> 0x10000000000000000])(2^64)) else (λ ()_44, false) then (λ ()_44, (Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), (x31₂, ((Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), (x30₂, (([0x0 ~> 0xfffffffffffffffe])x29₂, (uint0_t)0))))₁, (uint0_t)0))))₁) else (λ ()_44, x29₂ + x30₂ + x31₂)) << 64)) << 64)) << 64) + x1[3] * (x2[0] + ((x2[1] + ((x2[2] + (x2[3] << 64)) << 64)) << 64))) >> 256 < ([0x10000000000000000 ~> 0x10000000000000000])(2^64)) else (λ ()_43, false) then (λ ()_43, (Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), (x42₂, ((Z.add_with_get_carry(([0x10000000000000000 ~> 0x10000000000000000])(2^64), (x41₂, (([0x0 ~> 0xfffffffffffffffe])x40₂, (uint0_t)0))))₁, (uint0_t)0))))₁) else (λ ()_43, x40₂ + x41₂ + x42₂) in
x3₁ :: x11₁ :: x22₁ :: x33₁ :: x36₁ :: x39₁ :: x42₁ :: x43 :: []
)
Error in converting f to C:
Invalid non-arithmetic let-bound App of type 𝔹 → 𝔹"
: String.string
Finished transaction in 2.308 secs (2.269u,0.039s) (successful)
The hypothesis that bounds analysis is blocked on rewriting (and vice versa) seems reasonable to me still. I'm mostly out of ideas of what to do on the rewriter side, though. (Thoughts?) I'll try and see if I can find a source-level workaround.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This can be resolved now?
| Compilers.ident_Pos_add => fun _ _ => None | ||
| Compilers.ident_Pos_mul => fun _ _ => None |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems worth sticking these up with ident.Z_modulo as idc
et al so that we at least get bounds on literals, no?
| Compilers.ident_Z_pos => fun _ => None | ||
| Compilers.ident_Z_to_pos => fun _ => None |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems worth sticking these with ident.Z_of_nat as idc
/ ident.Z_to_nat as idc
so we get bounds on literals, no?
| Compilers.ident_nat_rect_fbb_b _ _ _ => fun _ _ _ _ => ZRange.type.base.option.None | ||
| Compilers.ident_nat_rect_fbb_b_b _ _ _ _ => fun _ _ _ _ _ => ZRange.type.base.option.None | ||
| Compilers.ident_list_rect_fbb_b _ _ _ _ => fun _ _ _ _ => ZRange.type.base.option.None | ||
| Compilers.ident_list_rect_fbb_b_b _ _ _ _ _ => fun _ _ _ _ _ => ZRange.type.base.option.None | ||
| Compilers.ident_list_rect_fbb_b_b_b _ _ _ _ _ _ => fun _ _ _ _ _ _ => ZRange.type.base.option.None | ||
| Compilers.ident_list_rect_fbb_b_b_b_b _ _ _ _ _ _ _ => fun _ _ _ _ _ _ _=> ZRange.type.base.option.None | ||
| Compilers.ident_list_rect_fbb_b_b_b_b_b _ _ _ _ _ _ _ _ => fun _ _ _ _ _ _ _ _=> ZRange.type.base.option.None |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe worth handling lese like the existing nat_rect/list_rect bounds?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't understand the code there so I am unable to judge. Shouldn't all recursors be gone by bounds-analysis time anyway?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess probably yes
@@ -691,6 +691,7 @@ Module Compilers. | |||
| [ |- context[Proper _ (fun y => Z.shiftl ?v _)] ] => is_var v; destruct v; auto with zarith | |||
| _ => idtac | |||
end. | |||
all : try solve [eapply (ZRange.monotoneb_two_corners_and_zero_gen Z.abs); trivial; cbv [Proper respectful]; left; lia]. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we just add a case for ZRange.monotoneb_two_corners_and_zero_gen
a la ZRange.monotoneb_two_corners_gen
/ ZRange.monotoneb_four_corners_and_zero_gen
to the match right above this? Seems like it'll make future additions a bit easier?
@@ -458,6 +458,7 @@ Module Pipeline. | |||
:= match t return ZRange.type.base.option.interp t -> ZRange.type.option.interp t-> bool * list (nat * nat) * list (zrange * zrange) with | |||
| base.type.unit | |||
=> fun 'tt 'tt => (false, nil, nil) | |||
| base.type.type_base Compilers.positive |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we add notations to the *Notations.v
file in Language/
so this is base.type.positive
?
@@ -45,6 +45,11 @@ Local Notation "x <= y <= z" := (andb (is_tighter_than_bool (ZRange.normalize x) | |||
Local Notation litZZ x := (ident.literal (fst x), ident.literal (snd x)) (only parsing). | |||
Local Notation n r := (ZRange.normalize r) (only parsing). | |||
|
|||
Local Notation "typeof! x" := ltac:(let t := type of x in exact t) (at level 10, only parsing). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, maybe this notation should go in src/Utils/Notations.v
?
@@ -151,6 +160,7 @@ Lemma arith_rewrite_rules_proofs (max_const_val : Z) | |||
Proof using Type. | |||
start_proof; auto; intros; try lia. | |||
all: autorewrite with zsimplify_const; try reflexivity. | |||
all : try (replace (-y * k) with (-(y*k)) by lia; set (y*k) as yk; clearbody yk). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we do this without using autogenerated names?
Compute | ||
Show.show (* [show] for pretty-printing of the AST without needing lots of imports *) | ||
(Pipeline.BoundsPipelineToString | ||
"fiat_" "fe4_mul_no_reduce" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First thought (haven't dug into it and don't have time right now): is it possible that bounds analysis can't see deep enough into the tree to handle this? We only run bounds analysis twice, I think, so if we need bounds analysis to remove ifs so that bounds analysis can allow removing of future ifs, I think we might be sad?
| Compilers.ident_Pos_add | ||
| Compilers.ident_Pos_mul | ||
| Compilers.ident_Z_pos | ||
| Compilers.ident_Z_to_pos |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please add notations for these so we can have ident.*
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't realize I made pending comments instead of standalone replies...
| Compilers.ident_nat_rect_fbb_b _ _ _ => fun _ _ _ _ => ZRange.type.base.option.None | ||
| Compilers.ident_nat_rect_fbb_b_b _ _ _ _ => fun _ _ _ _ _ => ZRange.type.base.option.None | ||
| Compilers.ident_list_rect_fbb_b _ _ _ _ => fun _ _ _ _ => ZRange.type.base.option.None | ||
| Compilers.ident_list_rect_fbb_b_b _ _ _ _ _ => fun _ _ _ _ _ => ZRange.type.base.option.None | ||
| Compilers.ident_list_rect_fbb_b_b_b _ _ _ _ _ _ => fun _ _ _ _ _ _ => ZRange.type.base.option.None | ||
| Compilers.ident_list_rect_fbb_b_b_b_b _ _ _ _ _ _ _ => fun _ _ _ _ _ _ _=> ZRange.type.base.option.None | ||
| Compilers.ident_list_rect_fbb_b_b_b_b_b _ _ _ _ _ _ _ _ => fun _ _ _ _ _ _ _ _=> ZRange.type.base.option.None |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't understand the code there so I am unable to judge. Shouldn't all recursors be gone by bounds-analysis time anyway?
@@ -135,3 +135,76 @@ Module Thunked. | |||
Notation nat_rect := Rewriter.Util.NatUtil.Thunked.nat_rect (only parsing). | |||
Notation option_rect := Rewriter.Util.Option.Thunked.option_rect (only parsing). | |||
End Thunked. | |||
|
|||
Definition nat_rect_fbb_b {A B C} := |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These are rewriter workarounds, so not NatUtil
or ListUtil
.
src/BoundsPipeline.v
Outdated
@@ -777,6 +777,118 @@ Module Pipeline. | |||
(** To get better error messages, we don't check bounds until | |||
after doing some extra rewriting *) | |||
let E' := CheckedPartialEvaluateWithBounds (fun _ => None) assume_cast_truncates (@ident.is_comment) false E arg_bounds ZRange.type.base.option.None in | |||
E' <- match E' with |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@JasonGross This change did not help more if (0 <= uint64) to be eliminated. Could we look at this together sometime?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This can be resolved now, right?
Full debug log with this patch: https://gist.github.com/andres-erbsen/91d33818d28a5b456a1cee9d65ee7d88 |
643c6a4
to
557383f
Compare
For mit-plv#1609 We don't yet include the ones that are higher-order-than 3, those need more debugging. Co-authored-by: Andres Erbsen <[email protected]>
For https://github.com/mit-plv/fiat-crypto/pull/1609 We don't yet include the ones that are higher-order-than 3, those need more debugging. Co-authored-by: Andres Erbsen <[email protected]> <details><summary>Timing Diff</summary> <p> ``` After | Peak Mem | File Name | Before | Peak Mem || Change || Change (mem) | % Change | % Change (mem) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 119m55.01s | 2852288 ko | Total Time / Peak Mem | 116m54.82s | 2852504 ko || +3m00.19s || -216 ko | +2.56% | -0.00% ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 4m23.28s | 1922200 ko | Rewriter/Passes/ArithWithCasts.vo | 3m44.64s | 1804812 ko || +0m38.63s || 117388 ko | +17.20% | +6.50% 1m56.74s | 1630248 ko | fiat-java/src/FiatP384Scalar.java | 1m37.68s | 1868416 ko || +0m19.06s || -238168 ko | +19.51% | -12.74% 1m58.86s | 1834476 ko | fiat-bedrock2/src/p384_32.c | 1m40.20s | 1821748 ko || +0m18.65s || 12728 ko | +18.62% | +0.69% 1m57.91s | 1645388 ko | fiat-json/src/p384_scalar_32.json | 1m39.64s | 2106288 ko || +0m18.26s || -460900 ko | +18.33% | -21.88% 0m55.68s | 1150564 ko | Rewriter/Passes/Arith.vo | 0m40.86s | 1092012 ko || +0m14.82s || 58552 ko | +36.27% | +5.36% 2m00.58s | 2234976 ko | fiat-bedrock2/src/p384_scalar_32.c | 1m47.08s | 2226524 ko || +0m13.50s || 8452 ko | +12.60% | +0.37% 1m56.68s | 1764652 ko | fiat-java/src/FiatP384.java | 1m44.50s | 1969328 ko || +0m12.18s || -204676 ko | +11.65% | -10.39% 1m54.76s | 1908628 ko | fiat-json/src/p384_32.json | 1m43.69s | 2004176 ko || +0m11.06s || -95548 ko | +10.67% | -4.76% 1m57.28s | 1615084 ko | fiat-zig/src/p384_scalar_32.zig | 1m46.91s | 1733780 ko || +0m10.37s || -118696 ko | +9.69% | -6.84% 1m54.55s | 2074740 ko | fiat-zig/src/p384_32.zig | 1m44.61s | 1626180 ko || +0m09.93s || 448560 ko | +9.50% | +27.58% 1m55.94s | 2145952 ko | fiat-go/32/p384scalar/p384scalar.go | 1m48.27s | 1630928 ko || +0m07.66s || 515024 ko | +7.08% | +31.57% 1m57.76s | 1764936 ko | fiat-rust/src/p384_scalar_32.rs | 1m51.87s | 1768464 ko || +0m05.88s || -3528 ko | +5.26% | -0.19% 1m54.58s | 1597680 ko | fiat-rust/src/p384_32.rs | 1m48.64s | 1718060 ko || +0m05.93s || -120380 ko | +5.46% | -7.00% 1m54.56s | 1708700 ko | fiat-c/src/p384_scalar_32.c | 1m49.11s | 1518820 ko || +0m05.45s || 189880 ko | +4.99% | +12.50% 1m51.99s | 1734444 ko | fiat-c/src/p384_32.c | 1m46.30s | 1630176 ko || +0m05.69s || 104268 ko | +5.35% | +6.39% 1m45.33s | 1889064 ko | Bedrock/End2End/X25519/AddPrecomputed.vo | 1m49.74s | 1889060 ko || -0m04.41s || 4 ko | -4.01% | +0.00% 5m27.35s | 2852288 ko | Bedrock/Field/Synthesis/Examples/p224_64_new.vo | 5m31.22s | 2852504 ko || -0m03.87s || -216 ko | -1.16% | -0.00% 2m33.52s | 1607452 ko | Rewriter/Passes/NBE.vo | 2m37.17s | 1607512 ko || -0m03.65s || -60 ko | -2.32% | -0.00% 0m37.77s | 110828 ko | fiat-json/src/p521_32.json | 0m33.99s | 114180 ko || +0m03.78s || -3352 ko | +11.12% | -2.93% 0m37.53s | 62756 ko | fiat-java/src/FiatP521.java | 0m33.77s | 62456 ko || +0m03.75s || 300 ko | +11.13% | +0.48% 1m50.62s | 1393276 ko | Rewriter/Passes/ToFancyWithCasts.vo | 1m53.15s | 1392880 ko || -0m02.53s || 396 ko | -2.23% | +0.02% 0m42.34s | 1859688 ko | ExtractionOCaml/bedrock2_saturated_solinas | 0m40.29s | 1851720 ko || +0m02.05s || 7968 ko | +5.08% | +0.43% 0m39.48s | 1769316 ko | ExtractionOCaml/base_conversion | 0m41.92s | 1624120 ko || -0m02.44s || 145196 ko | -5.82% | +8.93% 1m49.94s | 2247636 ko | Fancy/Barrett256.vo | 1m51.28s | 2284788 ko || -0m01.34s || -37152 ko | -1.20% | -1.62% 1m47.35s | 1832408 ko | fiat-go/32/p384/p384.go | 1m49.23s | 1724040 ko || -0m01.87s || 108368 ko | -1.72% | +6.28% 1m32.25s | 2164300 ko | SlowPrimeSynthesisExamples.vo | 1m33.38s | 2139896 ko || -0m01.12s || 24404 ko | -1.21% | +1.14% 0m51.90s | 1016836 ko | Rewriter/Passes/MultiRetSplit.vo | 0m53.14s | 1016808 ko || -0m01.24s || 28 ko | -2.33% | +0.00% 0m47.25s | 2146984 ko | ExtractionOCaml/solinas_reduction | 0m45.91s | 2147072 ko || +0m01.34s || -88 ko | +2.91% | -0.00% 0m45.18s | 2146856 ko | ExtractionOCaml/word_by_word_montgomery | 0m46.83s | 2147056 ko || -0m01.64s || -200 ko | -3.52% | -0.00% 0m43.40s | 1864240 ko | ExtractionOCaml/bedrock2_dettman_multiplication | 0m41.96s | 1870364 ko || +0m01.43s || -6124 ko | +3.43% | -0.32% 0m41.82s | 1863680 ko | ExtractionOCaml/unsaturated_solinas | 0m43.45s | 1863368 ko || -0m01.63s || 312 ko | -3.75% | +0.01% 0m29.25s | 1544592 ko | StandaloneDebuggingExamples.vo | 0m30.51s | 1556744 ko || -0m01.26s || -12152 ko | -4.12% | -0.78% 0m16.94s | 283032 ko | fiat-go/64/p434/p434.go | 0m18.07s | 247128 ko || -0m01.12s || 35904 ko | -6.25% | +14.52% 0m16.74s | 2204356 ko | ExtractionHaskell/with_bedrock2_solinas_reduction.hs | 0m17.83s | 2237008 ko || -0m01.08s || -32652 ko | -6.11% | -1.45% 0m16.25s | 253040 ko | fiat-rust/src/p434_64.rs | 0m17.99s | 278560 ko || -0m01.73s || -25520 ko | -9.67% | -9.16% 8m28.15s | 2591812 ko | Bedrock/End2End/X25519/GarageDoor.vo | 8m27.82s | 2587848 ko || +0m00.32s || 3964 ko | +0.06% | +0.15% 1m51.16s | 1612836 ko | Bedrock/End2End/X25519/Field25519.vo | 1m52.02s | 1604084 ko || -0m00.86s || 8752 ko | -0.76% | +0.54% 0m56.72s | 707388 ko | Rewriter/RulesProofs.vo | 0m55.84s | 703908 ko || +0m00.87s || 3480 ko | +1.57% | +0.49% 0m49.15s | 2147776 ko | ExtractionOCaml/bedrock2_solinas_reduction | 0m48.43s | 2147920 ko || +0m00.71s || -144 ko | +1.48% | -0.00% 0m48.64s | 1869620 ko | Fancy/Montgomery256.vo | 0m48.94s | 1855572 ko || -0m00.29s || 14048 ko | -0.61% | +0.75% 0m48.41s | 2147988 ko | ExtractionOCaml/with_bedrock2_word_by_word_montgomery | 0m48.03s | 2147920 ko || +0m00.37s || 68 ko | +0.79% | +0.00% 0m48.12s | 2148012 ko | ExtractionOCaml/bedrock2_word_by_word_montgomery | 0m47.94s | 2147964 ko || +0m00.17s || 48 ko | +0.37% | +0.00% 0m47.07s | 2148072 ko | ExtractionOCaml/bedrock2_unsaturated_solinas | 0m46.98s | 2147976 ko || +0m00.09s || 96 ko | +0.19% | +0.00% 0m46.31s | 2148036 ko | ExtractionOCaml/with_bedrock2_unsaturated_solinas | 0m46.12s | 2147932 ko || +0m00.19s || 104 ko | +0.41% | +0.00% 0m42.55s | 1864184 ko | ExtractionOCaml/bedrock2_base_conversion | 0m41.57s | 1864708 ko || +0m00.97s || -524 ko | +2.35% | -0.02% 0m42.07s | 1864464 ko | ExtractionOCaml/with_bedrock2_base_conversion | 0m41.20s | 1823744 ko || +0m00.86s || 40720 ko | +2.11% | +2.23% 0m41.68s | 1858816 ko | ExtractionOCaml/with_bedrock2_saturated_solinas | 0m40.96s | 1851212 ko || +0m00.71s || 7604 ko | +1.75% | +0.41% 0m41.66s | 1859960 ko | ExtractionOCaml/with_bedrock2_dettman_multiplication | 0m41.21s | 1851288 ko || +0m00.44s || 8672 ko | +1.09% | +0.46% 0m41.50s | 1857940 ko | ExtractionOCaml/with_bedrock2_solinas_reduction | 0m41.06s | 1849540 ko || +0m00.43s || 8400 ko | +1.07% | +0.45% 0m40.74s | 62064 ko | fiat-go/32/p521/p521.go | 0m41.26s | 68256 ko || -0m00.51s || -6192 ko | -1.26% | -9.07% 0m40.14s | 1864708 ko | ExtractionOCaml/dettman_multiplication | 0m40.52s | 1786504 ko || -0m00.38s || 78204 ko | -0.93% | +4.37% 0m38.85s | 149624 ko | fiat-bedrock2/src/p521_32.c | 0m38.98s | 143940 ko || -0m00.12s || 5684 ko | -0.33% | +3.94% 0m38.54s | 1775188 ko | ExtractionOCaml/saturated_solinas | 0m38.71s | 1764700 ko || -0m00.17s || 10488 ko | -0.43% | +0.59% 0m37.51s | 62500 ko | fiat-zig/src/p521_32.zig | 0m37.39s | 59332 ko || +0m00.11s || 3168 ko | +0.32% | +5.33% 0m37.48s | 1294192 ko | Bedrock/End2End/X25519/GarageDoorTop.vo | 0m37.27s | 1292880 ko || +0m00.20s || 1312 ko | +0.56% | +0.10% 0m37.44s | 66780 ko | fiat-c/src/p521_32.c | 0m37.77s | 60280 ko || -0m00.33s || 6500 ko | -0.87% | +10.78% 0m37.42s | 60608 ko | fiat-rust/src/p521_32.rs | 0m37.83s | 61900 ko || -0m00.40s || -1292 ko | -1.08% | -2.08% 0m37.11s | 2378444 ko | ExtractionOCaml/bedrock2_solinas_reduction.ml | 0m37.46s | 2364772 ko || -0m00.35s || 13672 ko | -0.93% | +0.57% 0m36.36s | 2319684 ko | ExtractionOCaml/with_bedrock2_word_by_word_montgomery.ml | 0m36.69s | 2362052 ko || -0m00.32s || -42368 ko | -0.89% | -1.79% 0m36.34s | 2322608 ko | ExtractionOCaml/bedrock2_word_by_word_montgomery.ml | 0m36.87s | 2363400 ko || -0m00.52s || -40792 ko | -1.43% | -1.72% 0m35.65s | 2239920 ko | ExtractionOCaml/solinas_reduction.ml | 0m35.60s | 2244256 ko || +0m00.04s || -4336 ko | +0.14% | -0.19% 0m34.94s | 1413516 ko | ExtractionOCaml/perf_word_by_word_montgomery | 0m34.37s | 1401160 ko || +0m00.57s || 12356 ko | +1.65% | +0.88% 0m34.88s | 1413452 ko | ExtractionOCaml/perf_unsaturated_solinas | 0m34.36s | 1398860 ko || +0m00.52s || 14592 ko | +1.51% | +1.04% 0m34.62s | 1284740 ko | Bedrock/End2End/X25519/MontgomeryLadder.vo | 0m35.00s | 1284680 ko || -0m00.38s || 60 ko | -1.08% | +0.00% 0m34.36s | 2237140 ko | ExtractionOCaml/word_by_word_montgomery.ml | 0m34.45s | 2220616 ko || -0m00.09s || 16524 ko | -0.26% | +0.74% 0m34.01s | 915808 ko | Rewriter/Passes/MulSplit.vo | 0m34.72s | 913152 ko || -0m00.71s || 2656 ko | -2.04% | +0.29% 0m33.79s | 2251096 ko | ExtractionOCaml/bedrock2_unsaturated_solinas.ml | 0m33.50s | 2229256 ko || +0m00.28s || 21840 ko | +0.86% | +0.97% 0m33.14s | 2251808 ko | ExtractionOCaml/with_bedrock2_unsaturated_solinas.ml | 0m33.28s | 2229952 ko || -0m00.14s || 21856 ko | -0.42% | +0.98% 0m31.42s | 2149728 ko | ExtractionOCaml/unsaturated_solinas.ml | 0m31.33s | 2124628 ko || +0m00.09s || 25100 ko | +0.28% | +1.18% 0m29.99s | 2166628 ko | ExtractionOCaml/bedrock2_dettman_multiplication.ml | 0m30.23s | 2179988 ko || -0m00.24s || -13360 ko | -0.79% | -0.61% 0m29.53s | 2156584 ko | ExtractionOCaml/with_bedrock2_solinas_reduction.ml | 0m29.10s | 2125132 ko || +0m00.42s || 31452 ko | +1.47% | +1.48% 0m29.25s | 2161092 ko | ExtractionOCaml/with_bedrock2_base_conversion.ml | 0m28.31s | 2121844 ko || +0m00.94s || 39248 ko | +3.32% | +1.84% 0m29.19s | 2161336 ko | ExtractionOCaml/bedrock2_base_conversion.ml | 0m29.47s | 2121804 ko || -0m00.27s || 39532 ko | -0.95% | +1.86% 0m29.12s | 2156880 ko | ExtractionOCaml/bedrock2_saturated_solinas.ml | 0m29.25s | 2124968 ko || -0m00.12s || 31912 ko | -0.44% | +1.50% 0m29.07s | 2156996 ko | ExtractionOCaml/with_bedrock2_saturated_solinas.ml | 0m28.94s | 2124832 ko || +0m00.12s || 32164 ko | +0.44% | +1.51% 0m28.90s | 2158288 ko | ExtractionOCaml/with_bedrock2_dettman_multiplication.ml | 0m29.11s | 2130440 ko || -0m00.21s || 27848 ko | -0.72% | +1.30% 0m27.93s | 2064324 ko | ExtractionOCaml/dettman_multiplication.ml | 0m28.14s | 2081544 ko || -0m00.21s || -17220 ko | -0.74% | -0.82% 0m27.37s | 2077984 ko | ExtractionOCaml/saturated_solinas.ml | 0m27.45s | 2061340 ko || -0m00.07s || 16644 ko | -0.29% | +0.80% 0m26.92s | 2069712 ko | ExtractionOCaml/base_conversion.ml | 0m27.35s | 2051836 ko || -0m00.42s || 17876 ko | -1.57% | +0.87% 0m25.19s | 1381372 ko | PerfTesting/PerfTestSearch.vo | 0m25.63s | 1377272 ko || -0m00.43s || 4100 ko | -1.71% | +0.29% 0m23.10s | 1189876 ko | PushButtonSynthesis/UnsaturatedSolinas.vo | 0m23.84s | 1191348 ko || -0m00.73s || -1472 ko | -3.10% | -0.12% 0m21.56s | 1967716 ko | ExtractionOCaml/perf_unsaturated_solinas.ml | 0m21.50s | 1905172 ko || +0m00.05s || 62544 ko | +0.27% | +3.28% 0m21.46s | 1954296 ko | ExtractionOCaml/perf_word_by_word_montgomery.ml | 0m21.53s | 2007400 ko || -0m00.07s || -53104 ko | -0.32% | -2.64% 0m21.42s | 1364020 ko | Bedrock/End2End/RupicolaCrypto/Low.vo | 0m21.81s | 1360444 ko || -0m00.38s || 3576 ko | -1.78% | +0.26% 0m20.10s | 1163460 ko | PushButtonSynthesis/WordByWordMontgomery.vo | 0m20.64s | 1164604 ko || -0m00.53s || -1144 ko | -2.61% | -0.09% 0m18.30s | 301772 ko | fiat-bedrock2/src/p434_64.c | 0m18.00s | 301336 ko || +0m00.30s || 436 ko | +1.66% | +0.14% 0m18.28s | 1142612 ko | Bedrock/Field/Translation/Proofs/Func.vo | 0m18.75s | 1141560 ko || -0m00.46s || 1052 ko | -2.50% | +0.09% 0m17.74s | 405312 ko | fiat-bedrock2/src/secp256k1_montgomery_scalar_32.c | 0m17.23s | 404568 ko || +0m00.50s || 744 ko | +2.95% | +0.18% 0m17.68s | 267560 ko | fiat-json/src/p434_64.json | 0m17.55s | 336912 ko || +0m00.12s || -69352 ko | +0.74% | -20.58% 0m17.57s | 432032 ko | fiat-bedrock2/src/p256_scalar_32.c | 0m17.05s | 461272 ko || +0m00.51s || -29240 ko | +3.04% | -6.33% 0m17.48s | 2202308 ko | ExtractionHaskell/bedrock2_solinas_reduction.hs | 0m17.75s | 2235132 ko || -0m00.26s || -32824 ko | -1.52% | -1.46% 0m17.46s | 1380556 ko | PerfTesting/PerfTestSearchPattern.vo | 0m17.92s | 1380832 ko || -0m00.46s || -276 ko | -2.56% | -0.01% 0m17.41s | 230072 ko | fiat-zig/src/p434_64.zig | 0m17.32s | 253724 ko || +0m00.08s || -23652 ko | +0.51% | -9.32% 0m17.35s | 1223956 ko | Bedrock/Field/Synthesis/New/Signature.vo | 0m17.66s | 1220516 ko || -0m00.30s || 3440 ko | -1.75% | +0.28% 0m17.35s | 2166060 ko | ExtractionHaskell/bedrock2_word_by_word_montgomery.hs | 0m17.53s | 2194808 ko || -0m00.17s || -28748 ko | -1.02% | -1.30% 0m17.28s | 2164448 ko | ExtractionHaskell/with_bedrock2_word_by_word_montgomery.hs | 0m17.52s | 2193664 ko || -0m00.23s || -29216 ko | -1.36% | -1.33% 0m17.16s | 254416 ko | fiat-c/src/p434_64.c | 0m17.42s | 251820 ko || -0m00.26s || 2596 ko | -1.49% | +1.03% 0m17.15s | 390476 ko | fiat-bedrock2/src/secp256k1_montgomery_32.c | 0m16.69s | 415512 ko || +0m00.45s || -25036 ko | +2.75% | -6.02% 0m17.01s | 351572 ko | fiat-java/src/FiatSecp256K1MontgomeryScalar.java | 0m16.40s | 455088 ko || +0m00.61s || -103516 ko | +3.71% | -22.74% 0m16.90s | 445272 ko | fiat-go/32/secp256k1montgomeryscalar/secp256k1montgomeryscalar.go | 0m17.19s | 360700 ko || -0m00.29s || 84572 ko | -1.68% | +23.44% 0m16.86s | 1160300 ko | Bedrock/Field/Translation/Proofs/Cmd.vo | 0m17.42s | 1157936 ko || -0m00.56s || 2364 ko | -3.21% | +0.20% 0m16.84s | 456724 ko | fiat-bedrock2/src/curve25519_scalar_32.c | 0m16.68s | 405344 ko || +0m00.16s || 51380 ko | +0.95% | +12.67% 0m16.83s | 454284 ko | fiat-json/src/secp256k1_montgomery_scalar_32.json | 0m16.39s | 468528 ko || +0m00.43s || -14244 ko | +2.68% | -3.04% 0m16.79s | 2032540 ko | ExtractionHaskell/word_by_word_montgomery.hs | 0m16.91s | 2067180 ko || -0m00.12s || -34640 ko | -0.70% | -1.67% 0m16.77s | 2093008 ko | ExtractionHaskell/solinas_reduction.hs | 0m16.77s | 2051684 ko || +0m00.00s || 41324 ko | +0.00% | +2.01% 0m16.76s | 371064 ko | fiat-java/src/FiatP256Scalar.java | 0m15.92s | 334232 ko || +0m00.84s || 36832 ko | +5.27% | +11.01% 0m16.75s | 2144072 ko | ExtractionHaskell/bedrock2_unsaturated_solinas.hs | 0m16.53s | 2074184 ko || +0m00.21s || 69888 ko | +1.33% | +3.36% 0m16.73s | 406956 ko | fiat-json/src/curve25519_scalar_32.json | 0m16.02s | 450328 ko || +0m00.71s || -43372 ko | +4.43% | -9.63% 0m16.73s | 347524 ko | fiat-zig/src/secp256k1_montgomery_scalar_32.zig | 0m16.35s | 397760 ko || +0m00.37s || -50236 ko | +2.32% | -12.62% 0m16.72s | 390380 ko | fiat-zig/src/p256_scalar_32.zig | 0m16.18s | 356296 ko || +0m00.53s || 34084 ko | +3.33% | +9.56% 0m16.70s | 391092 ko | fiat-go/32/p256scalar/p256scalar.go | 0m16.94s | 366900 ko || -0m00.24s || 24192 ko | -1.41% | +6.59% 0m16.68s | 405796 ko | fiat-java/src/FiatCurve25519Scalar.java | 0m16.15s | 370228 ko || +0m00.53s || 35568 ko | +3.28% | +9.60% 0m16.66s | 378844 ko | fiat-rust/src/p256_scalar_32.rs | 0m15.98s | 411316 ko || +0m00.67s || -32472 ko | +4.25% | -7.89% 0m16.61s | 366928 ko | fiat-c/src/secp256k1_montgomery_scalar_32.c | 0m16.58s | 426780 ko || +0m00.03s || -59852 ko | +0.18% | -14.02% 0m16.59s | 340692 ko | fiat-rust/src/secp256k1_montgomery_32.rs | 0m16.47s | 353508 ko || +0m00.12s || -12816 ko | +0.72% | -3.62% 0m16.58s | 385436 ko | fiat-json/src/secp256k1_montgomery_32.json | 0m16.19s | 407896 ko || +0m00.38s || -22460 ko | +2.40% | -5.50% 0m16.55s | 416232 ko | fiat-go/32/curve25519scalar/curve25519scalar.go | 0m16.41s | 346260 ko || +0m00.14s || 69972 ko | +0.85% | +20.20% 0m16.53s | 338172 ko | fiat-java/src/FiatSecp256K1Montgomery.java | 0m16.15s | 423920 ko || +0m00.38s || -85748 ko | +2.35% | -20.22% 0m16.53s | 396224 ko | fiat-rust/src/secp256k1_montgomery_scalar_32.rs | 0m16.61s | 445068 ko || -0m00.07s || -48844 ko | -0.48% | -10.97% 0m16.50s | 2144128 ko | ExtractionHaskell/with_bedrock2_unsaturated_solinas.hs | 0m16.55s | 2072880 ko || -0m00.05s || 71248 ko | -0.30% | +3.43% 0m16.45s | 1139712 ko | Bedrock/End2End/Poly1305/Field1305.vo | 0m17.26s | 1137640 ko || -0m00.81s || 2072 ko | -4.69% | +0.18% 0m16.45s | 364804 ko | fiat-c/src/p256_scalar_32.c | 0m16.45s | 434352 ko || +0m00.00s || -69548 ko | +0.00% | -16.01% 0m16.36s | 436776 ko | fiat-zig/src/secp256k1_montgomery_32.zig | 0m16.01s | 437516 ko || +0m00.34s || -740 ko | +2.18% | -0.16% 0m16.33s | 359632 ko | fiat-zig/src/curve25519_scalar_32.zig | 0m15.80s | 434444 ko || +0m00.52s || -74812 ko | +3.35% | -17.22% 0m16.32s | 440340 ko | fiat-go/32/secp256k1montgomery/secp256k1montgomery.go | 0m16.19s | 415772 ko || +0m00.12s || 24568 ko | +0.80% | +5.90% 0m16.31s | 431364 ko | fiat-json/src/p256_scalar_32.json | 0m16.54s | 468452 ko || -0m00.23s || -37088 ko | -1.39% | -7.91% 0m16.28s | 418340 ko | fiat-c/src/secp256k1_montgomery_32.c | 0m16.07s | 354548 ko || +0m00.21s || 63792 ko | +1.30% | +17.99% 0m16.11s | 323148 ko | fiat-c/src/curve25519_scalar_32.c | 0m15.37s | 376208 ko || +0m00.74s || -53060 ko | +4.81% | -14.10% 0m16.09s | 429024 ko | fiat-rust/src/curve25519_scalar_32.rs | 0m16.31s | 405604 ko || -0m00.21s || 23420 ko | -1.34% | +5.77% 0m16.07s | 392824 ko | fiat-bedrock2/src/p256_32.c | 0m15.76s | 418500 ko || +0m00.31s || -25676 ko | +1.96% | -6.13% 0m15.73s | 2026232 ko | ExtractionHaskell/unsaturated_solinas.hs | 0m15.70s | 1972880 ko || +0m00.03s || 53352 ko | +0.19% | +2.70% 0m15.67s | 400632 ko | fiat-java/src/FiatP256.java | 0m15.23s | 347976 ko || +0m00.43s || 52656 ko | +2.88% | +15.13% 0m15.67s | 426864 ko | fiat-rust/src/p256_32.rs | 0m15.43s | 436980 ko || +0m00.24s || -10116 ko | +1.55% | -2.31% 0m15.65s | 433612 ko | fiat-go/32/p256/p256.go | 0m15.46s | 363800 ko || +0m00.18s || 69812 ko | +1.22% | +19.18% 0m15.65s | 332588 ko | fiat-zig/src/p256_32.zig | 0m15.39s | 407124 ko || +0m00.25s || -74536 ko | +1.68% | -18.30% 0m15.56s | 2010528 ko | ExtractionHaskell/with_bedrock2_dettman_multiplication.hs | 0m15.92s | 2039152 ko || -0m00.35s || -28624 ko | -2.26% | -1.40% 0m15.53s | 2010444 ko | ExtractionHaskell/bedrock2_dettman_multiplication.hs | 0m15.68s | 2040720 ko || -0m00.15s || -30276 ko | -0.95% | -1.48% 0m15.40s | 332344 ko | fiat-c/src/p256_32.c | 0m15.21s | 376848 ko || +0m00.18s || -44504 ko | +1.24% | -11.80% 0m15.29s | 1948284 ko | ExtractionHaskell/with_bedrock2_base_conversion.hs | 0m15.53s | 2016228 ko || -0m00.24s || -67944 ko | -1.54% | -3.36% 0m15.23s | 1959948 ko | ExtractionHaskell/with_bedrock2_saturated_solinas.hs | 0m15.52s | 2013692 ko || -0m00.28s || -53744 ko | -1.86% | -2.66% 0m15.22s | 1958896 ko | ExtractionHaskell/dettman_multiplication.hs | 0m15.10s | 1903264 ko || +0m00.12s || 55632 ko | +0.79% | +2.92% 0m15.15s | 1948672 ko | ExtractionHaskell/bedrock2_base_conversion.hs | 0m15.63s | 2015624 ko || -0m00.48s || -66952 ko | -3.07% | -3.32% 0m15.12s | 445592 ko | fiat-json/src/p256_32.json | 0m15.46s | 416848 ko || -0m00.34s || 28744 ko | -2.19% | +6.89% 0m15.11s | 1960852 ko | ExtractionHaskell/bedrock2_saturated_solinas.hs | 0m15.44s | 2013416 ko || -0m00.33s || -52564 ko | -2.13% | -2.61% 0m14.88s | 1955220 ko | ExtractionHaskell/base_conversion.hs | 0m14.93s | 1897380 ko || -0m00.04s || 57840 ko | -0.33% | +3.04% 0m14.86s | 1921176 ko | ExtractionHaskell/saturated_solinas.hs | 0m14.96s | 1916928 ko || -0m00.10s || 4248 ko | -0.66% | +0.22% 0m11.31s | 199152 ko | fiat-bedrock2/src/p384_scalar_64.c | 0m11.18s | 194984 ko || +0m00.13s || 4168 ko | +1.16% | +2.13% 0m11.21s | 199888 ko | fiat-go/64/p384scalar/p384scalar.go | 0m11.15s | 164128 ko || +0m00.06s || 35760 ko | +0.53% | +21.78% 0m11.17s | 1708132 ko | Bedrock/Field/Synthesis/New/WordByWordMontgomery.vo | 0m11.30s | 1703996 ko || -0m00.13s || 4136 ko | -1.15% | +0.24% 0m10.92s | 1035420 ko | BoundsPipeline.vo | 0m11.20s | 1036784 ko || -0m00.27s || -1364 ko | -2.49% | -0.13% 0m10.91s | 169592 ko | fiat-json/src/p384_scalar_64.json | 0m10.81s | 184092 ko || +0m00.09s || -14500 ko | +0.92% | -7.87% 0m10.87s | 176344 ko | fiat-zig/src/p384_scalar_64.zig | 0m10.57s | 192372 ko || +0m00.29s || -16028 ko | +2.83% | -8.33% 0m10.73s | 166616 ko | fiat-rust/src/p384_scalar_64.rs | 0m10.84s | 176032 ko || -0m00.10s || -9416 ko | -1.01% | -5.34% 0m10.58s | 154460 ko | fiat-c/src/p384_scalar_64.c | 0m10.71s | 142320 ko || -0m00.13s || 12140 ko | -1.21% | +8.53% 0m10.15s | 1304732 ko | Bedrock/End2End/X25519/MontgomeryLadderProperties.vo | 0m10.24s | 1304688 ko || -0m00.08s || 44 ko | -0.87% | +0.00% 0m09.59s | 195012 ko | fiat-bedrock2/src/p384_64.c | 0m09.53s | 205984 ko || +0m00.06s || -10972 ko | +0.62% | -5.32% 0m09.54s | 255304 ko | fiat-bedrock2/src/p224_32.c | 0m09.46s | 246228 ko || +0m00.07s || 9076 ko | +0.84% | +3.68% 0m09.38s | 235988 ko | fiat-json/src/p224_32.json | 0m09.14s | 243676 ko || +0m00.24s || -7688 ko | +2.62% | -3.15% 0m09.29s | 195668 ko | fiat-json/src/p384_64.json | 0m09.24s | 173592 ko || +0m00.04s || 22076 ko | +0.54% | +12.71% 0m09.26s | 245908 ko | fiat-java/src/FiatP224.java | 0m09.02s | 210104 ko || +0m00.24s || 35804 ko | +2.66% | +17.04% 0m09.25s | 170924 ko | fiat-go/64/p384/p384.go | 0m09.35s | 160844 ko || -0m00.09s || 10080 ko | -1.06% | +6.26% 0m09.20s | 1040012 ko | PushButtonSynthesis/BaseConversion.vo | 0m09.41s | 1037912 ko || -0m00.21s || 2100 ko | -2.23% | +0.20% 0m09.14s | 225000 ko | fiat-go/32/p224/p224.go | 0m09.39s | 230444 ko || -0m00.25s || -5444 ko | -2.66% | -2.36% 0m09.11s | 253348 ko | fiat-rust/src/p224_32.rs | 0m09.20s | 245628 ko || -0m00.08s || 7720 ko | -0.97% | +3.14% 0m09.11s | 166552 ko | fiat-zig/src/p384_64.zig | 0m09.31s | 141172 ko || -0m00.20s || 25380 ko | -2.14% | +17.97% 0m09.10s | 167020 ko | fiat-c/src/p384_64.c | 0m09.28s | 146704 ko || -0m00.17s || 20316 ko | -1.93% | +13.84% 0m09.09s | 254100 ko | fiat-zig/src/p224_32.zig | 0m08.87s | 222884 ko || +0m00.22s || 31216 ko | +2.48% | +14.00% 0m08.96s | 232884 ko | fiat-c/src/p224_32.c | 0m08.97s | 240356 ko || -0m00.00s || -7472 ko | -0.11% | -3.10% 0m08.73s | 147896 ko | fiat-rust/src/p384_64.rs | 0m09.22s | 165796 ko || -0m00.49s || -17900 ko | -5.31% | -10.79% 0m08.26s | 1009244 ko | PushButtonSynthesis/SmallExamples.vo | 0m08.45s | 1008344 ko || -0m00.18s || 900 ko | -2.24% | +0.08% 0m08.26s | 119472 ko | fiat-json/src/p448_solinas_32.json | 0m08.29s | 123884 ko || -0m00.02s || -4412 ko | -0.36% | -3.56% 0m08.16s | 1050960 ko | PushButtonSynthesis/Primitives.vo | 0m08.27s | 1050876 ko || -0m00.10s || 84 ko | -1.33% | +0.00% 0m07.93s | 591100 ko | Rewriter/Passes/RelaxBitwidthAdcSbb.vo | 0m08.19s | 591176 ko || -0m00.25s || -76 ko | -3.17% | -0.01% 0m07.91s | 61592 ko | fiat-zig/src/p448_solinas_32.zig | 0m07.94s | 61704 ko || -0m00.03s || -112 ko | -0.37% | -0.18% 0m07.89s | 59392 ko | fiat-c/src/p448_solinas_32.c | 0m07.94s | 56764 ko || -0m00.05s || 2628 ko | -0.62% | +4.62% 0m07.88s | 61076 ko | fiat-rust/src/p448_solinas_32.rs | 0m08.00s | 57600 ko || -0m00.12s || 3476 ko | -1.50% | +6.03% 0m07.12s | 1043600 ko | PushButtonSynthesis/SolinasReduction.vo | 0m07.38s | 1043572 ko || -0m00.25s || 28 ko | -3.52% | +0.00% 0m06.64s | 52476 ko | fiat-go/64/p521/p521.go | 0m06.25s | 49644 ko || +0m00.38s || 2832 ko | +6.23% | +5.70% 0m06.27s | 574792 ko | Rewriter/Passes/NoSelect.vo | 0m06.41s | 577812 ko || -0m00.14s || -3020 ko | -2.18% | -0.52% 0m06.26s | 1048224 ko | PushButtonSynthesis/BarrettReduction.vo | 0m06.20s | 1051084 ko || +0m00.05s || -2860 ko | +0.96% | -0.27% 0m06.22s | 1132216 ko | CLI.vo | 0m06.30s | 1130060 ko || -0m00.08s || 2156 ko | -1.26% | +0.19% 0m05.96s | 1144288 ko | Bedrock/Field/Synthesis/New/UnsaturatedSolinas.vo | 0m06.15s | 1142040 ko || -0m00.19s || 2248 ko | -3.08% | +0.19% 0m05.54s | 68872 ko | fiat-bedrock2/src/p521_64.c | 0m05.56s | 68208 ko || -0m00.01s || 664 ko | -0.35% | +0.97% 0m05.42s | 51340 ko | fiat-json/src/p521_64.json | 0m05.43s | 51520 ko || -0m00.00s || -180 ko | -0.18% | -0.34% 0m05.30s | 37436 ko | fiat-zig/src/p521_64.zig | 0m04.77s | 37212 ko || +0m00.53s || 224 ko | +11.11% | +0.60% 0m04.82s | 37880 ko | fiat-rust/src/p521_64.rs | 0m05.45s | 38100 ko || -0m00.62s || -220 ko | -11.55% | -0.57% 0m04.76s | 37380 ko | fiat-c/src/p521_64.c | 0m05.37s | 37352 ko || -0m00.61s || 28 ko | -11.35% | +0.07% 0m04.66s | 1038068 ko | PushButtonSynthesis/DettmanMultiplication.vo | 0m04.63s | 1038160 ko || +0m00.03s || -92 ko | +0.64% | -0.00% 0m04.51s | 1074152 ko | Bedrock/Field/Translation/Proofs/ValidComputable/Cmd.vo | 0m04.59s | 1074372 ko || -0m00.08s || -220 ko | -1.74% | -0.02% 0m04.24s | 1047736 ko | PushButtonSynthesis/SaturatedSolinas.vo | 0m04.41s | 1047768 ko || -0m00.16s || -32 ko | -3.85% | -0.00% 0m04.01s | 1501044 ko | Bedrock/Everything.vo | 0m04.01s | 1501100 ko || +0m00.00s || -56 ko | +0.00% | -0.00% 0m03.81s | 1051824 ko | PushButtonSynthesis/FancyMontgomeryReduction.vo | 0m03.77s | 1050712 ko || +0m00.04s || 1112 ko | +1.06% | +0.10% 0m03.50s | 1367412 ko | Everything.vo | 0m03.59s | 1367556 ko || -0m00.08s || -144 ko | -2.50% | -0.01% 0m03.06s | 537952 ko | Rewriter/Passes/ArithWithRelaxedCasts.vo | 0m03.15s | 539144 ko || -0m00.08s || -1192 ko | -2.85% | -0.22% 0m02.98s | 1013864 ko | Bedrock/Field/Translation/Cmd.vo | 0m02.98s | 1014664 ko || +0m00.00s || -800 ko | +0.00% | -0.07% 0m02.96s | 1083180 ko | Rewriter/PerfTesting/Core.vo | 0m03.04s | 1083012 ko || -0m00.08s || 168 ko | -2.63% | +0.01% 0m02.94s | 70004 ko | fiat-go/64/secp256k1montgomeryscalar/secp256k1montgomeryscalar.go | 0m02.80s | 69640 ko || +0m00.14s || 364 ko | +5.00% | +0.52% 0m02.93s | 69652 ko | fiat-go/64/p256scalar/p256scalar.go | 0m02.77s | 69300 ko || +0m00.16s || 352 ko | +5.77% | +0.50% 0m02.92s | 539268 ko | Rewriter/Passes/AddAssocLeft.vo | 0m02.99s | 537676 ko || -0m00.07s || 1592 ko | -2.34% | +0.29% 0m02.90s | 1126644 ko | StandaloneHaskellMain.vo | 0m02.85s | 1124644 ko || +0m00.04s || 2000 ko | +1.75% | +0.17% 0m02.86s | 1355272 ko | PerfTesting/PerfTestPrint.vo | 0m02.97s | 1353376 ko || -0m00.11s || 1896 ko | -3.70% | +0.14% 0m02.83s | 74888 ko | fiat-json/src/p256_scalar_64.json | 0m02.73s | 69468 ko || +0m00.10s || 5420 ko | +3.66% | +7.80% 0m02.79s | 84092 ko | fiat-bedrock2/src/p256_scalar_64.c | 0m02.79s | 86516 ko || +0m00.00s || -2424 ko | +0.00% | -2.80% 0m02.76s | 87368 ko | fiat-bedrock2/src/secp256k1_montgomery_scalar_64.c | 0m02.77s | 86936 ko || -0m00.01s || 432 ko | -0.36% | +0.49% 0m02.76s | 57416 ko | fiat-go/64/p448solinas/p448solinas.go | 0m02.58s | 51820 ko || +0m00.17s || 5596 ko | +6.97% | +10.79% 0m02.76s | 73888 ko | fiat-json/src/secp256k1_montgomery_scalar_64.json | 0m02.73s | 75908 ko || +0m00.02s || -2020 ko | +1.09% | -2.66% 0m02.74s | 1077636 ko | Bedrock/Field/Stringification/Stringification.vo | 0m02.78s | 1076572 ko || -0m00.03s || 1064 ko | -1.43% | +0.09% 0m02.73s | 1010148 ko | Bedrock/Field/Translation/Func.vo | 0m02.82s | 1008988 ko || -0m00.08s || 1160 ko | -3.19% | +0.11% 0m02.72s | 64580 ko | fiat-zig/src/p256_scalar_64.zig | 0m02.71s | 62528 ko || +0m00.01s || 2052 ko | +0.36% | +3.28% 0m02.69s | 63552 ko | fiat-go/64/secp256k1montgomery/secp256k1montgomery.go | 0m02.51s | 67572 ko || +0m00.18s || -4020 ko | +7.17% | -5.94% 0m02.69s | 61992 ko | fiat-rust/src/p256_scalar_64.rs | 0m02.75s | 66124 ko || -0m00.06s || -4132 ko | -2.18% | -6.24% 0m02.69s | 63084 ko | fiat-rust/src/secp256k1_montgomery_scalar_64.rs | 0m02.71s | 66576 ko || -0m00.02s || -3492 ko | -0.73% | -5.24% 0m02.68s | 59288 ko | fiat-c/src/p256_scalar_64.c | 0m02.70s | 62336 ko || -0m00.02s || -3048 ko | -0.74% | -4.88% 0m02.67s | 1068128 ko | Bedrock/Field/Translation/Proofs/ValidComputable/Func.vo | 0m02.80s | 1068044 ko || -0m00.12s || 84 ko | -4.64% | +0.00% 0m02.67s | 68464 ko | fiat-c/src/secp256k1_montgomery_scalar_64.c | 0m02.70s | 61160 ko || -0m00.03s || 7304 ko | -1.11% | +11.94% 0m02.66s | 1153388 ko | Bedrock/Standalone/StandaloneHaskellMain.vo | 0m02.71s | 1151268 ko || -0m00.04s || 2120 ko | -1.84% | +0.18% 0m02.66s | 64136 ko | fiat-zig/src/secp256k1_montgomery_scalar_64.zig | 0m02.65s | 62200 ko || +0m00.01s || 1936 ko | +0.37% | +3.11% 0m02.65s | 1103644 ko | StandaloneOCamlMain.vo | 0m02.61s | 1103620 ko || +0m00.04s || 24 ko | +1.53% | +0.00% 0m02.64s | 1151352 ko | Bedrock/Standalone/StandaloneOCamlMain.vo | 0m02.71s | 1151372 ko || -0m00.06s || -20 ko | -2.58% | -0.00% 0m02.57s | 535856 ko | Rewriter/Passes/FlattenThunkedRects.vo | 0m02.66s | 535192 ko || -0m00.09s || 664 ko | -3.38% | +0.12% 0m02.52s | 84488 ko | fiat-bedrock2/src/secp256k1_montgomery_64.c | 0m02.47s | 93372 ko || +0m00.04s || -8884 ko | +2.02% | -9.51% 0m02.52s | 68592 ko | fiat-json/src/secp256k1_montgomery_64.json | 0m02.46s | 75364 ko || +0m00.06s || -6772 ko | +2.43% | -8.98% 0m02.49s | 1073080 ko | Bedrock/Field/Synthesis/New/ComputedOp.vo | 0m02.66s | 1071116 ko || -0m00.16s || 1964 ko | -6.39% | +0.18% 0m02.48s | 1137168 ko | Rewriter/PerfTesting/StandaloneOCamlMain.vo | 0m02.76s | 1135252 ko || -0m00.27s || 1916 ko | -10.14% | +0.16% 0m02.46s | 63516 ko | fiat-go/64/curve25519scalar/curve25519scalar.go | 0m02.31s | 70228 ko || +0m00.14s || -6712 ko | +6.49% | -9.55% 0m02.42s | 1051400 ko | Bedrock/Field/Translation/Parameters/Defaults32.vo | 0m02.46s | 1051612 ko || -0m00.04s || -212 ko | -1.62% | -0.02% 0m02.42s | 60544 ko | fiat-rust/src/secp256k1_montgomery_64.rs | 0m02.42s | 60264 ko || +0m00.00s || 280 ko | +0.00% | +0.46% 0m02.42s | 65732 ko | fiat-zig/src/secp256k1_montgomery_64.zig | 0m02.40s | 57992 ko || +0m00.02s || 7740 ko | +0.83% | +13.34% 0m02.41s | 60148 ko | fiat-c/src/secp256k1_montgomery_64.c | 0m02.44s | 60532 ko || -0m00.02s || -384 ko | -1.22% | -0.63% 0m02.37s | 1051572 ko | Bedrock/Field/Translation/Parameters/Defaults64.vo | 0m02.46s | 1051524 ko || -0m00.08s || 48 ko | -3.65% | +0.00% 0m02.35s | 1050808 ko | Bedrock/Field/Translation/Parameters/FE310.vo | 0m02.42s | 1051668 ko || -0m00.06s || -860 ko | -2.89% | -0.08% 0m02.35s | 78788 ko | fiat-bedrock2/src/curve25519_scalar_64.c | 0m02.35s | 77892 ko || +0m00.00s || 896 ko | +0.00% | +1.15% 0m02.34s | 1047512 ko | Bedrock/Field/Translation/Parameters/Defaults.vo | 0m02.33s | 1047596 ko || +0m00.00s || -84 ko | +0.42% | -0.00% 0m02.31s | 69108 ko | fiat-json/src/curve25519_scalar_64.json | 0m02.30s | 69200 ko || +0m00.01s || -92 ko | +0.43% | -0.13% 0m02.28s | 60412 ko | fiat-rust/src/curve25519_scalar_64.rs | 0m02.31s | 64076 ko || -0m00.03s || -3664 ko | -1.29% | -5.71% 0m02.25s | 67320 ko | fiat-c/src/curve25519_scalar_64.c | 0m02.29s | 59928 ko || -0m00.04s || 7392 ko | -1.74% | +12.33% 0m02.25s | 57700 ko | fiat-zig/src/curve25519_scalar_64.zig | 0m02.25s | 63136 ko || +0m00.00s || -5436 ko | +0.00% | -8.60% 0m02.17s | 541552 ko | Rewriter/Passes/UnfoldValueBarrier.vo | 0m02.27s | 541600 ko || -0m00.10s || -48 ko | -4.40% | -0.00% 0m02.10s | 540980 ko | Rewriter/Passes/StripLiteralCasts.vo | 0m02.20s | 539800 ko || -0m00.10s || 1180 ko | -4.54% | +0.21% 0m02.10s | 63292 ko | fiat-go/64/p224/p224.go | 0m01.86s | 61856 ko || +0m00.24s || 1436 ko | +12.90% | +2.32% 0m02.08s | 38528 ko | fiat-go/32/curve25519/curve25519.go | 0m02.07s | 36104 ko || +0m00.01s || 2424 ko | +0.48% | +6.71% 0m02.07s | 68844 ko | fiat-bedrock2/src/p448_solinas_64.c | 0m02.13s | 66964 ko || -0m00.06s || 1880 ko | -2.81% | +2.80% 0m02.05s | 63476 ko | fiat-go/64/p256/p256.go | 0m01.84s | 62612 ko || +0m00.20s || 864 ko | +11.41% | +1.37% 0m02.02s | 69516 ko | fiat-bedrock2/src/curve25519_32.c | 0m01.99s | 64620 ko || +0m00.03s || 4896 ko | +1.50% | +7.57% 0m01.97s | 536652 ko | Rewriter/Passes/ToFancy.vo | 0m02.01s | 537484 ko || -0m00.03s || -832 ko | -1.99% | -0.15% 0m01.96s | 52072 ko | fiat-json/src/p448_solinas_64.json | 0m01.92s | 49556 ko || +0m00.04s || 2516 ko | +2.08% | +5.07% 0m01.91s | 78628 ko | fiat-bedrock2/src/p224_64.c | 0m01.91s | 79832 ko || +0m00.00s || -1204 ko | +0.00% | -1.50% 0m01.90s | 35620 ko | fiat-c/src/p448_solinas_64.c | 0m01.93s | 35532 ko || -0m00.03s || 88 ko | -1.55% | +0.24% 0m01.90s | 35992 ko | fiat-rust/src/p448_solinas_64.rs | 0m01.93s | 37888 ko || -0m00.03s || -1896 ko | -1.55% | -5.00% 0m01.90s | 36340 ko | fiat-zig/src/p448_solinas_64.zig | 0m01.90s | 38132 ko || +0m00.00s || -1792 ko | +0.00% | -4.69% 0m01.89s | 68480 ko | fiat-json/src/p224_64.json | 0m01.93s | 76344 ko || -0m00.04s || -7864 ko | -2.07% | -10.30% 0m01.85s | 79464 ko | fiat-bedrock2/src/p256_64.c | 0m01.85s | 80384 ko || +0m00.00s || -920 ko | +0.00% | -1.14% 0m01.84s | 69732 ko | fiat-json/src/p256_64.json | 0m01.85s | 68332 ko || -0m00.01s || 1400 ko | -0.54% | +2.04% 0m01.84s | 60888 ko | fiat-zig/src/p224_64.zig | 0m01.87s | 60200 ko || -0m00.03s || 688 ko | -1.60% | +1.14% 0m01.83s | 51832 ko | fiat-json/src/curve25519_32.json | 0m01.91s | 54384 ko || -0m00.07s || -2552 ko | -4.18% | -4.69% 0m01.82s | 57456 ko | fiat-zig/src/p256_64.zig | 0m01.79s | 57520 ko || +0m00.03s || -64 ko | +1.67% | -0.11% 0m01.81s | 60544 ko | fiat-rust/src/p224_64.rs | 0m01.87s | 61580 ko || -0m00.06s || -1036 ko | -3.20% | -1.68% 0m01.77s | 58112 ko | fiat-c/src/p224_64.c | 0m01.78s | 61864 ko || -0m00.01s || -3752 ko | -0.56% | -6.06% 0m01.77s | 60016 ko | fiat-rust/src/p256_64.rs | 0m01.78s | 60884 ko || -0m00.01s || -868 ko | -0.56% | -1.42% 0m01.76s | 36740 ko | fiat-java/src/FiatCurve25519.java | 0m01.70s | 35152 ko || +0m00.06s || 1588 ko | +3.52% | +4.51% 0m01.76s | 35116 ko | fiat-rust/src/curve25519_32.rs | 0m01.76s | 34160 ko || +0m00.00s || 956 ko | +0.00% | +2.79% 0m01.75s | 35380 ko | fiat-zig/src/curve25519_32.zig | 0m01.75s | 35084 ko || +0m00.00s || 296 ko | +0.00% | +0.84% 0m01.74s | 35840 ko | fiat-c/src/curve25519_32.c | 0m01.76s | 34260 ko || -0m00.02s || 1580 ko | -1.13% | +4.61% 0m01.74s | 65196 ko | fiat-c/src/p256_64.c | 0m01.76s | 62724 ko || -0m00.02s || 2472 ko | -1.13% | +3.94% 0m01.45s | 596340 ko | CompilersTestCases.vo | 0m01.51s | 596224 ko || -0m00.06s || 116 ko | -3.97% | +0.01% 0m01.44s | 53596 ko | fiat-bedrock2/src/secp256k1_dettman_32.c | 0m01.45s | 51196 ko || -0m00.01s || 2400 ko | -0.68% | +4.68% 0m01.28s | 42572 ko | fiat-json/src/secp256k1_dettman_32.json | 0m01.30s | 43796 ko || -0m00.02s || -1224 ko | -1.53% | -2.79% 0m01.22s | 25936 ko | fiat-c/src/secp256k1_dettman_32.c | 0m01.23s | 26436 ko || -0m00.01s || -500 ko | -0.81% | -1.89% 0m01.22s | 26988 ko | fiat-go/32/secp256k1dettman/secp256k1dettman.go | 0m01.26s | 26796 ko || -0m00.04s || 192 ko | -3.17% | +0.71% 0m01.22s | 27128 ko | fiat-java/src/FiatSecp256K1Dettman.java | 0m01.21s | 27648 ko || +0m00.01s || -520 ko | +0.82% | -1.88% 0m01.22s | 26456 ko | fiat-rust/src/secp256k1_dettman_32.rs | 0m01.24s | 26404 ko || -0m00.02s || 52 ko | -1.61% | +0.19% 0m01.20s | 26264 ko | fiat-zig/src/secp256k1_dettman_32.zig | 0m01.21s | 26620 ko || -0m00.01s || -356 ko | -0.82% | -1.33% 0m00.72s | 33336 ko | fiat-go/64/curve25519/curve25519.go | 0m00.62s | 33132 ko || +0m00.09s || 204 ko | +16.12% | +0.61% 0m00.63s | 438660 ko | Rewriter/Rules.vo | 0m00.63s | 436796 ko || +0m00.00s || 1864 ko | +0.00% | +0.42% 0m00.58s | 552492 ko | Rewriter/All.vo | 0m00.60s | 552492 ko || -0m00.02s || 0 ko | -3.33% | +0.00% 0m00.54s | 123656 ko | ExtractionOCaml/with_bedrock2_saturated_solinas.cmi | 0m00.54s | 122456 ko || +0m00.00s || 1200 ko | +0.00% | +0.97% 0m00.54s | 123868 ko | ExtractionOCaml/with_bedrock2_solinas_reduction.cmi | 0m00.55s | 122976 ko || -0m00.01s || 892 ko | -1.81% | +0.72% 0m00.54s | 120496 ko | ExtractionOCaml/with_bedrock2_word_by_word_montgomery.cmi | 0m00.56s | 122432 ko || -0m00.02s || -1936 ko | -3.57% | -1.58% 0m00.53s | 120220 ko | ExtractionOCaml/bedrock2_solinas_reduction.cmi | 0m00.54s | 120352 ko || -0m00.01s || -132 ko | -1.85% | -0.10% 0m00.53s | 122856 ko | ExtractionOCaml/unsaturated_solinas.cmi | 0m00.52s | 121012 ko || +0m00.01s || 1844 ko | +1.92% | +1.52% 0m00.53s | 122964 ko | ExtractionOCaml/with_bedrock2_unsaturated_solinas.cmi | 0m00.56s | 123648 ko || -0m00.03s || -684 ko | -5.35% | -0.55% 0m00.53s | 39636 ko | fiat-bedrock2/src/curve25519_64.c | 0m00.50s | 38928 ko || +0m00.03s || 708 ko | +6.00% | +1.81% 0m00.52s | 123624 ko | ExtractionOCaml/bedrock2_base_conversion.cmi | 0m00.53s | 123936 ko || -0m00.01s || -312 ko | -1.88% | -0.25% 0m00.52s | 120356 ko | ExtractionOCaml/dettman_multiplication.cmi | 0m00.50s | 120344 ko || +0m00.02s || 12 ko | +4.00% | +0.00% 0m00.52s | 123888 ko | ExtractionOCaml/with_bedrock2_base_conversion.cmi | 0m00.52s | 123416 ko || +0m00.00s || 472 ko | +0.00% | +0.38% 0m00.52s | 121844 ko | ExtractionOCaml/with_bedrock2_dettman_multiplication.cmi | 0m00.52s | 121848 ko || +0m00.00s || -4 ko | +0.00% | -0.00% 0m00.51s | 122700 ko | ExtractionOCaml/bedrock2_unsaturated_solinas.cmi | 0m00.53s | 123096 ko || -0m00.02s || -396 ko | -3.77% | -0.32% 0m00.50s | 120684 ko | ExtractionOCaml/base_conversion.cmi | 0m00.50s | 122432 ko || +0m00.00s || -1748 ko | +0.00% | -1.42% 0m00.50s | 120748 ko | ExtractionOCaml/bedrock2_word_by_word_montgomery.cmi | 0m00.57s | 120620 ko || -0m00.06s || 128 ko | -12.28% | +0.10% 0m00.50s | 120344 ko | ExtractionOCaml/saturated_solinas.cmi | 0m00.51s | 120300 ko || -0m00.01s || 44 ko | -1.96% | +0.03% 0m00.50s | 28344 ko | fiat-zig/src/curve25519_64.zig | 0m00.46s | 28560 ko || +0m00.03s || -216 ko | +8.69% | -0.75% 0m00.49s | 123236 ko | ExtractionOCaml/bedrock2_dettman_multiplication.cmi | 0m00.53s | 122576 ko || -0m00.04s || 660 ko | -7.54% | +0.53% 0m00.49s | 120500 ko | ExtractionOCaml/word_by_word_montgomery.cmi | 0m00.48s | 120356 ko || +0m00.01s || 144 ko | +2.08% | +0.11% 0m00.49s | 35980 ko | fiat-json/src/curve25519_64.json | 0m00.52s | 34660 ko || -0m00.03s || 1320 ko | -5.76% | +3.80% 0m00.49s | 28488 ko | fiat-rust/src/curve25519_64.rs | 0m00.47s | 27384 ko || +0m00.02s || 1104 ko | +4.25% | +4.03% 0m00.48s | 121720 ko | ExtractionOCaml/bedrock2_saturated_solinas.cmi | 0m00.52s | 122768 ko || -0m00.04s || -1048 ko | -7.69% | -0.85% 0m00.47s | 119616 ko | ExtractionOCaml/solinas_reduction.cmi | 0m00.49s | 120324 ko || -0m00.02s || -708 ko | -4.08% | -0.58% 0m00.47s | 28124 ko | fiat-c/src/curve25519_64.c | 0m00.45s | 28304 ko || +0m00.01s || -180 ko | +4.44% | -0.63% 0m00.44s | 37236 ko | fiat-go/64/curve25519solinas/curve25519solinas.go | 0m00.40s | 37736 ko || +0m00.03s || -500 ko | +9.99% | -1.32% 0m00.43s | 38744 ko | fiat-json/src/curve25519_solinas_64.json | 0m00.43s | 40512 ko || +0m00.00s || -1768 ko | +0.00% | -4.36% 0m00.43s | 38224 ko | fiat-rust/src/curve25519_solinas_64.rs | 0m00.41s | 37192 ko || +0m00.02s || 1032 ko | +4.87% | +2.77% 0m00.42s | 45732 ko | fiat-bedrock2/src/curve25519_solinas_64.c | 0m00.40s | 42468 ko || +0m00.01s || 3264 ko | +4.99% | +7.68% 0m00.42s | 37052 ko | fiat-zig/src/curve25519_solinas_64.zig | 0m00.41s | 36628 ko || +0m00.01s || 424 ko | +2.43% | +1.15% 0m00.38s | 37156 ko | fiat-c/src/curve25519_solinas_64.c | 0m00.42s | 37160 ko || -0m00.03s || -4 ko | -9.52% | -0.01% 0m00.29s | 26484 ko | fiat-go/32/poly1305/poly1305.go | 0m00.28s | 26668 ko || +0m00.00s || -184 ko | +3.57% | -0.68% 0m00.26s | 33824 ko | fiat-bedrock2/src/poly1305_32.c | 0m00.26s | 33836 ko || +0m00.00s || -12 ko | +0.00% | -0.03% 0m00.24s | 26896 ko | fiat-go/64/secp256k1dettman/secp256k1dettman.go | 0m00.22s | 26224 ko || +0m00.01s || 672 ko | +9.09% | +2.56% 0m00.24s | 26316 ko | fiat-java/src/FiatPoly1305.java | 0m00.22s | 25696 ko || +0m00.01s || 620 ko | +9.09% | +2.41% 0m00.24s | 31548 ko | fiat-json/src/poly1305_32.json | 0m00.24s | 31200 ko || +0m00.00s || 348 ko | +0.00% | +1.11% 0m00.23s | 26104 ko | fiat-c/src/poly1305_32.c | 0m00.21s | 25912 ko || +0m00.02s || 192 ko | +9.52% | +0.74% 0m00.23s | 27116 ko | fiat-go/64/poly1305/poly1305.go | 0m00.17s | 27576 ko || +0m00.06s || -460 ko | +35.29% | -1.66% 0m00.23s | 26228 ko | fiat-rust/src/poly1305_32.rs | 0m00.22s | 26228 ko || +0m00.01s || 0 ko | +4.54% | +0.00% 0m00.22s | 31180 ko | fiat-bedrock2/src/secp256k1_dettman_64.c | 0m00.23s | 30968 ko || -0m00.01s || 212 ko | -4.34% | +0.68% 0m00.21s | 25520 ko | fiat-zig/src/poly1305_32.zig | 0m00.21s | 25420 ko || +0m00.00s || 100 ko | +0.00% | +0.39% 0m00.20s | 25196 ko | fiat-json/src/secp256k1_dettman_64.json | 0m00.19s | 24872 ko || +0m00.01s || 324 ko | +5.26% | +1.30% 0m00.20s | 22184 ko | fiat-zig/src/secp256k1_dettman_64.zig | 0m00.18s | 21864 ko || +0m00.02s || 320 ko | +11.11% | +1.46% 0m00.18s | 21800 ko | fiat-c/src/secp256k1_dettman_64.c | 0m00.18s | 21800 ko || +0m00.00s || 0 ko | +0.00% | +0.00% 0m00.18s | 22084 ko | fiat-rust/src/secp256k1_dettman_64.rs | 0m00.18s | 22376 ko || +0m00.00s || -292 ko | +0.00% | -1.30% 0m00.17s | 61932 ko | ExtractionOCaml/perf_unsaturated_solinas.cmi | 0m00.19s | 62248 ko || -0m00.01s || -316 ko | -10.52% | -0.50% 0m00.16s | 62528 ko | ExtractionOCaml/perf_word_by_word_montgomery.cmi | 0m00.16s | 61452 ko || +0m00.00s || 1076 ko | +0.00% | +1.75% 0m00.15s | 28964 ko | fiat-json/src/poly1305_64.json | 0m00.14s | 27736 ko || +0m00.00s || 1228 ko | +7.14% | +4.42% 0m00.13s | 25196 ko | fiat-rust/src/poly1305_64.rs | 0m00.12s | 24336 ko || +0m00.01s || 860 ko | +8.33% | +3.53% 0m00.12s | 29576 ko | fiat-bedrock2/src/poly1305_64.c | 0m00.12s | 29648 ko || +0m00.00s || -72 ko | +0.00% | -0.24% 0m00.12s | 24992 ko | fiat-c/src/poly1305_64.c | 0m00.12s | 24612 ko || +0m00.00s || 380 ko | +0.00% | +1.54% 0m00.12s | 24928 ko | fiat-zig/src/poly1305_64.zig | 0m00.13s | 24612 ko || -0m00.01s || 316 ko | -7.69% | +1.28% ``` </p> </details>
For https://github.com/mit-plv/fiat-crypto/pull/1609 We don't yet include the ones that are higher-order-than 3, those need more debugging. Co-authored-by: Andres Erbsen <[email protected]> <details><summary>Timing Diff</summary> <p> ``` After | Peak Mem | File Name | Before | Peak Mem || Change || Change (mem) | % Change | % Change (mem) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 119m55.01s | 2852288 ko | Total Time / Peak Mem | 116m54.82s | 2852504 ko || +3m00.19s || -216 ko | +2.56% | -0.00% ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 4m23.28s | 1922200 ko | Rewriter/Passes/ArithWithCasts.vo | 3m44.64s | 1804812 ko || +0m38.63s || 117388 ko | +17.20% | +6.50% 1m56.74s | 1630248 ko | fiat-java/src/FiatP384Scalar.java | 1m37.68s | 1868416 ko || +0m19.06s || -238168 ko | +19.51% | -12.74% 1m58.86s | 1834476 ko | fiat-bedrock2/src/p384_32.c | 1m40.20s | 1821748 ko || +0m18.65s || 12728 ko | +18.62% | +0.69% 1m57.91s | 1645388 ko | fiat-json/src/p384_scalar_32.json | 1m39.64s | 2106288 ko || +0m18.26s || -460900 ko | +18.33% | -21.88% 0m55.68s | 1150564 ko | Rewriter/Passes/Arith.vo | 0m40.86s | 1092012 ko || +0m14.82s || 58552 ko | +36.27% | +5.36% 2m00.58s | 2234976 ko | fiat-bedrock2/src/p384_scalar_32.c | 1m47.08s | 2226524 ko || +0m13.50s || 8452 ko | +12.60% | +0.37% 1m56.68s | 1764652 ko | fiat-java/src/FiatP384.java | 1m44.50s | 1969328 ko || +0m12.18s || -204676 ko | +11.65% | -10.39% 1m54.76s | 1908628 ko | fiat-json/src/p384_32.json | 1m43.69s | 2004176 ko || +0m11.06s || -95548 ko | +10.67% | -4.76% 1m57.28s | 1615084 ko | fiat-zig/src/p384_scalar_32.zig | 1m46.91s | 1733780 ko || +0m10.37s || -118696 ko | +9.69% | -6.84% 1m54.55s | 2074740 ko | fiat-zig/src/p384_32.zig | 1m44.61s | 1626180 ko || +0m09.93s || 448560 ko | +9.50% | +27.58% 1m55.94s | 2145952 ko | fiat-go/32/p384scalar/p384scalar.go | 1m48.27s | 1630928 ko || +0m07.66s || 515024 ko | +7.08% | +31.57% 1m57.76s | 1764936 ko | fiat-rust/src/p384_scalar_32.rs | 1m51.87s | 1768464 ko || +0m05.88s || -3528 ko | +5.26% | -0.19% 1m54.58s | 1597680 ko | fiat-rust/src/p384_32.rs | 1m48.64s | 1718060 ko || +0m05.93s || -120380 ko | +5.46% | -7.00% 1m54.56s | 1708700 ko | fiat-c/src/p384_scalar_32.c | 1m49.11s | 1518820 ko || +0m05.45s || 189880 ko | +4.99% | +12.50% 1m51.99s | 1734444 ko | fiat-c/src/p384_32.c | 1m46.30s | 1630176 ko || +0m05.69s || 104268 ko | +5.35% | +6.39% 1m45.33s | 1889064 ko | Bedrock/End2End/X25519/AddPrecomputed.vo | 1m49.74s | 1889060 ko || -0m04.41s || 4 ko | -4.01% | +0.00% 5m27.35s | 2852288 ko | Bedrock/Field/Synthesis/Examples/p224_64_new.vo | 5m31.22s | 2852504 ko || -0m03.87s || -216 ko | -1.16% | -0.00% 2m33.52s | 1607452 ko | Rewriter/Passes/NBE.vo | 2m37.17s | 1607512 ko || -0m03.65s || -60 ko | -2.32% | -0.00% 0m37.77s | 110828 ko | fiat-json/src/p521_32.json | 0m33.99s | 114180 ko || +0m03.78s || -3352 ko | +11.12% | -2.93% 0m37.53s | 62756 ko | fiat-java/src/FiatP521.java | 0m33.77s | 62456 ko || +0m03.75s || 300 ko | +11.13% | +0.48% 1m50.62s | 1393276 ko | Rewriter/Passes/ToFancyWithCasts.vo | 1m53.15s | 1392880 ko || -0m02.53s || 396 ko | -2.23% | +0.02% 0m42.34s | 1859688 ko | ExtractionOCaml/bedrock2_saturated_solinas | 0m40.29s | 1851720 ko || +0m02.05s || 7968 ko | +5.08% | +0.43% 0m39.48s | 1769316 ko | ExtractionOCaml/base_conversion | 0m41.92s | 1624120 ko || -0m02.44s || 145196 ko | -5.82% | +8.93% 1m49.94s | 2247636 ko | Fancy/Barrett256.vo | 1m51.28s | 2284788 ko || -0m01.34s || -37152 ko | -1.20% | -1.62% 1m47.35s | 1832408 ko | fiat-go/32/p384/p384.go | 1m49.23s | 1724040 ko || -0m01.87s || 108368 ko | -1.72% | +6.28% 1m32.25s | 2164300 ko | SlowPrimeSynthesisExamples.vo | 1m33.38s | 2139896 ko || -0m01.12s || 24404 ko | -1.21% | +1.14% 0m51.90s | 1016836 ko | Rewriter/Passes/MultiRetSplit.vo | 0m53.14s | 1016808 ko || -0m01.24s || 28 ko | -2.33% | +0.00% 0m47.25s | 2146984 ko | ExtractionOCaml/solinas_reduction | 0m45.91s | 2147072 ko || +0m01.34s || -88 ko | +2.91% | -0.00% 0m45.18s | 2146856 ko | ExtractionOCaml/word_by_word_montgomery | 0m46.83s | 2147056 ko || -0m01.64s || -200 ko | -3.52% | -0.00% 0m43.40s | 1864240 ko | ExtractionOCaml/bedrock2_dettman_multiplication | 0m41.96s | 1870364 ko || +0m01.43s || -6124 ko | +3.43% | -0.32% 0m41.82s | 1863680 ko | ExtractionOCaml/unsaturated_solinas | 0m43.45s | 1863368 ko || -0m01.63s || 312 ko | -3.75% | +0.01% 0m29.25s | 1544592 ko | StandaloneDebuggingExamples.vo | 0m30.51s | 1556744 ko || -0m01.26s || -12152 ko | -4.12% | -0.78% 0m16.94s | 283032 ko | fiat-go/64/p434/p434.go | 0m18.07s | 247128 ko || -0m01.12s || 35904 ko | -6.25% | +14.52% 0m16.74s | 2204356 ko | ExtractionHaskell/with_bedrock2_solinas_reduction.hs | 0m17.83s | 2237008 ko || -0m01.08s || -32652 ko | -6.11% | -1.45% 0m16.25s | 253040 ko | fiat-rust/src/p434_64.rs | 0m17.99s | 278560 ko || -0m01.73s || -25520 ko | -9.67% | -9.16% 8m28.15s | 2591812 ko | Bedrock/End2End/X25519/GarageDoor.vo | 8m27.82s | 2587848 ko || +0m00.32s || 3964 ko | +0.06% | +0.15% 1m51.16s | 1612836 ko | Bedrock/End2End/X25519/Field25519.vo | 1m52.02s | 1604084 ko || -0m00.86s || 8752 ko | -0.76% | +0.54% 0m56.72s | 707388 ko | Rewriter/RulesProofs.vo | 0m55.84s | 703908 ko || +0m00.87s || 3480 ko | +1.57% | +0.49% 0m49.15s | 2147776 ko | ExtractionOCaml/bedrock2_solinas_reduction | 0m48.43s | 2147920 ko || +0m00.71s || -144 ko | +1.48% | -0.00% 0m48.64s | 1869620 ko | Fancy/Montgomery256.vo | 0m48.94s | 1855572 ko || -0m00.29s || 14048 ko | -0.61% | +0.75% 0m48.41s | 2147988 ko | ExtractionOCaml/with_bedrock2_word_by_word_montgomery | 0m48.03s | 2147920 ko || +0m00.37s || 68 ko | +0.79% | +0.00% 0m48.12s | 2148012 ko | ExtractionOCaml/bedrock2_word_by_word_montgomery | 0m47.94s | 2147964 ko || +0m00.17s || 48 ko | +0.37% | +0.00% 0m47.07s | 2148072 ko | ExtractionOCaml/bedrock2_unsaturated_solinas | 0m46.98s | 2147976 ko || +0m00.09s || 96 ko | +0.19% | +0.00% 0m46.31s | 2148036 ko | ExtractionOCaml/with_bedrock2_unsaturated_solinas | 0m46.12s | 2147932 ko || +0m00.19s || 104 ko | +0.41% | +0.00% 0m42.55s | 1864184 ko | ExtractionOCaml/bedrock2_base_conversion | 0m41.57s | 1864708 ko || +0m00.97s || -524 ko | +2.35% | -0.02% 0m42.07s | 1864464 ko | ExtractionOCaml/with_bedrock2_base_conversion | 0m41.20s | 1823744 ko || +0m00.86s || 40720 ko | +2.11% | +2.23% 0m41.68s | 1858816 ko | ExtractionOCaml/with_bedrock2_saturated_solinas | 0m40.96s | 1851212 ko || +0m00.71s || 7604 ko | +1.75% | +0.41% 0m41.66s | 1859960 ko | ExtractionOCaml/with_bedrock2_dettman_multiplication | 0m41.21s | 1851288 ko || +0m00.44s || 8672 ko | +1.09% | +0.46% 0m41.50s | 1857940 ko | ExtractionOCaml/with_bedrock2_solinas_reduction | 0m41.06s | 1849540 ko || +0m00.43s || 8400 ko | +1.07% | +0.45% 0m40.74s | 62064 ko | fiat-go/32/p521/p521.go | 0m41.26s | 68256 ko || -0m00.51s || -6192 ko | -1.26% | -9.07% 0m40.14s | 1864708 ko | ExtractionOCaml/dettman_multiplication | 0m40.52s | 1786504 ko || -0m00.38s || 78204 ko | -0.93% | +4.37% 0m38.85s | 149624 ko | fiat-bedrock2/src/p521_32.c | 0m38.98s | 143940 ko || -0m00.12s || 5684 ko | -0.33% | +3.94% 0m38.54s | 1775188 ko | ExtractionOCaml/saturated_solinas | 0m38.71s | 1764700 ko || -0m00.17s || 10488 ko | -0.43% | +0.59% 0m37.51s | 62500 ko | fiat-zig/src/p521_32.zig | 0m37.39s | 59332 ko || +0m00.11s || 3168 ko | +0.32% | +5.33% 0m37.48s | 1294192 ko | Bedrock/End2End/X25519/GarageDoorTop.vo | 0m37.27s | 1292880 ko || +0m00.20s || 1312 ko | +0.56% | +0.10% 0m37.44s | 66780 ko | fiat-c/src/p521_32.c | 0m37.77s | 60280 ko || -0m00.33s || 6500 ko | -0.87% | +10.78% 0m37.42s | 60608 ko | fiat-rust/src/p521_32.rs | 0m37.83s | 61900 ko || -0m00.40s || -1292 ko | -1.08% | -2.08% 0m37.11s | 2378444 ko | ExtractionOCaml/bedrock2_solinas_reduction.ml | 0m37.46s | 2364772 ko || -0m00.35s || 13672 ko | -0.93% | +0.57% 0m36.36s | 2319684 ko | ExtractionOCaml/with_bedrock2_word_by_word_montgomery.ml | 0m36.69s | 2362052 ko || -0m00.32s || -42368 ko | -0.89% | -1.79% 0m36.34s | 2322608 ko | ExtractionOCaml/bedrock2_word_by_word_montgomery.ml | 0m36.87s | 2363400 ko || -0m00.52s || -40792 ko | -1.43% | -1.72% 0m35.65s | 2239920 ko | ExtractionOCaml/solinas_reduction.ml | 0m35.60s | 2244256 ko || +0m00.04s || -4336 ko | +0.14% | -0.19% 0m34.94s | 1413516 ko | ExtractionOCaml/perf_word_by_word_montgomery | 0m34.37s | 1401160 ko || +0m00.57s || 12356 ko | +1.65% | +0.88% 0m34.88s | 1413452 ko | ExtractionOCaml/perf_unsaturated_solinas | 0m34.36s | 1398860 ko || +0m00.52s || 14592 ko | +1.51% | +1.04% 0m34.62s | 1284740 ko | Bedrock/End2End/X25519/MontgomeryLadder.vo | 0m35.00s | 1284680 ko || -0m00.38s || 60 ko | -1.08% | +0.00% 0m34.36s | 2237140 ko | ExtractionOCaml/word_by_word_montgomery.ml | 0m34.45s | 2220616 ko || -0m00.09s || 16524 ko | -0.26% | +0.74% 0m34.01s | 915808 ko | Rewriter/Passes/MulSplit.vo | 0m34.72s | 913152 ko || -0m00.71s || 2656 ko | -2.04% | +0.29% 0m33.79s | 2251096 ko | ExtractionOCaml/bedrock2_unsaturated_solinas.ml | 0m33.50s | 2229256 ko || +0m00.28s || 21840 ko | +0.86% | +0.97% 0m33.14s | 2251808 ko | ExtractionOCaml/with_bedrock2_unsaturated_solinas.ml | 0m33.28s | 2229952 ko || -0m00.14s || 21856 ko | -0.42% | +0.98% 0m31.42s | 2149728 ko | ExtractionOCaml/unsaturated_solinas.ml | 0m31.33s | 2124628 ko || +0m00.09s || 25100 ko | +0.28% | +1.18% 0m29.99s | 2166628 ko | ExtractionOCaml/bedrock2_dettman_multiplication.ml | 0m30.23s | 2179988 ko || -0m00.24s || -13360 ko | -0.79% | -0.61% 0m29.53s | 2156584 ko | ExtractionOCaml/with_bedrock2_solinas_reduction.ml | 0m29.10s | 2125132 ko || +0m00.42s || 31452 ko | +1.47% | +1.48% 0m29.25s | 2161092 ko | ExtractionOCaml/with_bedrock2_base_conversion.ml | 0m28.31s | 2121844 ko || +0m00.94s || 39248 ko | +3.32% | +1.84% 0m29.19s | 2161336 ko | ExtractionOCaml/bedrock2_base_conversion.ml | 0m29.47s | 2121804 ko || -0m00.27s || 39532 ko | -0.95% | +1.86% 0m29.12s | 2156880 ko | ExtractionOCaml/bedrock2_saturated_solinas.ml | 0m29.25s | 2124968 ko || -0m00.12s || 31912 ko | -0.44% | +1.50% 0m29.07s | 2156996 ko | ExtractionOCaml/with_bedrock2_saturated_solinas.ml | 0m28.94s | 2124832 ko || +0m00.12s || 32164 ko | +0.44% | +1.51% 0m28.90s | 2158288 ko | ExtractionOCaml/with_bedrock2_dettman_multiplication.ml | 0m29.11s | 2130440 ko || -0m00.21s || 27848 ko | -0.72% | +1.30% 0m27.93s | 2064324 ko | ExtractionOCaml/dettman_multiplication.ml | 0m28.14s | 2081544 ko || -0m00.21s || -17220 ko | -0.74% | -0.82% 0m27.37s | 2077984 ko | ExtractionOCaml/saturated_solinas.ml | 0m27.45s | 2061340 ko || -0m00.07s || 16644 ko | -0.29% | +0.80% 0m26.92s | 2069712 ko | ExtractionOCaml/base_conversion.ml | 0m27.35s | 2051836 ko || -0m00.42s || 17876 ko | -1.57% | +0.87% 0m25.19s | 1381372 ko | PerfTesting/PerfTestSearch.vo | 0m25.63s | 1377272 ko || -0m00.43s || 4100 ko | -1.71% | +0.29% 0m23.10s | 1189876 ko | PushButtonSynthesis/UnsaturatedSolinas.vo | 0m23.84s | 1191348 ko || -0m00.73s || -1472 ko | -3.10% | -0.12% 0m21.56s | 1967716 ko | ExtractionOCaml/perf_unsaturated_solinas.ml | 0m21.50s | 1905172 ko || +0m00.05s || 62544 ko | +0.27% | +3.28% 0m21.46s | 1954296 ko | ExtractionOCaml/perf_word_by_word_montgomery.ml | 0m21.53s | 2007400 ko || -0m00.07s || -53104 ko | -0.32% | -2.64% 0m21.42s | 1364020 ko | Bedrock/End2End/RupicolaCrypto/Low.vo | 0m21.81s | 1360444 ko || -0m00.38s || 3576 ko | -1.78% | +0.26% 0m20.10s | 1163460 ko | PushButtonSynthesis/WordByWordMontgomery.vo | 0m20.64s | 1164604 ko || -0m00.53s || -1144 ko | -2.61% | -0.09% 0m18.30s | 301772 ko | fiat-bedrock2/src/p434_64.c | 0m18.00s | 301336 ko || +0m00.30s || 436 ko | +1.66% | +0.14% 0m18.28s | 1142612 ko | Bedrock/Field/Translation/Proofs/Func.vo | 0m18.75s | 1141560 ko || -0m00.46s || 1052 ko | -2.50% | +0.09% 0m17.74s | 405312 ko | fiat-bedrock2/src/secp256k1_montgomery_scalar_32.c | 0m17.23s | 404568 ko || +0m00.50s || 744 ko | +2.95% | +0.18% 0m17.68s | 267560 ko | fiat-json/src/p434_64.json | 0m17.55s | 336912 ko || +0m00.12s || -69352 ko | +0.74% | -20.58% 0m17.57s | 432032 ko | fiat-bedrock2/src/p256_scalar_32.c | 0m17.05s | 461272 ko || +0m00.51s || -29240 ko | +3.04% | -6.33% 0m17.48s | 2202308 ko | ExtractionHaskell/bedrock2_solinas_reduction.hs | 0m17.75s | 2235132 ko || -0m00.26s || -32824 ko | -1.52% | -1.46% 0m17.46s | 1380556 ko | PerfTesting/PerfTestSearchPattern.vo | 0m17.92s | 1380832 ko || -0m00.46s || -276 ko | -2.56% | -0.01% 0m17.41s | 230072 ko | fiat-zig/src/p434_64.zig | 0m17.32s | 253724 ko || +0m00.08s || -23652 ko | +0.51% | -9.32% 0m17.35s | 1223956 ko | Bedrock/Field/Synthesis/New/Signature.vo | 0m17.66s | 1220516 ko || -0m00.30s || 3440 ko | -1.75% | +0.28% 0m17.35s | 2166060 ko | ExtractionHaskell/bedrock2_word_by_word_montgomery.hs | 0m17.53s | 2194808 ko || -0m00.17s || -28748 ko | -1.02% | -1.30% 0m17.28s | 2164448 ko | ExtractionHaskell/with_bedrock2_word_by_word_montgomery.hs | 0m17.52s | 2193664 ko || -0m00.23s || -29216 ko | -1.36% | -1.33% 0m17.16s | 254416 ko | fiat-c/src/p434_64.c | 0m17.42s | 251820 ko || -0m00.26s || 2596 ko | -1.49% | +1.03% 0m17.15s | 390476 ko | fiat-bedrock2/src/secp256k1_montgomery_32.c | 0m16.69s | 415512 ko || +0m00.45s || -25036 ko | +2.75% | -6.02% 0m17.01s | 351572 ko | fiat-java/src/FiatSecp256K1MontgomeryScalar.java | 0m16.40s | 455088 ko || +0m00.61s || -103516 ko | +3.71% | -22.74% 0m16.90s | 445272 ko | fiat-go/32/secp256k1montgomeryscalar/secp256k1montgomeryscalar.go | 0m17.19s | 360700 ko || -0m00.29s || 84572 ko | -1.68% | +23.44% 0m16.86s | 1160300 ko | Bedrock/Field/Translation/Proofs/Cmd.vo | 0m17.42s | 1157936 ko || -0m00.56s || 2364 ko | -3.21% | +0.20% 0m16.84s | 456724 ko | fiat-bedrock2/src/curve25519_scalar_32.c | 0m16.68s | 405344 ko || +0m00.16s || 51380 ko | +0.95% | +12.67% 0m16.83s | 454284 ko | fiat-json/src/secp256k1_montgomery_scalar_32.json | 0m16.39s | 468528 ko || +0m00.43s || -14244 ko | +2.68% | -3.04% 0m16.79s | 2032540 ko | ExtractionHaskell/word_by_word_montgomery.hs | 0m16.91s | 2067180 ko || -0m00.12s || -34640 ko | -0.70% | -1.67% 0m16.77s | 2093008 ko | ExtractionHaskell/solinas_reduction.hs | 0m16.77s | 2051684 ko || +0m00.00s || 41324 ko | +0.00% | +2.01% 0m16.76s | 371064 ko | fiat-java/src/FiatP256Scalar.java | 0m15.92s | 334232 ko || +0m00.84s || 36832 ko | +5.27% | +11.01% 0m16.75s | 2144072 ko | ExtractionHaskell/bedrock2_unsaturated_solinas.hs | 0m16.53s | 2074184 ko || +0m00.21s || 69888 ko | +1.33% | +3.36% 0m16.73s | 406956 ko | fiat-json/src/curve25519_scalar_32.json | 0m16.02s | 450328 ko || +0m00.71s || -43372 ko | +4.43% | -9.63% 0m16.73s | 347524 ko | fiat-zig/src/secp256k1_montgomery_scalar_32.zig | 0m16.35s | 397760 ko || +0m00.37s || -50236 ko | +2.32% | -12.62% 0m16.72s | 390380 ko | fiat-zig/src/p256_scalar_32.zig | 0m16.18s | 356296 ko || +0m00.53s || 34084 ko | +3.33% | +9.56% 0m16.70s | 391092 ko | fiat-go/32/p256scalar/p256scalar.go | 0m16.94s | 366900 ko || -0m00.24s || 24192 ko | -1.41% | +6.59% 0m16.68s | 405796 ko | fiat-java/src/FiatCurve25519Scalar.java | 0m16.15s | 370228 ko || +0m00.53s || 35568 ko | +3.28% | +9.60% 0m16.66s | 378844 ko | fiat-rust/src/p256_scalar_32.rs | 0m15.98s | 411316 ko || +0m00.67s || -32472 ko | +4.25% | -7.89% 0m16.61s | 366928 ko | fiat-c/src/secp256k1_montgomery_scalar_32.c | 0m16.58s | 426780 ko || +0m00.03s || -59852 ko | +0.18% | -14.02% 0m16.59s | 340692 ko | fiat-rust/src/secp256k1_montgomery_32.rs | 0m16.47s | 353508 ko || +0m00.12s || -12816 ko | +0.72% | -3.62% 0m16.58s | 385436 ko | fiat-json/src/secp256k1_montgomery_32.json | 0m16.19s | 407896 ko || +0m00.38s || -22460 ko | +2.40% | -5.50% 0m16.55s | 416232 ko | fiat-go/32/curve25519scalar/curve25519scalar.go | 0m16.41s | 346260 ko || +0m00.14s || 69972 ko | +0.85% | +20.20% 0m16.53s | 338172 ko | fiat-java/src/FiatSecp256K1Montgomery.java | 0m16.15s | 423920 ko || +0m00.38s || -85748 ko | +2.35% | -20.22% 0m16.53s | 396224 ko | fiat-rust/src/secp256k1_montgomery_scalar_32.rs | 0m16.61s | 445068 ko || -0m00.07s || -48844 ko | -0.48% | -10.97% 0m16.50s | 2144128 ko | ExtractionHaskell/with_bedrock2_unsaturated_solinas.hs | 0m16.55s | 2072880 ko || -0m00.05s || 71248 ko | -0.30% | +3.43% 0m16.45s | 1139712 ko | Bedrock/End2End/Poly1305/Field1305.vo | 0m17.26s | 1137640 ko || -0m00.81s || 2072 ko | -4.69% | +0.18% 0m16.45s | 364804 ko | fiat-c/src/p256_scalar_32.c | 0m16.45s | 434352 ko || +0m00.00s || -69548 ko | +0.00% | -16.01% 0m16.36s | 436776 ko | fiat-zig/src/secp256k1_montgomery_32.zig | 0m16.01s | 437516 ko || +0m00.34s || -740 ko | +2.18% | -0.16% 0m16.33s | 359632 ko | fiat-zig/src/curve25519_scalar_32.zig | 0m15.80s | 434444 ko || +0m00.52s || -74812 ko | +3.35% | -17.22% 0m16.32s | 440340 ko | fiat-go/32/secp256k1montgomery/secp256k1montgomery.go | 0m16.19s | 415772 ko || +0m00.12s || 24568 ko | +0.80% | +5.90% 0m16.31s | 431364 ko | fiat-json/src/p256_scalar_32.json | 0m16.54s | 468452 ko || -0m00.23s || -37088 ko | -1.39% | -7.91% 0m16.28s | 418340 ko | fiat-c/src/secp256k1_montgomery_32.c | 0m16.07s | 354548 ko || +0m00.21s || 63792 ko | +1.30% | +17.99% 0m16.11s | 323148 ko | fiat-c/src/curve25519_scalar_32.c | 0m15.37s | 376208 ko || +0m00.74s || -53060 ko | +4.81% | -14.10% 0m16.09s | 429024 ko | fiat-rust/src/curve25519_scalar_32.rs | 0m16.31s | 405604 ko || -0m00.21s || 23420 ko | -1.34% | +5.77% 0m16.07s | 392824 ko | fiat-bedrock2/src/p256_32.c | 0m15.76s | 418500 ko || +0m00.31s || -25676 ko | +1.96% | -6.13% 0m15.73s | 2026232 ko | ExtractionHaskell/unsaturated_solinas.hs | 0m15.70s | 1972880 ko || +0m00.03s || 53352 ko | +0.19% | +2.70% 0m15.67s | 400632 ko | fiat-java/src/FiatP256.java | 0m15.23s | 347976 ko || +0m00.43s || 52656 ko | +2.88% | +15.13% 0m15.67s | 426864 ko | fiat-rust/src/p256_32.rs | 0m15.43s | 436980 ko || +0m00.24s || -10116 ko | +1.55% | -2.31% 0m15.65s | 433612 ko | fiat-go/32/p256/p256.go | 0m15.46s | 363800 ko || +0m00.18s || 69812 ko | +1.22% | +19.18% 0m15.65s | 332588 ko | fiat-zig/src/p256_32.zig | 0m15.39s | 407124 ko || +0m00.25s || -74536 ko | +1.68% | -18.30% 0m15.56s | 2010528 ko | ExtractionHaskell/with_bedrock2_dettman_multiplication.hs | 0m15.92s | 2039152 ko || -0m00.35s || -28624 ko | -2.26% | -1.40% 0m15.53s | 2010444 ko | ExtractionHaskell/bedrock2_dettman_multiplication.hs | 0m15.68s | 2040720 ko || -0m00.15s || -30276 ko | -0.95% | -1.48% 0m15.40s | 332344 ko | fiat-c/src/p256_32.c | 0m15.21s | 376848 ko || +0m00.18s || -44504 ko | +1.24% | -11.80% 0m15.29s | 1948284 ko | ExtractionHaskell/with_bedrock2_base_conversion.hs | 0m15.53s | 2016228 ko || -0m00.24s || -67944 ko | -1.54% | -3.36% 0m15.23s | 1959948 ko | ExtractionHaskell/with_bedrock2_saturated_solinas.hs | 0m15.52s | 2013692 ko || -0m00.28s || -53744 ko | -1.86% | -2.66% 0m15.22s | 1958896 ko | ExtractionHaskell/dettman_multiplication.hs | 0m15.10s | 1903264 ko || +0m00.12s || 55632 ko | +0.79% | +2.92% 0m15.15s | 1948672 ko | ExtractionHaskell/bedrock2_base_conversion.hs | 0m15.63s | 2015624 ko || -0m00.48s || -66952 ko | -3.07% | -3.32% 0m15.12s | 445592 ko | fiat-json/src/p256_32.json | 0m15.46s | 416848 ko || -0m00.34s || 28744 ko | -2.19% | +6.89% 0m15.11s | 1960852 ko | ExtractionHaskell/bedrock2_saturated_solinas.hs | 0m15.44s | 2013416 ko || -0m00.33s || -52564 ko | -2.13% | -2.61% 0m14.88s | 1955220 ko | ExtractionHaskell/base_conversion.hs | 0m14.93s | 1897380 ko || -0m00.04s || 57840 ko | -0.33% | +3.04% 0m14.86s | 1921176 ko | ExtractionHaskell/saturated_solinas.hs | 0m14.96s | 1916928 ko || -0m00.10s || 4248 ko | -0.66% | +0.22% 0m11.31s | 199152 ko | fiat-bedrock2/src/p384_scalar_64.c | 0m11.18s | 194984 ko || +0m00.13s || 4168 ko | +1.16% | +2.13% 0m11.21s | 199888 ko | fiat-go/64/p384scalar/p384scalar.go | 0m11.15s | 164128 ko || +0m00.06s || 35760 ko | +0.53% | +21.78% 0m11.17s | 1708132 ko | Bedrock/Field/Synthesis/New/WordByWordMontgomery.vo | 0m11.30s | 1703996 ko || -0m00.13s || 4136 ko | -1.15% | +0.24% 0m10.92s | 1035420 ko | BoundsPipeline.vo | 0m11.20s | 1036784 ko || -0m00.27s || -1364 ko | -2.49% | -0.13% 0m10.91s | 169592 ko | fiat-json/src/p384_scalar_64.json | 0m10.81s | 184092 ko || +0m00.09s || -14500 ko | +0.92% | -7.87% 0m10.87s | 176344 ko | fiat-zig/src/p384_scalar_64.zig | 0m10.57s | 192372 ko || +0m00.29s || -16028 ko | +2.83% | -8.33% 0m10.73s | 166616 ko | fiat-rust/src/p384_scalar_64.rs | 0m10.84s | 176032 ko || -0m00.10s || -9416 ko | -1.01% | -5.34% 0m10.58s | 154460 ko | fiat-c/src/p384_scalar_64.c | 0m10.71s | 142320 ko || -0m00.13s || 12140 ko | -1.21% | +8.53% 0m10.15s | 1304732 ko | Bedrock/End2End/X25519/MontgomeryLadderProperties.vo | 0m10.24s | 1304688 ko || -0m00.08s || 44 ko | -0.87% | +0.00% 0m09.59s | 195012 ko | fiat-bedrock2/src/p384_64.c | 0m09.53s | 205984 ko || +0m00.06s || -10972 ko | +0.62% | -5.32% 0m09.54s | 255304 ko | fiat-bedrock2/src/p224_32.c | 0m09.46s | 246228 ko || +0m00.07s || 9076 ko | +0.84% | +3.68% 0m09.38s | 235988 ko | fiat-json/src/p224_32.json | 0m09.14s | 243676 ko || +0m00.24s || -7688 ko | +2.62% | -3.15% 0m09.29s | 195668 ko | fiat-json/src/p384_64.json | 0m09.24s | 173592 ko || +0m00.04s || 22076 ko | +0.54% | +12.71% 0m09.26s | 245908 ko | fiat-java/src/FiatP224.java | 0m09.02s | 210104 ko || +0m00.24s || 35804 ko | +2.66% | +17.04% 0m09.25s | 170924 ko | fiat-go/64/p384/p384.go | 0m09.35s | 160844 ko || -0m00.09s || 10080 ko | -1.06% | +6.26% 0m09.20s | 1040012 ko | PushButtonSynthesis/BaseConversion.vo | 0m09.41s | 1037912 ko || -0m00.21s || 2100 ko | -2.23% | +0.20% 0m09.14s | 225000 ko | fiat-go/32/p224/p224.go | 0m09.39s | 230444 ko || -0m00.25s || -5444 ko | -2.66% | -2.36% 0m09.11s | 253348 ko | fiat-rust/src/p224_32.rs | 0m09.20s | 245628 ko || -0m00.08s || 7720 ko | -0.97% | +3.14% 0m09.11s | 166552 ko | fiat-zig/src/p384_64.zig | 0m09.31s | 141172 ko || -0m00.20s || 25380 ko | -2.14% | +17.97% 0m09.10s | 167020 ko | fiat-c/src/p384_64.c | 0m09.28s | 146704 ko || -0m00.17s || 20316 ko | -1.93% | +13.84% 0m09.09s | 254100 ko | fiat-zig/src/p224_32.zig | 0m08.87s | 222884 ko || +0m00.22s || 31216 ko | +2.48% | +14.00% 0m08.96s | 232884 ko | fiat-c/src/p224_32.c | 0m08.97s | 240356 ko || -0m00.00s || -7472 ko | -0.11% | -3.10% 0m08.73s | 147896 ko | fiat-rust/src/p384_64.rs | 0m09.22s | 165796 ko || -0m00.49s || -17900 ko | -5.31% | -10.79% 0m08.26s | 1009244 ko | PushButtonSynthesis/SmallExamples.vo | 0m08.45s | 1008344 ko || -0m00.18s || 900 ko | -2.24% | +0.08% 0m08.26s | 119472 ko | fiat-json/src/p448_solinas_32.json | 0m08.29s | 123884 ko || -0m00.02s || -4412 ko | -0.36% | -3.56% 0m08.16s | 1050960 ko | PushButtonSynthesis/Primitives.vo | 0m08.27s | 1050876 ko || -0m00.10s || 84 ko | -1.33% | +0.00% 0m07.93s | 591100 ko | Rewriter/Passes/RelaxBitwidthAdcSbb.vo | 0m08.19s | 591176 ko || -0m00.25s || -76 ko | -3.17% | -0.01% 0m07.91s | 61592 ko | fiat-zig/src/p448_solinas_32.zig | 0m07.94s | 61704 ko || -0m00.03s || -112 ko | -0.37% | -0.18% 0m07.89s | 59392 ko | fiat-c/src/p448_solinas_32.c | 0m07.94s | 56764 ko || -0m00.05s || 2628 ko | -0.62% | +4.62% 0m07.88s | 61076 ko | fiat-rust/src/p448_solinas_32.rs | 0m08.00s | 57600 ko || -0m00.12s || 3476 ko | -1.50% | +6.03% 0m07.12s | 1043600 ko | PushButtonSynthesis/SolinasReduction.vo | 0m07.38s | 1043572 ko || -0m00.25s || 28 ko | -3.52% | +0.00% 0m06.64s | 52476 ko | fiat-go/64/p521/p521.go | 0m06.25s | 49644 ko || +0m00.38s || 2832 ko | +6.23% | +5.70% 0m06.27s | 574792 ko | Rewriter/Passes/NoSelect.vo | 0m06.41s | 577812 ko || -0m00.14s || -3020 ko | -2.18% | -0.52% 0m06.26s | 1048224 ko | PushButtonSynthesis/BarrettReduction.vo | 0m06.20s | 1051084 ko || +0m00.05s || -2860 ko | +0.96% | -0.27% 0m06.22s | 1132216 ko | CLI.vo | 0m06.30s | 1130060 ko || -0m00.08s || 2156 ko | -1.26% | +0.19% 0m05.96s | 1144288 ko | Bedrock/Field/Synthesis/New/UnsaturatedSolinas.vo | 0m06.15s | 1142040 ko || -0m00.19s || 2248 ko | -3.08% | +0.19% 0m05.54s | 68872 ko | fiat-bedrock2/src/p521_64.c | 0m05.56s | 68208 ko || -0m00.01s || 664 ko | -0.35% | +0.97% 0m05.42s | 51340 ko | fiat-json/src/p521_64.json | 0m05.43s | 51520 ko || -0m00.00s || -180 ko | -0.18% | -0.34% 0m05.30s | 37436 ko | fiat-zig/src/p521_64.zig | 0m04.77s | 37212 ko || +0m00.53s || 224 ko | +11.11% | +0.60% 0m04.82s | 37880 ko | fiat-rust/src/p521_64.rs | 0m05.45s | 38100 ko || -0m00.62s || -220 ko | -11.55% | -0.57% 0m04.76s | 37380 ko | fiat-c/src/p521_64.c | 0m05.37s | 37352 ko || -0m00.61s || 28 ko | -11.35% | +0.07% 0m04.66s | 1038068 ko | PushButtonSynthesis/DettmanMultiplication.vo | 0m04.63s | 1038160 ko || +0m00.03s || -92 ko | +0.64% | -0.00% 0m04.51s | 1074152 ko | Bedrock/Field/Translation/Proofs/ValidComputable/Cmd.vo | 0m04.59s | 1074372 ko || -0m00.08s || -220 ko | -1.74% | -0.02% 0m04.24s | 1047736 ko | PushButtonSynthesis/SaturatedSolinas.vo | 0m04.41s | 1047768 ko || -0m00.16s || -32 ko | -3.85% | -0.00% 0m04.01s | 1501044 ko | Bedrock/Everything.vo | 0m04.01s | 1501100 ko || +0m00.00s || -56 ko | +0.00% | -0.00% 0m03.81s | 1051824 ko | PushButtonSynthesis/FancyMontgomeryReduction.vo | 0m03.77s | 1050712 ko || +0m00.04s || 1112 ko | +1.06% | +0.10% 0m03.50s | 1367412 ko | Everything.vo | 0m03.59s | 1367556 ko || -0m00.08s || -144 ko | -2.50% | -0.01% 0m03.06s | 537952 ko | Rewriter/Passes/ArithWithRelaxedCasts.vo | 0m03.15s | 539144 ko || -0m00.08s || -1192 ko | -2.85% | -0.22% 0m02.98s | 1013864 ko | Bedrock/Field/Translation/Cmd.vo | 0m02.98s | 1014664 ko || +0m00.00s || -800 ko | +0.00% | -0.07% 0m02.96s | 1083180 ko | Rewriter/PerfTesting/Core.vo | 0m03.04s | 1083012 ko || -0m00.08s || 168 ko | -2.63% | +0.01% 0m02.94s | 70004 ko | fiat-go/64/secp256k1montgomeryscalar/secp256k1montgomeryscalar.go | 0m02.80s | 69640 ko || +0m00.14s || 364 ko | +5.00% | +0.52% 0m02.93s | 69652 ko | fiat-go/64/p256scalar/p256scalar.go | 0m02.77s | 69300 ko || +0m00.16s || 352 ko | +5.77% | +0.50% 0m02.92s | 539268 ko | Rewriter/Passes/AddAssocLeft.vo | 0m02.99s | 537676 ko || -0m00.07s || 1592 ko | -2.34% | +0.29% 0m02.90s | 1126644 ko | StandaloneHaskellMain.vo | 0m02.85s | 1124644 ko || +0m00.04s || 2000 ko | +1.75% | +0.17% 0m02.86s | 1355272 ko | PerfTesting/PerfTestPrint.vo | 0m02.97s | 1353376 ko || -0m00.11s || 1896 ko | -3.70% | +0.14% 0m02.83s | 74888 ko | fiat-json/src/p256_scalar_64.json | 0m02.73s | 69468 ko || +0m00.10s || 5420 ko | +3.66% | +7.80% 0m02.79s | 84092 ko | fiat-bedrock2/src/p256_scalar_64.c | 0m02.79s | 86516 ko || +0m00.00s || -2424 ko | +0.00% | -2.80% 0m02.76s | 87368 ko | fiat-bedrock2/src/secp256k1_montgomery_scalar_64.c | 0m02.77s | 86936 ko || -0m00.01s || 432 ko | -0.36% | +0.49% 0m02.76s | 57416 ko | fiat-go/64/p448solinas/p448solinas.go | 0m02.58s | 51820 ko || +0m00.17s || 5596 ko | +6.97% | +10.79% 0m02.76s | 73888 ko | fiat-json/src/secp256k1_montgomery_scalar_64.json | 0m02.73s | 75908 ko || +0m00.02s || -2020 ko | +1.09% | -2.66% 0m02.74s | 1077636 ko | Bedrock/Field/Stringification/Stringification.vo | 0m02.78s | 1076572 ko || -0m00.03s || 1064 ko | -1.43% | +0.09% 0m02.73s | 1010148 ko | Bedrock/Field/Translation/Func.vo | 0m02.82s | 1008988 ko || -0m00.08s || 1160 ko | -3.19% | +0.11% 0m02.72s | 64580 ko | fiat-zig/src/p256_scalar_64.zig | 0m02.71s | 62528 ko || +0m00.01s || 2052 ko | +0.36% | +3.28% 0m02.69s | 63552 ko | fiat-go/64/secp256k1montgomery/secp256k1montgomery.go | 0m02.51s | 67572 ko || +0m00.18s || -4020 ko | +7.17% | -5.94% 0m02.69s | 61992 ko | fiat-rust/src/p256_scalar_64.rs | 0m02.75s | 66124 ko || -0m00.06s || -4132 ko | -2.18% | -6.24% 0m02.69s | 63084 ko | fiat-rust/src/secp256k1_montgomery_scalar_64.rs | 0m02.71s | 66576 ko || -0m00.02s || -3492 ko | -0.73% | -5.24% 0m02.68s | 59288 ko | fiat-c/src/p256_scalar_64.c | 0m02.70s | 62336 ko || -0m00.02s || -3048 ko | -0.74% | -4.88% 0m02.67s | 1068128 ko | Bedrock/Field/Translation/Proofs/ValidComputable/Func.vo | 0m02.80s | 1068044 ko || -0m00.12s || 84 ko | -4.64% | +0.00% 0m02.67s | 68464 ko | fiat-c/src/secp256k1_montgomery_scalar_64.c | 0m02.70s | 61160 ko || -0m00.03s || 7304 ko | -1.11% | +11.94% 0m02.66s | 1153388 ko | Bedrock/Standalone/StandaloneHaskellMain.vo | 0m02.71s | 1151268 ko || -0m00.04s || 2120 ko | -1.84% | +0.18% 0m02.66s | 64136 ko | fiat-zig/src/secp256k1_montgomery_scalar_64.zig | 0m02.65s | 62200 ko || +0m00.01s || 1936 ko | +0.37% | +3.11% 0m02.65s | 1103644 ko | StandaloneOCamlMain.vo | 0m02.61s | 1103620 ko || +0m00.04s || 24 ko | +1.53% | +0.00% 0m02.64s | 1151352 ko | Bedrock/Standalone/StandaloneOCamlMain.vo | 0m02.71s | 1151372 ko || -0m00.06s || -20 ko | -2.58% | -0.00% 0m02.57s | 535856 ko | Rewriter/Passes/FlattenThunkedRects.vo | 0m02.66s | 535192 ko || -0m00.09s || 664 ko | -3.38% | +0.12% 0m02.52s | 84488 ko | fiat-bedrock2/src/secp256k1_montgomery_64.c | 0m02.47s | 93372 ko || +0m00.04s || -8884 ko | +2.02% | -9.51% 0m02.52s | 68592 ko | fiat-json/src/secp256k1_montgomery_64.json | 0m02.46s | 75364 ko || +0m00.06s || -6772 ko | +2.43% | -8.98% 0m02.49s | 1073080 ko | Bedrock/Field/Synthesis/New/ComputedOp.vo | 0m02.66s | 1071116 ko || -0m00.16s || 1964 ko | -6.39% | +0.18% 0m02.48s | 1137168 ko | Rewriter/PerfTesting/StandaloneOCamlMain.vo | 0m02.76s | 1135252 ko || -0m00.27s || 1916 ko | -10.14% | +0.16% 0m02.46s | 63516 ko | fiat-go/64/curve25519scalar/curve25519scalar.go | 0m02.31s | 70228 ko || +0m00.14s || -6712 ko | +6.49% | -9.55% 0m02.42s | 1051400 ko | Bedrock/Field/Translation/Parameters/Defaults32.vo | 0m02.46s | 1051612 ko || -0m00.04s || -212 ko | -1.62% | -0.02% 0m02.42s | 60544 ko | fiat-rust/src/secp256k1_montgomery_64.rs | 0m02.42s | 60264 ko || +0m00.00s || 280 ko | +0.00% | +0.46% 0m02.42s | 65732 ko | fiat-zig/src/secp256k1_montgomery_64.zig | 0m02.40s | 57992 ko || +0m00.02s || 7740 ko | +0.83% | +13.34% 0m02.41s | 60148 ko | fiat-c/src/secp256k1_montgomery_64.c | 0m02.44s | 60532 ko || -0m00.02s || -384 ko | -1.22% | -0.63% 0m02.37s | 1051572 ko | Bedrock/Field/Translation/Parameters/Defaults64.vo | 0m02.46s | 1051524 ko || -0m00.08s || 48 ko | -3.65% | +0.00% 0m02.35s | 1050808 ko | Bedrock/Field/Translation/Parameters/FE310.vo | 0m02.42s | 1051668 ko || -0m00.06s || -860 ko | -2.89% | -0.08% 0m02.35s | 78788 ko | fiat-bedrock2/src/curve25519_scalar_64.c | 0m02.35s | 77892 ko || +0m00.00s || 896 ko | +0.00% | +1.15% 0m02.34s | 1047512 ko | Bedrock/Field/Translation/Parameters/Defaults.vo | 0m02.33s | 1047596 ko || +0m00.00s || -84 ko | +0.42% | -0.00% 0m02.31s | 69108 ko | fiat-json/src/curve25519_scalar_64.json | 0m02.30s | 69200 ko || +0m00.01s || -92 ko | +0.43% | -0.13% 0m02.28s | 60412 ko | fiat-rust/src/curve25519_scalar_64.rs | 0m02.31s | 64076 ko || -0m00.03s || -3664 ko | -1.29% | -5.71% 0m02.25s | 67320 ko | fiat-c/src/curve25519_scalar_64.c | 0m02.29s | 59928 ko || -0m00.04s || 7392 ko | -1.74% | +12.33% 0m02.25s | 57700 ko | fiat-zig/src/curve25519_scalar_64.zig | 0m02.25s | 63136 ko || +0m00.00s || -5436 ko | +0.00% | -8.60% 0m02.17s | 541552 ko | Rewriter/Passes/UnfoldValueBarrier.vo | 0m02.27s | 541600 ko || -0m00.10s || -48 ko | -4.40% | -0.00% 0m02.10s | 540980 ko | Rewriter/Passes/StripLiteralCasts.vo | 0m02.20s | 539800 ko || -0m00.10s || 1180 ko | -4.54% | +0.21% 0m02.10s | 63292 ko | fiat-go/64/p224/p224.go | 0m01.86s | 61856 ko || +0m00.24s || 1436 ko | +12.90% | +2.32% 0m02.08s | 38528 ko | fiat-go/32/curve25519/curve25519.go | 0m02.07s | 36104 ko || +0m00.01s || 2424 ko | +0.48% | +6.71% 0m02.07s | 68844 ko | fiat-bedrock2/src/p448_solinas_64.c | 0m02.13s | 66964 ko || -0m00.06s || 1880 ko | -2.81% | +2.80% 0m02.05s | 63476 ko | fiat-go/64/p256/p256.go | 0m01.84s | 62612 ko || +0m00.20s || 864 ko | +11.41% | +1.37% 0m02.02s | 69516 ko | fiat-bedrock2/src/curve25519_32.c | 0m01.99s | 64620 ko || +0m00.03s || 4896 ko | +1.50% | +7.57% 0m01.97s | 536652 ko | Rewriter/Passes/ToFancy.vo | 0m02.01s | 537484 ko || -0m00.03s || -832 ko | -1.99% | -0.15% 0m01.96s | 52072 ko | fiat-json/src/p448_solinas_64.json | 0m01.92s | 49556 ko || +0m00.04s || 2516 ko | +2.08% | +5.07% 0m01.91s | 78628 ko | fiat-bedrock2/src/p224_64.c | 0m01.91s | 79832 ko || +0m00.00s || -1204 ko | +0.00% | -1.50% 0m01.90s | 35620 ko | fiat-c/src/p448_solinas_64.c | 0m01.93s | 35532 ko || -0m00.03s || 88 ko | -1.55% | +0.24% 0m01.90s | 35992 ko | fiat-rust/src/p448_solinas_64.rs | 0m01.93s | 37888 ko || -0m00.03s || -1896 ko | -1.55% | -5.00% 0m01.90s | 36340 ko | fiat-zig/src/p448_solinas_64.zig | 0m01.90s | 38132 ko || +0m00.00s || -1792 ko | +0.00% | -4.69% 0m01.89s | 68480 ko | fiat-json/src/p224_64.json | 0m01.93s | 76344 ko || -0m00.04s || -7864 ko | -2.07% | -10.30% 0m01.85s | 79464 ko | fiat-bedrock2/src/p256_64.c | 0m01.85s | 80384 ko || +0m00.00s || -920 ko | +0.00% | -1.14% 0m01.84s | 69732 ko | fiat-json/src/p256_64.json | 0m01.85s | 68332 ko || -0m00.01s || 1400 ko | -0.54% | +2.04% 0m01.84s | 60888 ko | fiat-zig/src/p224_64.zig | 0m01.87s | 60200 ko || -0m00.03s || 688 ko | -1.60% | +1.14% 0m01.83s | 51832 ko | fiat-json/src/curve25519_32.json | 0m01.91s | 54384 ko || -0m00.07s || -2552 ko | -4.18% | -4.69% 0m01.82s | 57456 ko | fiat-zig/src/p256_64.zig | 0m01.79s | 57520 ko || +0m00.03s || -64 ko | +1.67% | -0.11% 0m01.81s | 60544 ko | fiat-rust/src/p224_64.rs | 0m01.87s | 61580 ko || -0m00.06s || -1036 ko | -3.20% | -1.68% 0m01.77s | 58112 ko | fiat-c/src/p224_64.c | 0m01.78s | 61864 ko || -0m00.01s || -3752 ko | -0.56% | -6.06% 0m01.77s | 60016 ko | fiat-rust/src/p256_64.rs | 0m01.78s | 60884 ko || -0m00.01s || -868 ko | -0.56% | -1.42% 0m01.76s | 36740 ko | fiat-java/src/FiatCurve25519.java | 0m01.70s | 35152 ko || +0m00.06s || 1588 ko | +3.52% | +4.51% 0m01.76s | 35116 ko | fiat-rust/src/curve25519_32.rs | 0m01.76s | 34160 ko || +0m00.00s || 956 ko | +0.00% | +2.79% 0m01.75s | 35380 ko | fiat-zig/src/curve25519_32.zig | 0m01.75s | 35084 ko || +0m00.00s || 296 ko | +0.00% | +0.84% 0m01.74s | 35840 ko | fiat-c/src/curve25519_32.c | 0m01.76s | 34260 ko || -0m00.02s || 1580 ko | -1.13% | +4.61% 0m01.74s | 65196 ko | fiat-c/src/p256_64.c | 0m01.76s | 62724 ko || -0m00.02s || 2472 ko | -1.13% | +3.94% 0m01.45s | 596340 ko | CompilersTestCases.vo | 0m01.51s | 596224 ko || -0m00.06s || 116 ko | -3.97% | +0.01% 0m01.44s | 53596 ko | fiat-bedrock2/src/secp256k1_dettman_32.c | 0m01.45s | 51196 ko || -0m00.01s || 2400 ko | -0.68% | +4.68% 0m01.28s | 42572 ko | fiat-json/src/secp256k1_dettman_32.json | 0m01.30s | 43796 ko || -0m00.02s || -1224 ko | -1.53% | -2.79% 0m01.22s | 25936 ko | fiat-c/src/secp256k1_dettman_32.c | 0m01.23s | 26436 ko || -0m00.01s || -500 ko | -0.81% | -1.89% 0m01.22s | 26988 ko | fiat-go/32/secp256k1dettman/secp256k1dettman.go | 0m01.26s | 26796 ko || -0m00.04s || 192 ko | -3.17% | +0.71% 0m01.22s | 27128 ko | fiat-java/src/FiatSecp256K1Dettman.java | 0m01.21s | 27648 ko || +0m00.01s || -520 ko | +0.82% | -1.88% 0m01.22s | 26456 ko | fiat-rust/src/secp256k1_dettman_32.rs | 0m01.24s | 26404 ko || -0m00.02s || 52 ko | -1.61% | +0.19% 0m01.20s | 26264 ko | fiat-zig/src/secp256k1_dettman_32.zig | 0m01.21s | 26620 ko || -0m00.01s || -356 ko | -0.82% | -1.33% 0m00.72s | 33336 ko | fiat-go/64/curve25519/curve25519.go | 0m00.62s | 33132 ko || +0m00.09s || 204 ko | +16.12% | +0.61% 0m00.63s | 438660 ko | Rewriter/Rules.vo | 0m00.63s | 436796 ko || +0m00.00s || 1864 ko | +0.00% | +0.42% 0m00.58s | 552492 ko | Rewriter/All.vo | 0m00.60s | 552492 ko || -0m00.02s || 0 ko | -3.33% | +0.00% 0m00.54s | 123656 ko | ExtractionOCaml/with_bedrock2_saturated_solinas.cmi | 0m00.54s | 122456 ko || +0m00.00s || 1200 ko | +0.00% | +0.97% 0m00.54s | 123868 ko | ExtractionOCaml/with_bedrock2_solinas_reduction.cmi | 0m00.55s | 122976 ko || -0m00.01s || 892 ko | -1.81% | +0.72% 0m00.54s | 120496 ko | ExtractionOCaml/with_bedrock2_word_by_word_montgomery.cmi | 0m00.56s | 122432 ko || -0m00.02s || -1936 ko | -3.57% | -1.58% 0m00.53s | 120220 ko | ExtractionOCaml/bedrock2_solinas_reduction.cmi | 0m00.54s | 120352 ko || -0m00.01s || -132 ko | -1.85% | -0.10% 0m00.53s | 122856 ko | ExtractionOCaml/unsaturated_solinas.cmi | 0m00.52s | 121012 ko || +0m00.01s || 1844 ko | +1.92% | +1.52% 0m00.53s | 122964 ko | ExtractionOCaml/with_bedrock2_unsaturated_solinas.cmi | 0m00.56s | 123648 ko || -0m00.03s || -684 ko | -5.35% | -0.55% 0m00.53s | 39636 ko | fiat-bedrock2/src/curve25519_64.c | 0m00.50s | 38928 ko || +0m00.03s || 708 ko | +6.00% | +1.81% 0m00.52s | 123624 ko | ExtractionOCaml/bedrock2_base_conversion.cmi | 0m00.53s | 123936 ko || -0m00.01s || -312 ko | -1.88% | -0.25% 0m00.52s | 120356 ko | ExtractionOCaml/dettman_multiplication.cmi | 0m00.50s | 120344 ko || +0m00.02s || 12 ko | +4.00% | +0.00% 0m00.52s | 123888 ko | ExtractionOCaml/with_bedrock2_base_conversion.cmi | 0m00.52s | 123416 ko || +0m00.00s || 472 ko | +0.00% | +0.38% 0m00.52s | 121844 ko | ExtractionOCaml/with_bedrock2_dettman_multiplication.cmi | 0m00.52s | 121848 ko || +0m00.00s || -4 ko | +0.00% | -0.00% 0m00.51s | 122700 ko | ExtractionOCaml/bedrock2_unsaturated_solinas.cmi | 0m00.53s | 123096 ko || -0m00.02s || -396 ko | -3.77% | -0.32% 0m00.50s | 120684 ko | ExtractionOCaml/base_conversion.cmi | 0m00.50s | 122432 ko || +0m00.00s || -1748 ko | +0.00% | -1.42% 0m00.50s | 120748 ko | ExtractionOCaml/bedrock2_word_by_word_montgomery.cmi | 0m00.57s | 120620 ko || -0m00.06s || 128 ko | -12.28% | +0.10% 0m00.50s | 120344 ko | ExtractionOCaml/saturated_solinas.cmi | 0m00.51s | 120300 ko || -0m00.01s || 44 ko | -1.96% | +0.03% 0m00.50s | 28344 ko | fiat-zig/src/curve25519_64.zig | 0m00.46s | 28560 ko || +0m00.03s || -216 ko | +8.69% | -0.75% 0m00.49s | 123236 ko | ExtractionOCaml/bedrock2_dettman_multiplication.cmi | 0m00.53s | 122576 ko || -0m00.04s || 660 ko | -7.54% | +0.53% 0m00.49s | 120500 ko | ExtractionOCaml/word_by_word_montgomery.cmi | 0m00.48s | 120356 ko || +0m00.01s || 144 ko | +2.08% | +0.11% 0m00.49s | 35980 ko | fiat-json/src/curve25519_64.json | 0m00.52s | 34660 ko || -0m00.03s || 1320 ko | -5.76% | +3.80% 0m00.49s | 28488 ko | fiat-rust/src/curve25519_64.rs | 0m00.47s | 27384 ko || +0m00.02s || 1104 ko | +4.25% | +4.03% 0m00.48s | 121720 ko | ExtractionOCaml/bedrock2_saturated_solinas.cmi | 0m00.52s | 122768 ko || -0m00.04s || -1048 ko | -7.69% | -0.85% 0m00.47s | 119616 ko | ExtractionOCaml/solinas_reduction.cmi | 0m00.49s | 120324 ko || -0m00.02s || -708 ko | -4.08% | -0.58% 0m00.47s | 28124 ko | fiat-c/src/curve25519_64.c | 0m00.45s | 28304 ko || +0m00.01s || -180 ko | +4.44% | -0.63% 0m00.44s | 37236 ko | fiat-go/64/curve25519solinas/curve25519solinas.go | 0m00.40s | 37736 ko || +0m00.03s || -500 ko | +9.99% | -1.32% 0m00.43s | 38744 ko | fiat-json/src/curve25519_solinas_64.json | 0m00.43s | 40512 ko || +0m00.00s || -1768 ko | +0.00% | -4.36% 0m00.43s | 38224 ko | fiat-rust/src/curve25519_solinas_64.rs | 0m00.41s | 37192 ko || +0m00.02s || 1032 ko | +4.87% | +2.77% 0m00.42s | 45732 ko | fiat-bedrock2/src/curve25519_solinas_64.c | 0m00.40s | 42468 ko || +0m00.01s || 3264 ko | +4.99% | +7.68% 0m00.42s | 37052 ko | fiat-zig/src/curve25519_solinas_64.zig | 0m00.41s | 36628 ko || +0m00.01s || 424 ko | +2.43% | +1.15% 0m00.38s | 37156 ko | fiat-c/src/curve25519_solinas_64.c | 0m00.42s | 37160 ko || -0m00.03s || -4 ko | -9.52% | -0.01% 0m00.29s | 26484 ko | fiat-go/32/poly1305/poly1305.go | 0m00.28s | 26668 ko || +0m00.00s || -184 ko | +3.57% | -0.68% 0m00.26s | 33824 ko | fiat-bedrock2/src/poly1305_32.c | 0m00.26s | 33836 ko || +0m00.00s || -12 ko | +0.00% | -0.03% 0m00.24s | 26896 ko | fiat-go/64/secp256k1dettman/secp256k1dettman.go | 0m00.22s | 26224 ko || +0m00.01s || 672 ko | +9.09% | +2.56% 0m00.24s | 26316 ko | fiat-java/src/FiatPoly1305.java | 0m00.22s | 25696 ko || +0m00.01s || 620 ko | +9.09% | +2.41% 0m00.24s | 31548 ko | fiat-json/src/poly1305_32.json | 0m00.24s | 31200 ko || +0m00.00s || 348 ko | +0.00% | +1.11% 0m00.23s | 26104 ko | fiat-c/src/poly1305_32.c | 0m00.21s | 25912 ko || +0m00.02s || 192 ko | +9.52% | +0.74% 0m00.23s | 27116 ko | fiat-go/64/poly1305/poly1305.go | 0m00.17s | 27576 ko || +0m00.06s || -460 ko | +35.29% | -1.66% 0m00.23s | 26228 ko | fiat-rust/src/poly1305_32.rs | 0m00.22s | 26228 ko || +0m00.01s || 0 ko | +4.54% | +0.00% 0m00.22s | 31180 ko | fiat-bedrock2/src/secp256k1_dettman_64.c | 0m00.23s | 30968 ko || -0m00.01s || 212 ko | -4.34% | +0.68% 0m00.21s | 25520 ko | fiat-zig/src/poly1305_32.zig | 0m00.21s | 25420 ko || +0m00.00s || 100 ko | +0.00% | +0.39% 0m00.20s | 25196 ko | fiat-json/src/secp256k1_dettman_64.json | 0m00.19s | 24872 ko || +0m00.01s || 324 ko | +5.26% | +1.30% 0m00.20s | 22184 ko | fiat-zig/src/secp256k1_dettman_64.zig | 0m00.18s | 21864 ko || +0m00.02s || 320 ko | +11.11% | +1.46% 0m00.18s | 21800 ko | fiat-c/src/secp256k1_dettman_64.c | 0m00.18s | 21800 ko || +0m00.00s || 0 ko | +0.00% | +0.00% 0m00.18s | 22084 ko | fiat-rust/src/secp256k1_dettman_64.rs | 0m00.18s | 22376 ko || +0m00.00s || -292 ko | +0.00% | -1.30% 0m00.17s | 61932 ko | ExtractionOCaml/perf_unsaturated_solinas.cmi | 0m00.19s | 62248 ko || -0m00.01s || -316 ko | -10.52% | -0.50% 0m00.16s | 62528 ko | ExtractionOCaml/perf_word_by_word_montgomery.cmi | 0m00.16s | 61452 ko || +0m00.00s || 1076 ko | +0.00% | +1.75% 0m00.15s | 28964 ko | fiat-json/src/poly1305_64.json | 0m00.14s | 27736 ko || +0m00.00s || 1228 ko | +7.14% | +4.42% 0m00.13s | 25196 ko | fiat-rust/src/poly1305_64.rs | 0m00.12s | 24336 ko || +0m00.01s || 860 ko | +8.33% | +3.53% 0m00.12s | 29576 ko | fiat-bedrock2/src/poly1305_64.c | 0m00.12s | 29648 ko || +0m00.00s || -72 ko | +0.00% | -0.24% 0m00.12s | 24992 ko | fiat-c/src/poly1305_64.c | 0m00.12s | 24612 ko || +0m00.00s || 380 ko | +0.00% | +1.54% 0m00.12s | 24928 ko | fiat-zig/src/poly1305_64.zig | 0m00.13s | 24612 ko || -0m00.01s || 316 ko | -7.69% | +1.28% ``` </p> </details>
For https://github.com/mit-plv/fiat-crypto/pull/1609 We don't yet include the ones that are higher-order-than 3, those need more debugging. Co-authored-by: Andres Erbsen <[email protected]> <details><summary>Timing Diff</summary> <p> ``` After | Peak Mem | File Name | Before | Peak Mem || Change || Change (mem) | % Change | % Change (mem) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 119m55.01s | 2852288 ko | Total Time / Peak Mem | 116m54.82s | 2852504 ko || +3m00.19s || -216 ko | +2.56% | -0.00% ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 4m23.28s | 1922200 ko | Rewriter/Passes/ArithWithCasts.vo | 3m44.64s | 1804812 ko || +0m38.63s || 117388 ko | +17.20% | +6.50% 1m56.74s | 1630248 ko | fiat-java/src/FiatP384Scalar.java | 1m37.68s | 1868416 ko || +0m19.06s || -238168 ko | +19.51% | -12.74% 1m58.86s | 1834476 ko | fiat-bedrock2/src/p384_32.c | 1m40.20s | 1821748 ko || +0m18.65s || 12728 ko | +18.62% | +0.69% 1m57.91s | 1645388 ko | fiat-json/src/p384_scalar_32.json | 1m39.64s | 2106288 ko || +0m18.26s || -460900 ko | +18.33% | -21.88% 0m55.68s | 1150564 ko | Rewriter/Passes/Arith.vo | 0m40.86s | 1092012 ko || +0m14.82s || 58552 ko | +36.27% | +5.36% 2m00.58s | 2234976 ko | fiat-bedrock2/src/p384_scalar_32.c | 1m47.08s | 2226524 ko || +0m13.50s || 8452 ko | +12.60% | +0.37% 1m56.68s | 1764652 ko | fiat-java/src/FiatP384.java | 1m44.50s | 1969328 ko || +0m12.18s || -204676 ko | +11.65% | -10.39% 1m54.76s | 1908628 ko | fiat-json/src/p384_32.json | 1m43.69s | 2004176 ko || +0m11.06s || -95548 ko | +10.67% | -4.76% 1m57.28s | 1615084 ko | fiat-zig/src/p384_scalar_32.zig | 1m46.91s | 1733780 ko || +0m10.37s || -118696 ko | +9.69% | -6.84% 1m54.55s | 2074740 ko | fiat-zig/src/p384_32.zig | 1m44.61s | 1626180 ko || +0m09.93s || 448560 ko | +9.50% | +27.58% 1m55.94s | 2145952 ko | fiat-go/32/p384scalar/p384scalar.go | 1m48.27s | 1630928 ko || +0m07.66s || 515024 ko | +7.08% | +31.57% 1m57.76s | 1764936 ko | fiat-rust/src/p384_scalar_32.rs | 1m51.87s | 1768464 ko || +0m05.88s || -3528 ko | +5.26% | -0.19% 1m54.58s | 1597680 ko | fiat-rust/src/p384_32.rs | 1m48.64s | 1718060 ko || +0m05.93s || -120380 ko | +5.46% | -7.00% 1m54.56s | 1708700 ko | fiat-c/src/p384_scalar_32.c | 1m49.11s | 1518820 ko || +0m05.45s || 189880 ko | +4.99% | +12.50% 1m51.99s | 1734444 ko | fiat-c/src/p384_32.c | 1m46.30s | 1630176 ko || +0m05.69s || 104268 ko | +5.35% | +6.39% 1m45.33s | 1889064 ko | Bedrock/End2End/X25519/AddPrecomputed.vo | 1m49.74s | 1889060 ko || -0m04.41s || 4 ko | -4.01% | +0.00% 5m27.35s | 2852288 ko | Bedrock/Field/Synthesis/Examples/p224_64_new.vo | 5m31.22s | 2852504 ko || -0m03.87s || -216 ko | -1.16% | -0.00% 2m33.52s | 1607452 ko | Rewriter/Passes/NBE.vo | 2m37.17s | 1607512 ko || -0m03.65s || -60 ko | -2.32% | -0.00% 0m37.77s | 110828 ko | fiat-json/src/p521_32.json | 0m33.99s | 114180 ko || +0m03.78s || -3352 ko | +11.12% | -2.93% 0m37.53s | 62756 ko | fiat-java/src/FiatP521.java | 0m33.77s | 62456 ko || +0m03.75s || 300 ko | +11.13% | +0.48% 1m50.62s | 1393276 ko | Rewriter/Passes/ToFancyWithCasts.vo | 1m53.15s | 1392880 ko || -0m02.53s || 396 ko | -2.23% | +0.02% 0m42.34s | 1859688 ko | ExtractionOCaml/bedrock2_saturated_solinas | 0m40.29s | 1851720 ko || +0m02.05s || 7968 ko | +5.08% | +0.43% 0m39.48s | 1769316 ko | ExtractionOCaml/base_conversion | 0m41.92s | 1624120 ko || -0m02.44s || 145196 ko | -5.82% | +8.93% 1m49.94s | 2247636 ko | Fancy/Barrett256.vo | 1m51.28s | 2284788 ko || -0m01.34s || -37152 ko | -1.20% | -1.62% 1m47.35s | 1832408 ko | fiat-go/32/p384/p384.go | 1m49.23s | 1724040 ko || -0m01.87s || 108368 ko | -1.72% | +6.28% 1m32.25s | 2164300 ko | SlowPrimeSynthesisExamples.vo | 1m33.38s | 2139896 ko || -0m01.12s || 24404 ko | -1.21% | +1.14% 0m51.90s | 1016836 ko | Rewriter/Passes/MultiRetSplit.vo | 0m53.14s | 1016808 ko || -0m01.24s || 28 ko | -2.33% | +0.00% 0m47.25s | 2146984 ko | ExtractionOCaml/solinas_reduction | 0m45.91s | 2147072 ko || +0m01.34s || -88 ko | +2.91% | -0.00% 0m45.18s | 2146856 ko | ExtractionOCaml/word_by_word_montgomery | 0m46.83s | 2147056 ko || -0m01.64s || -200 ko | -3.52% | -0.00% 0m43.40s | 1864240 ko | ExtractionOCaml/bedrock2_dettman_multiplication | 0m41.96s | 1870364 ko || +0m01.43s || -6124 ko | +3.43% | -0.32% 0m41.82s | 1863680 ko | ExtractionOCaml/unsaturated_solinas | 0m43.45s | 1863368 ko || -0m01.63s || 312 ko | -3.75% | +0.01% 0m29.25s | 1544592 ko | StandaloneDebuggingExamples.vo | 0m30.51s | 1556744 ko || -0m01.26s || -12152 ko | -4.12% | -0.78% 0m16.94s | 283032 ko | fiat-go/64/p434/p434.go | 0m18.07s | 247128 ko || -0m01.12s || 35904 ko | -6.25% | +14.52% 0m16.74s | 2204356 ko | ExtractionHaskell/with_bedrock2_solinas_reduction.hs | 0m17.83s | 2237008 ko || -0m01.08s || -32652 ko | -6.11% | -1.45% 0m16.25s | 253040 ko | fiat-rust/src/p434_64.rs | 0m17.99s | 278560 ko || -0m01.73s || -25520 ko | -9.67% | -9.16% 8m28.15s | 2591812 ko | Bedrock/End2End/X25519/GarageDoor.vo | 8m27.82s | 2587848 ko || +0m00.32s || 3964 ko | +0.06% | +0.15% 1m51.16s | 1612836 ko | Bedrock/End2End/X25519/Field25519.vo | 1m52.02s | 1604084 ko || -0m00.86s || 8752 ko | -0.76% | +0.54% 0m56.72s | 707388 ko | Rewriter/RulesProofs.vo | 0m55.84s | 703908 ko || +0m00.87s || 3480 ko | +1.57% | +0.49% 0m49.15s | 2147776 ko | ExtractionOCaml/bedrock2_solinas_reduction | 0m48.43s | 2147920 ko || +0m00.71s || -144 ko | +1.48% | -0.00% 0m48.64s | 1869620 ko | Fancy/Montgomery256.vo | 0m48.94s | 1855572 ko || -0m00.29s || 14048 ko | -0.61% | +0.75% 0m48.41s | 2147988 ko | ExtractionOCaml/with_bedrock2_word_by_word_montgomery | 0m48.03s | 2147920 ko || +0m00.37s || 68 ko | +0.79% | +0.00% 0m48.12s | 2148012 ko | ExtractionOCaml/bedrock2_word_by_word_montgomery | 0m47.94s | 2147964 ko || +0m00.17s || 48 ko | +0.37% | +0.00% 0m47.07s | 2148072 ko | ExtractionOCaml/bedrock2_unsaturated_solinas | 0m46.98s | 2147976 ko || +0m00.09s || 96 ko | +0.19% | +0.00% 0m46.31s | 2148036 ko | ExtractionOCaml/with_bedrock2_unsaturated_solinas | 0m46.12s | 2147932 ko || +0m00.19s || 104 ko | +0.41% | +0.00% 0m42.55s | 1864184 ko | ExtractionOCaml/bedrock2_base_conversion | 0m41.57s | 1864708 ko || +0m00.97s || -524 ko | +2.35% | -0.02% 0m42.07s | 1864464 ko | ExtractionOCaml/with_bedrock2_base_conversion | 0m41.20s | 1823744 ko || +0m00.86s || 40720 ko | +2.11% | +2.23% 0m41.68s | 1858816 ko | ExtractionOCaml/with_bedrock2_saturated_solinas | 0m40.96s | 1851212 ko || +0m00.71s || 7604 ko | +1.75% | +0.41% 0m41.66s | 1859960 ko | ExtractionOCaml/with_bedrock2_dettman_multiplication | 0m41.21s | 1851288 ko || +0m00.44s || 8672 ko | +1.09% | +0.46% 0m41.50s | 1857940 ko | ExtractionOCaml/with_bedrock2_solinas_reduction | 0m41.06s | 1849540 ko || +0m00.43s || 8400 ko | +1.07% | +0.45% 0m40.74s | 62064 ko | fiat-go/32/p521/p521.go | 0m41.26s | 68256 ko || -0m00.51s || -6192 ko | -1.26% | -9.07% 0m40.14s | 1864708 ko | ExtractionOCaml/dettman_multiplication | 0m40.52s | 1786504 ko || -0m00.38s || 78204 ko | -0.93% | +4.37% 0m38.85s | 149624 ko | fiat-bedrock2/src/p521_32.c | 0m38.98s | 143940 ko || -0m00.12s || 5684 ko | -0.33% | +3.94% 0m38.54s | 1775188 ko | ExtractionOCaml/saturated_solinas | 0m38.71s | 1764700 ko || -0m00.17s || 10488 ko | -0.43% | +0.59% 0m37.51s | 62500 ko | fiat-zig/src/p521_32.zig | 0m37.39s | 59332 ko || +0m00.11s || 3168 ko | +0.32% | +5.33% 0m37.48s | 1294192 ko | Bedrock/End2End/X25519/GarageDoorTop.vo | 0m37.27s | 1292880 ko || +0m00.20s || 1312 ko | +0.56% | +0.10% 0m37.44s | 66780 ko | fiat-c/src/p521_32.c | 0m37.77s | 60280 ko || -0m00.33s || 6500 ko | -0.87% | +10.78% 0m37.42s | 60608 ko | fiat-rust/src/p521_32.rs | 0m37.83s | 61900 ko || -0m00.40s || -1292 ko | -1.08% | -2.08% 0m37.11s | 2378444 ko | ExtractionOCaml/bedrock2_solinas_reduction.ml | 0m37.46s | 2364772 ko || -0m00.35s || 13672 ko | -0.93% | +0.57% 0m36.36s | 2319684 ko | ExtractionOCaml/with_bedrock2_word_by_word_montgomery.ml | 0m36.69s | 2362052 ko || -0m00.32s || -42368 ko | -0.89% | -1.79% 0m36.34s | 2322608 ko | ExtractionOCaml/bedrock2_word_by_word_montgomery.ml | 0m36.87s | 2363400 ko || -0m00.52s || -40792 ko | -1.43% | -1.72% 0m35.65s | 2239920 ko | ExtractionOCaml/solinas_reduction.ml | 0m35.60s | 2244256 ko || +0m00.04s || -4336 ko | +0.14% | -0.19% 0m34.94s | 1413516 ko | ExtractionOCaml/perf_word_by_word_montgomery | 0m34.37s | 1401160 ko || +0m00.57s || 12356 ko | +1.65% | +0.88% 0m34.88s | 1413452 ko | ExtractionOCaml/perf_unsaturated_solinas | 0m34.36s | 1398860 ko || +0m00.52s || 14592 ko | +1.51% | +1.04% 0m34.62s | 1284740 ko | Bedrock/End2End/X25519/MontgomeryLadder.vo | 0m35.00s | 1284680 ko || -0m00.38s || 60 ko | -1.08% | +0.00% 0m34.36s | 2237140 ko | ExtractionOCaml/word_by_word_montgomery.ml | 0m34.45s | 2220616 ko || -0m00.09s || 16524 ko | -0.26% | +0.74% 0m34.01s | 915808 ko | Rewriter/Passes/MulSplit.vo | 0m34.72s | 913152 ko || -0m00.71s || 2656 ko | -2.04% | +0.29% 0m33.79s | 2251096 ko | ExtractionOCaml/bedrock2_unsaturated_solinas.ml | 0m33.50s | 2229256 ko || +0m00.28s || 21840 ko | +0.86% | +0.97% 0m33.14s | 2251808 ko | ExtractionOCaml/with_bedrock2_unsaturated_solinas.ml | 0m33.28s | 2229952 ko || -0m00.14s || 21856 ko | -0.42% | +0.98% 0m31.42s | 2149728 ko | ExtractionOCaml/unsaturated_solinas.ml | 0m31.33s | 2124628 ko || +0m00.09s || 25100 ko | +0.28% | +1.18% 0m29.99s | 2166628 ko | ExtractionOCaml/bedrock2_dettman_multiplication.ml | 0m30.23s | 2179988 ko || -0m00.24s || -13360 ko | -0.79% | -0.61% 0m29.53s | 2156584 ko | ExtractionOCaml/with_bedrock2_solinas_reduction.ml | 0m29.10s | 2125132 ko || +0m00.42s || 31452 ko | +1.47% | +1.48% 0m29.25s | 2161092 ko | ExtractionOCaml/with_bedrock2_base_conversion.ml | 0m28.31s | 2121844 ko || +0m00.94s || 39248 ko | +3.32% | +1.84% 0m29.19s | 2161336 ko | ExtractionOCaml/bedrock2_base_conversion.ml | 0m29.47s | 2121804 ko || -0m00.27s || 39532 ko | -0.95% | +1.86% 0m29.12s | 2156880 ko | ExtractionOCaml/bedrock2_saturated_solinas.ml | 0m29.25s | 2124968 ko || -0m00.12s || 31912 ko | -0.44% | +1.50% 0m29.07s | 2156996 ko | ExtractionOCaml/with_bedrock2_saturated_solinas.ml | 0m28.94s | 2124832 ko || +0m00.12s || 32164 ko | +0.44% | +1.51% 0m28.90s | 2158288 ko | ExtractionOCaml/with_bedrock2_dettman_multiplication.ml | 0m29.11s | 2130440 ko || -0m00.21s || 27848 ko | -0.72% | +1.30% 0m27.93s | 2064324 ko | ExtractionOCaml/dettman_multiplication.ml | 0m28.14s | 2081544 ko || -0m00.21s || -17220 ko | -0.74% | -0.82% 0m27.37s | 2077984 ko | ExtractionOCaml/saturated_solinas.ml | 0m27.45s | 2061340 ko || -0m00.07s || 16644 ko | -0.29% | +0.80% 0m26.92s | 2069712 ko | ExtractionOCaml/base_conversion.ml | 0m27.35s | 2051836 ko || -0m00.42s || 17876 ko | -1.57% | +0.87% 0m25.19s | 1381372 ko | PerfTesting/PerfTestSearch.vo | 0m25.63s | 1377272 ko || -0m00.43s || 4100 ko | -1.71% | +0.29% 0m23.10s | 1189876 ko | PushButtonSynthesis/UnsaturatedSolinas.vo | 0m23.84s | 1191348 ko || -0m00.73s || -1472 ko | -3.10% | -0.12% 0m21.56s | 1967716 ko | ExtractionOCaml/perf_unsaturated_solinas.ml | 0m21.50s | 1905172 ko || +0m00.05s || 62544 ko | +0.27% | +3.28% 0m21.46s | 1954296 ko | ExtractionOCaml/perf_word_by_word_montgomery.ml | 0m21.53s | 2007400 ko || -0m00.07s || -53104 ko | -0.32% | -2.64% 0m21.42s | 1364020 ko | Bedrock/End2End/RupicolaCrypto/Low.vo | 0m21.81s | 1360444 ko || -0m00.38s || 3576 ko | -1.78% | +0.26% 0m20.10s | 1163460 ko | PushButtonSynthesis/WordByWordMontgomery.vo | 0m20.64s | 1164604 ko || -0m00.53s || -1144 ko | -2.61% | -0.09% 0m18.30s | 301772 ko | fiat-bedrock2/src/p434_64.c | 0m18.00s | 301336 ko || +0m00.30s || 436 ko | +1.66% | +0.14% 0m18.28s | 1142612 ko | Bedrock/Field/Translation/Proofs/Func.vo | 0m18.75s | 1141560 ko || -0m00.46s || 1052 ko | -2.50% | +0.09% 0m17.74s | 405312 ko | fiat-bedrock2/src/secp256k1_montgomery_scalar_32.c | 0m17.23s | 404568 ko || +0m00.50s || 744 ko | +2.95% | +0.18% 0m17.68s | 267560 ko | fiat-json/src/p434_64.json | 0m17.55s | 336912 ko || +0m00.12s || -69352 ko | +0.74% | -20.58% 0m17.57s | 432032 ko | fiat-bedrock2/src/p256_scalar_32.c | 0m17.05s | 461272 ko || +0m00.51s || -29240 ko | +3.04% | -6.33% 0m17.48s | 2202308 ko | ExtractionHaskell/bedrock2_solinas_reduction.hs | 0m17.75s | 2235132 ko || -0m00.26s || -32824 ko | -1.52% | -1.46% 0m17.46s | 1380556 ko | PerfTesting/PerfTestSearchPattern.vo | 0m17.92s | 1380832 ko || -0m00.46s || -276 ko | -2.56% | -0.01% 0m17.41s | 230072 ko | fiat-zig/src/p434_64.zig | 0m17.32s | 253724 ko || +0m00.08s || -23652 ko | +0.51% | -9.32% 0m17.35s | 1223956 ko | Bedrock/Field/Synthesis/New/Signature.vo | 0m17.66s | 1220516 ko || -0m00.30s || 3440 ko | -1.75% | +0.28% 0m17.35s | 2166060 ko | ExtractionHaskell/bedrock2_word_by_word_montgomery.hs | 0m17.53s | 2194808 ko || -0m00.17s || -28748 ko | -1.02% | -1.30% 0m17.28s | 2164448 ko | ExtractionHaskell/with_bedrock2_word_by_word_montgomery.hs | 0m17.52s | 2193664 ko || -0m00.23s || -29216 ko | -1.36% | -1.33% 0m17.16s | 254416 ko | fiat-c/src/p434_64.c | 0m17.42s | 251820 ko || -0m00.26s || 2596 ko | -1.49% | +1.03% 0m17.15s | 390476 ko | fiat-bedrock2/src/secp256k1_montgomery_32.c | 0m16.69s | 415512 ko || +0m00.45s || -25036 ko | +2.75% | -6.02% 0m17.01s | 351572 ko | fiat-java/src/FiatSecp256K1MontgomeryScalar.java | 0m16.40s | 455088 ko || +0m00.61s || -103516 ko | +3.71% | -22.74% 0m16.90s | 445272 ko | fiat-go/32/secp256k1montgomeryscalar/secp256k1montgomeryscalar.go | 0m17.19s | 360700 ko || -0m00.29s || 84572 ko | -1.68% | +23.44% 0m16.86s | 1160300 ko | Bedrock/Field/Translation/Proofs/Cmd.vo | 0m17.42s | 1157936 ko || -0m00.56s || 2364 ko | -3.21% | +0.20% 0m16.84s | 456724 ko | fiat-bedrock2/src/curve25519_scalar_32.c | 0m16.68s | 405344 ko || +0m00.16s || 51380 ko | +0.95% | +12.67% 0m16.83s | 454284 ko | fiat-json/src/secp256k1_montgomery_scalar_32.json | 0m16.39s | 468528 ko || +0m00.43s || -14244 ko | +2.68% | -3.04% 0m16.79s | 2032540 ko | ExtractionHaskell/word_by_word_montgomery.hs | 0m16.91s | 2067180 ko || -0m00.12s || -34640 ko | -0.70% | -1.67% 0m16.77s | 2093008 ko | ExtractionHaskell/solinas_reduction.hs | 0m16.77s | 2051684 ko || +0m00.00s || 41324 ko | +0.00% | +2.01% 0m16.76s | 371064 ko | fiat-java/src/FiatP256Scalar.java | 0m15.92s | 334232 ko || +0m00.84s || 36832 ko | +5.27% | +11.01% 0m16.75s | 2144072 ko | ExtractionHaskell/bedrock2_unsaturated_solinas.hs | 0m16.53s | 2074184 ko || +0m00.21s || 69888 ko | +1.33% | +3.36% 0m16.73s | 406956 ko | fiat-json/src/curve25519_scalar_32.json | 0m16.02s | 450328 ko || +0m00.71s || -43372 ko | +4.43% | -9.63% 0m16.73s | 347524 ko | fiat-zig/src/secp256k1_montgomery_scalar_32.zig | 0m16.35s | 397760 ko || +0m00.37s || -50236 ko | +2.32% | -12.62% 0m16.72s | 390380 ko | fiat-zig/src/p256_scalar_32.zig | 0m16.18s | 356296 ko || +0m00.53s || 34084 ko | +3.33% | +9.56% 0m16.70s | 391092 ko | fiat-go/32/p256scalar/p256scalar.go | 0m16.94s | 366900 ko || -0m00.24s || 24192 ko | -1.41% | +6.59% 0m16.68s | 405796 ko | fiat-java/src/FiatCurve25519Scalar.java | 0m16.15s | 370228 ko || +0m00.53s || 35568 ko | +3.28% | +9.60% 0m16.66s | 378844 ko | fiat-rust/src/p256_scalar_32.rs | 0m15.98s | 411316 ko || +0m00.67s || -32472 ko | +4.25% | -7.89% 0m16.61s | 366928 ko | fiat-c/src/secp256k1_montgomery_scalar_32.c | 0m16.58s | 426780 ko || +0m00.03s || -59852 ko | +0.18% | -14.02% 0m16.59s | 340692 ko | fiat-rust/src/secp256k1_montgomery_32.rs | 0m16.47s | 353508 ko || +0m00.12s || -12816 ko | +0.72% | -3.62% 0m16.58s | 385436 ko | fiat-json/src/secp256k1_montgomery_32.json | 0m16.19s | 407896 ko || +0m00.38s || -22460 ko | +2.40% | -5.50% 0m16.55s | 416232 ko | fiat-go/32/curve25519scalar/curve25519scalar.go | 0m16.41s | 346260 ko || +0m00.14s || 69972 ko | +0.85% | +20.20% 0m16.53s | 338172 ko | fiat-java/src/FiatSecp256K1Montgomery.java | 0m16.15s | 423920 ko || +0m00.38s || -85748 ko | +2.35% | -20.22% 0m16.53s | 396224 ko | fiat-rust/src/secp256k1_montgomery_scalar_32.rs | 0m16.61s | 445068 ko || -0m00.07s || -48844 ko | -0.48% | -10.97% 0m16.50s | 2144128 ko | ExtractionHaskell/with_bedrock2_unsaturated_solinas.hs | 0m16.55s | 2072880 ko || -0m00.05s || 71248 ko | -0.30% | +3.43% 0m16.45s | 1139712 ko | Bedrock/End2End/Poly1305/Field1305.vo | 0m17.26s | 1137640 ko || -0m00.81s || 2072 ko | -4.69% | +0.18% 0m16.45s | 364804 ko | fiat-c/src/p256_scalar_32.c | 0m16.45s | 434352 ko || +0m00.00s || -69548 ko | +0.00% | -16.01% 0m16.36s | 436776 ko | fiat-zig/src/secp256k1_montgomery_32.zig | 0m16.01s | 437516 ko || +0m00.34s || -740 ko | +2.18% | -0.16% 0m16.33s | 359632 ko | fiat-zig/src/curve25519_scalar_32.zig | 0m15.80s | 434444 ko || +0m00.52s || -74812 ko | +3.35% | -17.22% 0m16.32s | 440340 ko | fiat-go/32/secp256k1montgomery/secp256k1montgomery.go | 0m16.19s | 415772 ko || +0m00.12s || 24568 ko | +0.80% | +5.90% 0m16.31s | 431364 ko | fiat-json/src/p256_scalar_32.json | 0m16.54s | 468452 ko || -0m00.23s || -37088 ko | -1.39% | -7.91% 0m16.28s | 418340 ko | fiat-c/src/secp256k1_montgomery_32.c | 0m16.07s | 354548 ko || +0m00.21s || 63792 ko | +1.30% | +17.99% 0m16.11s | 323148 ko | fiat-c/src/curve25519_scalar_32.c | 0m15.37s | 376208 ko || +0m00.74s || -53060 ko | +4.81% | -14.10% 0m16.09s | 429024 ko | fiat-rust/src/curve25519_scalar_32.rs | 0m16.31s | 405604 ko || -0m00.21s || 23420 ko | -1.34% | +5.77% 0m16.07s | 392824 ko | fiat-bedrock2/src/p256_32.c | 0m15.76s | 418500 ko || +0m00.31s || -25676 ko | +1.96% | -6.13% 0m15.73s | 2026232 ko | ExtractionHaskell/unsaturated_solinas.hs | 0m15.70s | 1972880 ko || +0m00.03s || 53352 ko | +0.19% | +2.70% 0m15.67s | 400632 ko | fiat-java/src/FiatP256.java | 0m15.23s | 347976 ko || +0m00.43s || 52656 ko | +2.88% | +15.13% 0m15.67s | 426864 ko | fiat-rust/src/p256_32.rs | 0m15.43s | 436980 ko || +0m00.24s || -10116 ko | +1.55% | -2.31% 0m15.65s | 433612 ko | fiat-go/32/p256/p256.go | 0m15.46s | 363800 ko || +0m00.18s || 69812 ko | +1.22% | +19.18% 0m15.65s | 332588 ko | fiat-zig/src/p256_32.zig | 0m15.39s | 407124 ko || +0m00.25s || -74536 ko | +1.68% | -18.30% 0m15.56s | 2010528 ko | ExtractionHaskell/with_bedrock2_dettman_multiplication.hs | 0m15.92s | 2039152 ko || -0m00.35s || -28624 ko | -2.26% | -1.40% 0m15.53s | 2010444 ko | ExtractionHaskell/bedrock2_dettman_multiplication.hs | 0m15.68s | 2040720 ko || -0m00.15s || -30276 ko | -0.95% | -1.48% 0m15.40s | 332344 ko | fiat-c/src/p256_32.c | 0m15.21s | 376848 ko || +0m00.18s || -44504 ko | +1.24% | -11.80% 0m15.29s | 1948284 ko | ExtractionHaskell/with_bedrock2_base_conversion.hs | 0m15.53s | 2016228 ko || -0m00.24s || -67944 ko | -1.54% | -3.36% 0m15.23s | 1959948 ko | ExtractionHaskell/with_bedrock2_saturated_solinas.hs | 0m15.52s | 2013692 ko || -0m00.28s || -53744 ko | -1.86% | -2.66% 0m15.22s | 1958896 ko | ExtractionHaskell/dettman_multiplication.hs | 0m15.10s | 1903264 ko || +0m00.12s || 55632 ko | +0.79% | +2.92% 0m15.15s | 1948672 ko | ExtractionHaskell/bedrock2_base_conversion.hs | 0m15.63s | 2015624 ko || -0m00.48s || -66952 ko | -3.07% | -3.32% 0m15.12s | 445592 ko | fiat-json/src/p256_32.json | 0m15.46s | 416848 ko || -0m00.34s || 28744 ko | -2.19% | +6.89% 0m15.11s | 1960852 ko | ExtractionHaskell/bedrock2_saturated_solinas.hs | 0m15.44s | 2013416 ko || -0m00.33s || -52564 ko | -2.13% | -2.61% 0m14.88s | 1955220 ko | ExtractionHaskell/base_conversion.hs | 0m14.93s | 1897380 ko || -0m00.04s || 57840 ko | -0.33% | +3.04% 0m14.86s | 1921176 ko | ExtractionHaskell/saturated_solinas.hs | 0m14.96s | 1916928 ko || -0m00.10s || 4248 ko | -0.66% | +0.22% 0m11.31s | 199152 ko | fiat-bedrock2/src/p384_scalar_64.c | 0m11.18s | 194984 ko || +0m00.13s || 4168 ko | +1.16% | +2.13% 0m11.21s | 199888 ko | fiat-go/64/p384scalar/p384scalar.go | 0m11.15s | 164128 ko || +0m00.06s || 35760 ko | +0.53% | +21.78% 0m11.17s | 1708132 ko | Bedrock/Field/Synthesis/New/WordByWordMontgomery.vo | 0m11.30s | 1703996 ko || -0m00.13s || 4136 ko | -1.15% | +0.24% 0m10.92s | 1035420 ko | BoundsPipeline.vo | 0m11.20s | 1036784 ko || -0m00.27s || -1364 ko | -2.49% | -0.13% 0m10.91s | 169592 ko | fiat-json/src/p384_scalar_64.json | 0m10.81s | 184092 ko || +0m00.09s || -14500 ko | +0.92% | -7.87% 0m10.87s | 176344 ko | fiat-zig/src/p384_scalar_64.zig | 0m10.57s | 192372 ko || +0m00.29s || -16028 ko | +2.83% | -8.33% 0m10.73s | 166616 ko | fiat-rust/src/p384_scalar_64.rs | 0m10.84s | 176032 ko || -0m00.10s || -9416 ko | -1.01% | -5.34% 0m10.58s | 154460 ko | fiat-c/src/p384_scalar_64.c | 0m10.71s | 142320 ko || -0m00.13s || 12140 ko | -1.21% | +8.53% 0m10.15s | 1304732 ko | Bedrock/End2End/X25519/MontgomeryLadderProperties.vo | 0m10.24s | 1304688 ko || -0m00.08s || 44 ko | -0.87% | +0.00% 0m09.59s | 195012 ko | fiat-bedrock2/src/p384_64.c | 0m09.53s | 205984 ko || +0m00.06s || -10972 ko | +0.62% | -5.32% 0m09.54s | 255304 ko | fiat-bedrock2/src/p224_32.c | 0m09.46s | 246228 ko || +0m00.07s || 9076 ko | +0.84% | +3.68% 0m09.38s | 235988 ko | fiat-json/src/p224_32.json | 0m09.14s | 243676 ko || +0m00.24s || -7688 ko | +2.62% | -3.15% 0m09.29s | 195668 ko | fiat-json/src/p384_64.json | 0m09.24s | 173592 ko || +0m00.04s || 22076 ko | +0.54% | +12.71% 0m09.26s | 245908 ko | fiat-java/src/FiatP224.java | 0m09.02s | 210104 ko || +0m00.24s || 35804 ko | +2.66% | +17.04% 0m09.25s | 170924 ko | fiat-go/64/p384/p384.go | 0m09.35s | 160844 ko || -0m00.09s || 10080 ko | -1.06% | +6.26% 0m09.20s | 1040012 ko | PushButtonSynthesis/BaseConversion.vo | 0m09.41s | 1037912 ko || -0m00.21s || 2100 ko | -2.23% | +0.20% 0m09.14s | 225000 ko | fiat-go/32/p224/p224.go | 0m09.39s | 230444 ko || -0m00.25s || -5444 ko | -2.66% | -2.36% 0m09.11s | 253348 ko | fiat-rust/src/p224_32.rs | 0m09.20s | 245628 ko || -0m00.08s || 7720 ko | -0.97% | +3.14% 0m09.11s | 166552 ko | fiat-zig/src/p384_64.zig | 0m09.31s | 141172 ko || -0m00.20s || 25380 ko | -2.14% | +17.97% 0m09.10s | 167020 ko | fiat-c/src/p384_64.c | 0m09.28s | 146704 ko || -0m00.17s || 20316 ko | -1.93% | +13.84% 0m09.09s | 254100 ko | fiat-zig/src/p224_32.zig | 0m08.87s | 222884 ko || +0m00.22s || 31216 ko | +2.48% | +14.00% 0m08.96s | 232884 ko | fiat-c/src/p224_32.c | 0m08.97s | 240356 ko || -0m00.00s || -7472 ko | -0.11% | -3.10% 0m08.73s | 147896 ko | fiat-rust/src/p384_64.rs | 0m09.22s | 165796 ko || -0m00.49s || -17900 ko | -5.31% | -10.79% 0m08.26s | 1009244 ko | PushButtonSynthesis/SmallExamples.vo | 0m08.45s | 1008344 ko || -0m00.18s || 900 ko | -2.24% | +0.08% 0m08.26s | 119472 ko | fiat-json/src/p448_solinas_32.json | 0m08.29s | 123884 ko || -0m00.02s || -4412 ko | -0.36% | -3.56% 0m08.16s | 1050960 ko | PushButtonSynthesis/Primitives.vo | 0m08.27s | 1050876 ko || -0m00.10s || 84 ko | -1.33% | +0.00% 0m07.93s | 591100 ko | Rewriter/Passes/RelaxBitwidthAdcSbb.vo | 0m08.19s | 591176 ko || -0m00.25s || -76 ko | -3.17% | -0.01% 0m07.91s | 61592 ko | fiat-zig/src/p448_solinas_32.zig | 0m07.94s | 61704 ko || -0m00.03s || -112 ko | -0.37% | -0.18% 0m07.89s | 59392 ko | fiat-c/src/p448_solinas_32.c | 0m07.94s | 56764 ko || -0m00.05s || 2628 ko | -0.62% | +4.62% 0m07.88s | 61076 ko | fiat-rust/src/p448_solinas_32.rs | 0m08.00s | 57600 ko || -0m00.12s || 3476 ko | -1.50% | +6.03% 0m07.12s | 1043600 ko | PushButtonSynthesis/SolinasReduction.vo | 0m07.38s | 1043572 ko || -0m00.25s || 28 ko | -3.52% | +0.00% 0m06.64s | 52476 ko | fiat-go/64/p521/p521.go | 0m06.25s | 49644 ko || +0m00.38s || 2832 ko | +6.23% | +5.70% 0m06.27s | 574792 ko | Rewriter/Passes/NoSelect.vo | 0m06.41s | 577812 ko || -0m00.14s || -3020 ko | -2.18% | -0.52% 0m06.26s | 1048224 ko | PushButtonSynthesis/BarrettReduction.vo | 0m06.20s | 1051084 ko || +0m00.05s || -2860 ko | +0.96% | -0.27% 0m06.22s | 1132216 ko | CLI.vo | 0m06.30s | 1130060 ko || -0m00.08s || 2156 ko | -1.26% | +0.19% 0m05.96s | 1144288 ko | Bedrock/Field/Synthesis/New/UnsaturatedSolinas.vo | 0m06.15s | 1142040 ko || -0m00.19s || 2248 ko | -3.08% | +0.19% 0m05.54s | 68872 ko | fiat-bedrock2/src/p521_64.c | 0m05.56s | 68208 ko || -0m00.01s || 664 ko | -0.35% | +0.97% 0m05.42s | 51340 ko | fiat-json/src/p521_64.json | 0m05.43s | 51520 ko || -0m00.00s || -180 ko | -0.18% | -0.34% 0m05.30s | 37436 ko | fiat-zig/src/p521_64.zig | 0m04.77s | 37212 ko || +0m00.53s || 224 ko | +11.11% | +0.60% 0m04.82s | 37880 ko | fiat-rust/src/p521_64.rs | 0m05.45s | 38100 ko || -0m00.62s || -220 ko | -11.55% | -0.57% 0m04.76s | 37380 ko | fiat-c/src/p521_64.c | 0m05.37s | 37352 ko || -0m00.61s || 28 ko | -11.35% | +0.07% 0m04.66s | 1038068 ko | PushButtonSynthesis/DettmanMultiplication.vo | 0m04.63s | 1038160 ko || +0m00.03s || -92 ko | +0.64% | -0.00% 0m04.51s | 1074152 ko | Bedrock/Field/Translation/Proofs/ValidComputable/Cmd.vo | 0m04.59s | 1074372 ko || -0m00.08s || -220 ko | -1.74% | -0.02% 0m04.24s | 1047736 ko | PushButtonSynthesis/SaturatedSolinas.vo | 0m04.41s | 1047768 ko || -0m00.16s || -32 ko | -3.85% | -0.00% 0m04.01s | 1501044 ko | Bedrock/Everything.vo | 0m04.01s | 1501100 ko || +0m00.00s || -56 ko | +0.00% | -0.00% 0m03.81s | 1051824 ko | PushButtonSynthesis/FancyMontgomeryReduction.vo | 0m03.77s | 1050712 ko || +0m00.04s || 1112 ko | +1.06% | +0.10% 0m03.50s | 1367412 ko | Everything.vo | 0m03.59s | 1367556 ko || -0m00.08s || -144 ko | -2.50% | -0.01% 0m03.06s | 537952 ko | Rewriter/Passes/ArithWithRelaxedCasts.vo | 0m03.15s | 539144 ko || -0m00.08s || -1192 ko | -2.85% | -0.22% 0m02.98s | 1013864 ko | Bedrock/Field/Translation/Cmd.vo | 0m02.98s | 1014664 ko || +0m00.00s || -800 ko | +0.00% | -0.07% 0m02.96s | 1083180 ko | Rewriter/PerfTesting/Core.vo | 0m03.04s | 1083012 ko || -0m00.08s || 168 ko | -2.63% | +0.01% 0m02.94s | 70004 ko | fiat-go/64/secp256k1montgomeryscalar/secp256k1montgomeryscalar.go | 0m02.80s | 69640 ko || +0m00.14s || 364 ko | +5.00% | +0.52% 0m02.93s | 69652 ko | fiat-go/64/p256scalar/p256scalar.go | 0m02.77s | 69300 ko || +0m00.16s || 352 ko | +5.77% | +0.50% 0m02.92s | 539268 ko | Rewriter/Passes/AddAssocLeft.vo | 0m02.99s | 537676 ko || -0m00.07s || 1592 ko | -2.34% | +0.29% 0m02.90s | 1126644 ko | StandaloneHaskellMain.vo | 0m02.85s | 1124644 ko || +0m00.04s || 2000 ko | +1.75% | +0.17% 0m02.86s | 1355272 ko | PerfTesting/PerfTestPrint.vo | 0m02.97s | 1353376 ko || -0m00.11s || 1896 ko | -3.70% | +0.14% 0m02.83s | 74888 ko | fiat-json/src/p256_scalar_64.json | 0m02.73s | 69468 ko || +0m00.10s || 5420 ko | +3.66% | +7.80% 0m02.79s | 84092 ko | fiat-bedrock2/src/p256_scalar_64.c | 0m02.79s | 86516 ko || +0m00.00s || -2424 ko | +0.00% | -2.80% 0m02.76s | 87368 ko | fiat-bedrock2/src/secp256k1_montgomery_scalar_64.c | 0m02.77s | 86936 ko || -0m00.01s || 432 ko | -0.36% | +0.49% 0m02.76s | 57416 ko | fiat-go/64/p448solinas/p448solinas.go | 0m02.58s | 51820 ko || +0m00.17s || 5596 ko | +6.97% | +10.79% 0m02.76s | 73888 ko | fiat-json/src/secp256k1_montgomery_scalar_64.json | 0m02.73s | 75908 ko || +0m00.02s || -2020 ko | +1.09% | -2.66% 0m02.74s | 1077636 ko | Bedrock/Field/Stringification/Stringification.vo | 0m02.78s | 1076572 ko || -0m00.03s || 1064 ko | -1.43% | +0.09% 0m02.73s | 1010148 ko | Bedrock/Field/Translation/Func.vo | 0m02.82s | 1008988 ko || -0m00.08s || 1160 ko | -3.19% | +0.11% 0m02.72s | 64580 ko | fiat-zig/src/p256_scalar_64.zig | 0m02.71s | 62528 ko || +0m00.01s || 2052 ko | +0.36% | +3.28% 0m02.69s | 63552 ko | fiat-go/64/secp256k1montgomery/secp256k1montgomery.go | 0m02.51s | 67572 ko || +0m00.18s || -4020 ko | +7.17% | -5.94% 0m02.69s | 61992 ko | fiat-rust/src/p256_scalar_64.rs | 0m02.75s | 66124 ko || -0m00.06s || -4132 ko | -2.18% | -6.24% 0m02.69s | 63084 ko | fiat-rust/src/secp256k1_montgomery_scalar_64.rs | 0m02.71s | 66576 ko || -0m00.02s || -3492 ko | -0.73% | -5.24% 0m02.68s | 59288 ko | fiat-c/src/p256_scalar_64.c | 0m02.70s | 62336 ko || -0m00.02s || -3048 ko | -0.74% | -4.88% 0m02.67s | 1068128 ko | Bedrock/Field/Translation/Proofs/ValidComputable/Func.vo | 0m02.80s | 1068044 ko || -0m00.12s || 84 ko | -4.64% | +0.00% 0m02.67s | 68464 ko | fiat-c/src/secp256k1_montgomery_scalar_64.c | 0m02.70s | 61160 ko || -0m00.03s || 7304 ko | -1.11% | +11.94% 0m02.66s | 1153388 ko | Bedrock/Standalone/StandaloneHaskellMain.vo | 0m02.71s | 1151268 ko || -0m00.04s || 2120 ko | -1.84% | +0.18% 0m02.66s | 64136 ko | fiat-zig/src/secp256k1_montgomery_scalar_64.zig | 0m02.65s | 62200 ko || +0m00.01s || 1936 ko | +0.37% | +3.11% 0m02.65s | 1103644 ko | StandaloneOCamlMain.vo | 0m02.61s | 1103620 ko || +0m00.04s || 24 ko | +1.53% | +0.00% 0m02.64s | 1151352 ko | Bedrock/Standalone/StandaloneOCamlMain.vo | 0m02.71s | 1151372 ko || -0m00.06s || -20 ko | -2.58% | -0.00% 0m02.57s | 535856 ko | Rewriter/Passes/FlattenThunkedRects.vo | 0m02.66s | 535192 ko || -0m00.09s || 664 ko | -3.38% | +0.12% 0m02.52s | 84488 ko | fiat-bedrock2/src/secp256k1_montgomery_64.c | 0m02.47s | 93372 ko || +0m00.04s || -8884 ko | +2.02% | -9.51% 0m02.52s | 68592 ko | fiat-json/src/secp256k1_montgomery_64.json | 0m02.46s | 75364 ko || +0m00.06s || -6772 ko | +2.43% | -8.98% 0m02.49s | 1073080 ko | Bedrock/Field/Synthesis/New/ComputedOp.vo | 0m02.66s | 1071116 ko || -0m00.16s || 1964 ko | -6.39% | +0.18% 0m02.48s | 1137168 ko | Rewriter/PerfTesting/StandaloneOCamlMain.vo | 0m02.76s | 1135252 ko || -0m00.27s || 1916 ko | -10.14% | +0.16% 0m02.46s | 63516 ko | fiat-go/64/curve25519scalar/curve25519scalar.go | 0m02.31s | 70228 ko || +0m00.14s || -6712 ko | +6.49% | -9.55% 0m02.42s | 1051400 ko | Bedrock/Field/Translation/Parameters/Defaults32.vo | 0m02.46s | 1051612 ko || -0m00.04s || -212 ko | -1.62% | -0.02% 0m02.42s | 60544 ko | fiat-rust/src/secp256k1_montgomery_64.rs | 0m02.42s | 60264 ko || +0m00.00s || 280 ko | +0.00% | +0.46% 0m02.42s | 65732 ko | fiat-zig/src/secp256k1_montgomery_64.zig | 0m02.40s | 57992 ko || +0m00.02s || 7740 ko | +0.83% | +13.34% 0m02.41s | 60148 ko | fiat-c/src/secp256k1_montgomery_64.c | 0m02.44s | 60532 ko || -0m00.02s || -384 ko | -1.22% | -0.63% 0m02.37s | 1051572 ko | Bedrock/Field/Translation/Parameters/Defaults64.vo | 0m02.46s | 1051524 ko || -0m00.08s || 48 ko | -3.65% | +0.00% 0m02.35s | 1050808 ko | Bedrock/Field/Translation/Parameters/FE310.vo | 0m02.42s | 1051668 ko || -0m00.06s || -860 ko | -2.89% | -0.08% 0m02.35s | 78788 ko | fiat-bedrock2/src/curve25519_scalar_64.c | 0m02.35s | 77892 ko || +0m00.00s || 896 ko | +0.00% | +1.15% 0m02.34s | 1047512 ko | Bedrock/Field/Translation/Parameters/Defaults.vo | 0m02.33s | 1047596 ko || +0m00.00s || -84 ko | +0.42% | -0.00% 0m02.31s | 69108 ko | fiat-json/src/curve25519_scalar_64.json | 0m02.30s | 69200 ko || +0m00.01s || -92 ko | +0.43% | -0.13% 0m02.28s | 60412 ko | fiat-rust/src/curve25519_scalar_64.rs | 0m02.31s | 64076 ko || -0m00.03s || -3664 ko | -1.29% | -5.71% 0m02.25s | 67320 ko | fiat-c/src/curve25519_scalar_64.c | 0m02.29s | 59928 ko || -0m00.04s || 7392 ko | -1.74% | +12.33% 0m02.25s | 57700 ko | fiat-zig/src/curve25519_scalar_64.zig | 0m02.25s | 63136 ko || +0m00.00s || -5436 ko | +0.00% | -8.60% 0m02.17s | 541552 ko | Rewriter/Passes/UnfoldValueBarrier.vo | 0m02.27s | 541600 ko || -0m00.10s || -48 ko | -4.40% | -0.00% 0m02.10s | 540980 ko | Rewriter/Passes/StripLiteralCasts.vo | 0m02.20s | 539800 ko || -0m00.10s || 1180 ko | -4.54% | +0.21% 0m02.10s | 63292 ko | fiat-go/64/p224/p224.go | 0m01.86s | 61856 ko || +0m00.24s || 1436 ko | +12.90% | +2.32% 0m02.08s | 38528 ko | fiat-go/32/curve25519/curve25519.go | 0m02.07s | 36104 ko || +0m00.01s || 2424 ko | +0.48% | +6.71% 0m02.07s | 68844 ko | fiat-bedrock2/src/p448_solinas_64.c | 0m02.13s | 66964 ko || -0m00.06s || 1880 ko | -2.81% | +2.80% 0m02.05s | 63476 ko | fiat-go/64/p256/p256.go | 0m01.84s | 62612 ko || +0m00.20s || 864 ko | +11.41% | +1.37% 0m02.02s | 69516 ko | fiat-bedrock2/src/curve25519_32.c | 0m01.99s | 64620 ko || +0m00.03s || 4896 ko | +1.50% | +7.57% 0m01.97s | 536652 ko | Rewriter/Passes/ToFancy.vo | 0m02.01s | 537484 ko || -0m00.03s || -832 ko | -1.99% | -0.15% 0m01.96s | 52072 ko | fiat-json/src/p448_solinas_64.json | 0m01.92s | 49556 ko || +0m00.04s || 2516 ko | +2.08% | +5.07% 0m01.91s | 78628 ko | fiat-bedrock2/src/p224_64.c | 0m01.91s | 79832 ko || +0m00.00s || -1204 ko | +0.00% | -1.50% 0m01.90s | 35620 ko | fiat-c/src/p448_solinas_64.c | 0m01.93s | 35532 ko || -0m00.03s || 88 ko | -1.55% | +0.24% 0m01.90s | 35992 ko | fiat-rust/src/p448_solinas_64.rs | 0m01.93s | 37888 ko || -0m00.03s || -1896 ko | -1.55% | -5.00% 0m01.90s | 36340 ko | fiat-zig/src/p448_solinas_64.zig | 0m01.90s | 38132 ko || +0m00.00s || -1792 ko | +0.00% | -4.69% 0m01.89s | 68480 ko | fiat-json/src/p224_64.json | 0m01.93s | 76344 ko || -0m00.04s || -7864 ko | -2.07% | -10.30% 0m01.85s | 79464 ko | fiat-bedrock2/src/p256_64.c | 0m01.85s | 80384 ko || +0m00.00s || -920 ko | +0.00% | -1.14% 0m01.84s | 69732 ko | fiat-json/src/p256_64.json | 0m01.85s | 68332 ko || -0m00.01s || 1400 ko | -0.54% | +2.04% 0m01.84s | 60888 ko | fiat-zig/src/p224_64.zig | 0m01.87s | 60200 ko || -0m00.03s || 688 ko | -1.60% | +1.14% 0m01.83s | 51832 ko | fiat-json/src/curve25519_32.json | 0m01.91s | 54384 ko || -0m00.07s || -2552 ko | -4.18% | -4.69% 0m01.82s | 57456 ko | fiat-zig/src/p256_64.zig | 0m01.79s | 57520 ko || +0m00.03s || -64 ko | +1.67% | -0.11% 0m01.81s | 60544 ko | fiat-rust/src/p224_64.rs | 0m01.87s | 61580 ko || -0m00.06s || -1036 ko | -3.20% | -1.68% 0m01.77s | 58112 ko | fiat-c/src/p224_64.c | 0m01.78s | 61864 ko || -0m00.01s || -3752 ko | -0.56% | -6.06% 0m01.77s | 60016 ko | fiat-rust/src/p256_64.rs | 0m01.78s | 60884 ko || -0m00.01s || -868 ko | -0.56% | -1.42% 0m01.76s | 36740 ko | fiat-java/src/FiatCurve25519.java | 0m01.70s | 35152 ko || +0m00.06s || 1588 ko | +3.52% | +4.51% 0m01.76s | 35116 ko | fiat-rust/src/curve25519_32.rs | 0m01.76s | 34160 ko || +0m00.00s || 956 ko | +0.00% | +2.79% 0m01.75s | 35380 ko | fiat-zig/src/curve25519_32.zig | 0m01.75s | 35084 ko || +0m00.00s || 296 ko | +0.00% | +0.84% 0m01.74s | 35840 ko | fiat-c/src/curve25519_32.c | 0m01.76s | 34260 ko || -0m00.02s || 1580 ko | -1.13% | +4.61% 0m01.74s | 65196 ko | fiat-c/src/p256_64.c | 0m01.76s | 62724 ko || -0m00.02s || 2472 ko | -1.13% | +3.94% 0m01.45s | 596340 ko | CompilersTestCases.vo | 0m01.51s | 596224 ko || -0m00.06s || 116 ko | -3.97% | +0.01% 0m01.44s | 53596 ko | fiat-bedrock2/src/secp256k1_dettman_32.c | 0m01.45s | 51196 ko || -0m00.01s || 2400 ko | -0.68% | +4.68% 0m01.28s | 42572 ko | fiat-json/src/secp256k1_dettman_32.json | 0m01.30s | 43796 ko || -0m00.02s || -1224 ko | -1.53% | -2.79% 0m01.22s | 25936 ko | fiat-c/src/secp256k1_dettman_32.c | 0m01.23s | 26436 ko || -0m00.01s || -500 ko | -0.81% | -1.89% 0m01.22s | 26988 ko | fiat-go/32/secp256k1dettman/secp256k1dettman.go | 0m01.26s | 26796 ko || -0m00.04s || 192 ko | -3.17% | +0.71% 0m01.22s | 27128 ko | fiat-java/src/FiatSecp256K1Dettman.java | 0m01.21s | 27648 ko || +0m00.01s || -520 ko | +0.82% | -1.88% 0m01.22s | 26456 ko | fiat-rust/src/secp256k1_dettman_32.rs | 0m01.24s | 26404 ko || -0m00.02s || 52 ko | -1.61% | +0.19% 0m01.20s | 26264 ko | fiat-zig/src/secp256k1_dettman_32.zig | 0m01.21s | 26620 ko || -0m00.01s || -356 ko | -0.82% | -1.33% 0m00.72s | 33336 ko | fiat-go/64/curve25519/curve25519.go | 0m00.62s | 33132 ko || +0m00.09s || 204 ko | +16.12% | +0.61% 0m00.63s | 438660 ko | Rewriter/Rules.vo | 0m00.63s | 436796 ko || +0m00.00s || 1864 ko | +0.00% | +0.42% 0m00.58s | 552492 ko | Rewriter/All.vo | 0m00.60s | 552492 ko || -0m00.02s || 0 ko | -3.33% | +0.00% 0m00.54s | 123656 ko | ExtractionOCaml/with_bedrock2_saturated_solinas.cmi | 0m00.54s | 122456 ko || +0m00.00s || 1200 ko | +0.00% | +0.97% 0m00.54s | 123868 ko | ExtractionOCaml/with_bedrock2_solinas_reduction.cmi | 0m00.55s | 122976 ko || -0m00.01s || 892 ko | -1.81% | +0.72% 0m00.54s | 120496 ko | ExtractionOCaml/with_bedrock2_word_by_word_montgomery.cmi | 0m00.56s | 122432 ko || -0m00.02s || -1936 ko | -3.57% | -1.58% 0m00.53s | 120220 ko | ExtractionOCaml/bedrock2_solinas_reduction.cmi | 0m00.54s | 120352 ko || -0m00.01s || -132 ko | -1.85% | -0.10% 0m00.53s | 122856 ko | ExtractionOCaml/unsaturated_solinas.cmi | 0m00.52s | 121012 ko || +0m00.01s || 1844 ko | +1.92% | +1.52% 0m00.53s | 122964 ko | ExtractionOCaml/with_bedrock2_unsaturated_solinas.cmi | 0m00.56s | 123648 ko || -0m00.03s || -684 ko | -5.35% | -0.55% 0m00.53s | 39636 ko | fiat-bedrock2/src/curve25519_64.c | 0m00.50s | 38928 ko || +0m00.03s || 708 ko | +6.00% | +1.81% 0m00.52s | 123624 ko | ExtractionOCaml/bedrock2_base_conversion.cmi | 0m00.53s | 123936 ko || -0m00.01s || -312 ko | -1.88% | -0.25% 0m00.52s | 120356 ko | ExtractionOCaml/dettman_multiplication.cmi | 0m00.50s | 120344 ko || +0m00.02s || 12 ko | +4.00% | +0.00% 0m00.52s | 123888 ko | ExtractionOCaml/with_bedrock2_base_conversion.cmi | 0m00.52s | 123416 ko || +0m00.00s || 472 ko | +0.00% | +0.38% 0m00.52s | 121844 ko | ExtractionOCaml/with_bedrock2_dettman_multiplication.cmi | 0m00.52s | 121848 ko || +0m00.00s || -4 ko | +0.00% | -0.00% 0m00.51s | 122700 ko | ExtractionOCaml/bedrock2_unsaturated_solinas.cmi | 0m00.53s | 123096 ko || -0m00.02s || -396 ko | -3.77% | -0.32% 0m00.50s | 120684 ko | ExtractionOCaml/base_conversion.cmi | 0m00.50s | 122432 ko || +0m00.00s || -1748 ko | +0.00% | -1.42% 0m00.50s | 120748 ko | ExtractionOCaml/bedrock2_word_by_word_montgomery.cmi | 0m00.57s | 120620 ko || -0m00.06s || 128 ko | -12.28% | +0.10% 0m00.50s | 120344 ko | ExtractionOCaml/saturated_solinas.cmi | 0m00.51s | 120300 ko || -0m00.01s || 44 ko | -1.96% | +0.03% 0m00.50s | 28344 ko | fiat-zig/src/curve25519_64.zig | 0m00.46s | 28560 ko || +0m00.03s || -216 ko | +8.69% | -0.75% 0m00.49s | 123236 ko | ExtractionOCaml/bedrock2_dettman_multiplication.cmi | 0m00.53s | 122576 ko || -0m00.04s || 660 ko | -7.54% | +0.53% 0m00.49s | 120500 ko | ExtractionOCaml/word_by_word_montgomery.cmi | 0m00.48s | 120356 ko || +0m00.01s || 144 ko | +2.08% | +0.11% 0m00.49s | 35980 ko | fiat-json/src/curve25519_64.json | 0m00.52s | 34660 ko || -0m00.03s || 1320 ko | -5.76% | +3.80% 0m00.49s | 28488 ko | fiat-rust/src/curve25519_64.rs | 0m00.47s | 27384 ko || +0m00.02s || 1104 ko | +4.25% | +4.03% 0m00.48s | 121720 ko | ExtractionOCaml/bedrock2_saturated_solinas.cmi | 0m00.52s | 122768 ko || -0m00.04s || -1048 ko | -7.69% | -0.85% 0m00.47s | 119616 ko | ExtractionOCaml/solinas_reduction.cmi | 0m00.49s | 120324 ko || -0m00.02s || -708 ko | -4.08% | -0.58% 0m00.47s | 28124 ko | fiat-c/src/curve25519_64.c | 0m00.45s | 28304 ko || +0m00.01s || -180 ko | +4.44% | -0.63% 0m00.44s | 37236 ko | fiat-go/64/curve25519solinas/curve25519solinas.go | 0m00.40s | 37736 ko || +0m00.03s || -500 ko | +9.99% | -1.32% 0m00.43s | 38744 ko | fiat-json/src/curve25519_solinas_64.json | 0m00.43s | 40512 ko || +0m00.00s || -1768 ko | +0.00% | -4.36% 0m00.43s | 38224 ko | fiat-rust/src/curve25519_solinas_64.rs | 0m00.41s | 37192 ko || +0m00.02s || 1032 ko | +4.87% | +2.77% 0m00.42s | 45732 ko | fiat-bedrock2/src/curve25519_solinas_64.c | 0m00.40s | 42468 ko || +0m00.01s || 3264 ko | +4.99% | +7.68% 0m00.42s | 37052 ko | fiat-zig/src/curve25519_solinas_64.zig | 0m00.41s | 36628 ko || +0m00.01s || 424 ko | +2.43% | +1.15% 0m00.38s | 37156 ko | fiat-c/src/curve25519_solinas_64.c | 0m00.42s | 37160 ko || -0m00.03s || -4 ko | -9.52% | -0.01% 0m00.29s | 26484 ko | fiat-go/32/poly1305/poly1305.go | 0m00.28s | 26668 ko || +0m00.00s || -184 ko | +3.57% | -0.68% 0m00.26s | 33824 ko | fiat-bedrock2/src/poly1305_32.c | 0m00.26s | 33836 ko || +0m00.00s || -12 ko | +0.00% | -0.03% 0m00.24s | 26896 ko | fiat-go/64/secp256k1dettman/secp256k1dettman.go | 0m00.22s | 26224 ko || +0m00.01s || 672 ko | +9.09% | +2.56% 0m00.24s | 26316 ko | fiat-java/src/FiatPoly1305.java | 0m00.22s | 25696 ko || +0m00.01s || 620 ko | +9.09% | +2.41% 0m00.24s | 31548 ko | fiat-json/src/poly1305_32.json | 0m00.24s | 31200 ko || +0m00.00s || 348 ko | +0.00% | +1.11% 0m00.23s | 26104 ko | fiat-c/src/poly1305_32.c | 0m00.21s | 25912 ko || +0m00.02s || 192 ko | +9.52% | +0.74% 0m00.23s | 27116 ko | fiat-go/64/poly1305/poly1305.go | 0m00.17s | 27576 ko || +0m00.06s || -460 ko | +35.29% | -1.66% 0m00.23s | 26228 ko | fiat-rust/src/poly1305_32.rs | 0m00.22s | 26228 ko || +0m00.01s || 0 ko | +4.54% | +0.00% 0m00.22s | 31180 ko | fiat-bedrock2/src/secp256k1_dettman_64.c | 0m00.23s | 30968 ko || -0m00.01s || 212 ko | -4.34% | +0.68% 0m00.21s | 25520 ko | fiat-zig/src/poly1305_32.zig | 0m00.21s | 25420 ko || +0m00.00s || 100 ko | +0.00% | +0.39% 0m00.20s | 25196 ko | fiat-json/src/secp256k1_dettman_64.json | 0m00.19s | 24872 ko || +0m00.01s || 324 ko | +5.26% | +1.30% 0m00.20s | 22184 ko | fiat-zig/src/secp256k1_dettman_64.zig | 0m00.18s | 21864 ko || +0m00.02s || 320 ko | +11.11% | +1.46% 0m00.18s | 21800 ko | fiat-c/src/secp256k1_dettman_64.c | 0m00.18s | 21800 ko || +0m00.00s || 0 ko | +0.00% | +0.00% 0m00.18s | 22084 ko | fiat-rust/src/secp256k1_dettman_64.rs | 0m00.18s | 22376 ko || +0m00.00s || -292 ko | +0.00% | -1.30% 0m00.17s | 61932 ko | ExtractionOCaml/perf_unsaturated_solinas.cmi | 0m00.19s | 62248 ko || -0m00.01s || -316 ko | -10.52% | -0.50% 0m00.16s | 62528 ko | ExtractionOCaml/perf_word_by_word_montgomery.cmi | 0m00.16s | 61452 ko || +0m00.00s || 1076 ko | +0.00% | +1.75% 0m00.15s | 28964 ko | fiat-json/src/poly1305_64.json | 0m00.14s | 27736 ko || +0m00.00s || 1228 ko | +7.14% | +4.42% 0m00.13s | 25196 ko | fiat-rust/src/poly1305_64.rs | 0m00.12s | 24336 ko || +0m00.01s || 860 ko | +8.33% | +3.53% 0m00.12s | 29576 ko | fiat-bedrock2/src/poly1305_64.c | 0m00.12s | 29648 ko || +0m00.00s || -72 ko | +0.00% | -0.24% 0m00.12s | 24992 ko | fiat-c/src/poly1305_64.c | 0m00.12s | 24612 ko || +0m00.00s || 380 ko | +0.00% | +1.54% 0m00.12s | 24928 ko | fiat-zig/src/poly1305_64.zig | 0m00.13s | 24612 ko || -0m00.01s || 316 ko | -7.69% | +1.28% ``` </p> </details>
For https://github.com/mit-plv/fiat-crypto/pull/1609 We don't yet include the ones that are higher-order-than 3, those need more debugging. Co-authored-by: Andres Erbsen <[email protected]> <details><summary>Timing Diff</summary> <p> ``` After | Peak Mem | File Name | Before | Peak Mem || Change || Change (mem) | % Change | % Change (mem) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 119m55.01s | 2852288 ko | Total Time / Peak Mem | 116m54.82s | 2852504 ko || +3m00.19s || -216 ko | +2.56% | -0.00% ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 4m23.28s | 1922200 ko | Rewriter/Passes/ArithWithCasts.vo | 3m44.64s | 1804812 ko || +0m38.63s || 117388 ko | +17.20% | +6.50% 1m56.74s | 1630248 ko | fiat-java/src/FiatP384Scalar.java | 1m37.68s | 1868416 ko || +0m19.06s || -238168 ko | +19.51% | -12.74% 1m58.86s | 1834476 ko | fiat-bedrock2/src/p384_32.c | 1m40.20s | 1821748 ko || +0m18.65s || 12728 ko | +18.62% | +0.69% 1m57.91s | 1645388 ko | fiat-json/src/p384_scalar_32.json | 1m39.64s | 2106288 ko || +0m18.26s || -460900 ko | +18.33% | -21.88% 0m55.68s | 1150564 ko | Rewriter/Passes/Arith.vo | 0m40.86s | 1092012 ko || +0m14.82s || 58552 ko | +36.27% | +5.36% 2m00.58s | 2234976 ko | fiat-bedrock2/src/p384_scalar_32.c | 1m47.08s | 2226524 ko || +0m13.50s || 8452 ko | +12.60% | +0.37% 1m56.68s | 1764652 ko | fiat-java/src/FiatP384.java | 1m44.50s | 1969328 ko || +0m12.18s || -204676 ko | +11.65% | -10.39% 1m54.76s | 1908628 ko | fiat-json/src/p384_32.json | 1m43.69s | 2004176 ko || +0m11.06s || -95548 ko | +10.67% | -4.76% 1m57.28s | 1615084 ko | fiat-zig/src/p384_scalar_32.zig | 1m46.91s | 1733780 ko || +0m10.37s || -118696 ko | +9.69% | -6.84% 1m54.55s | 2074740 ko | fiat-zig/src/p384_32.zig | 1m44.61s | 1626180 ko || +0m09.93s || 448560 ko | +9.50% | +27.58% 1m55.94s | 2145952 ko | fiat-go/32/p384scalar/p384scalar.go | 1m48.27s | 1630928 ko || +0m07.66s || 515024 ko | +7.08% | +31.57% 1m57.76s | 1764936 ko | fiat-rust/src/p384_scalar_32.rs | 1m51.87s | 1768464 ko || +0m05.88s || -3528 ko | +5.26% | -0.19% 1m54.58s | 1597680 ko | fiat-rust/src/p384_32.rs | 1m48.64s | 1718060 ko || +0m05.93s || -120380 ko | +5.46% | -7.00% 1m54.56s | 1708700 ko | fiat-c/src/p384_scalar_32.c | 1m49.11s | 1518820 ko || +0m05.45s || 189880 ko | +4.99% | +12.50% 1m51.99s | 1734444 ko | fiat-c/src/p384_32.c | 1m46.30s | 1630176 ko || +0m05.69s || 104268 ko | +5.35% | +6.39% 1m45.33s | 1889064 ko | Bedrock/End2End/X25519/AddPrecomputed.vo | 1m49.74s | 1889060 ko || -0m04.41s || 4 ko | -4.01% | +0.00% 5m27.35s | 2852288 ko | Bedrock/Field/Synthesis/Examples/p224_64_new.vo | 5m31.22s | 2852504 ko || -0m03.87s || -216 ko | -1.16% | -0.00% 2m33.52s | 1607452 ko | Rewriter/Passes/NBE.vo | 2m37.17s | 1607512 ko || -0m03.65s || -60 ko | -2.32% | -0.00% 0m37.77s | 110828 ko | fiat-json/src/p521_32.json | 0m33.99s | 114180 ko || +0m03.78s || -3352 ko | +11.12% | -2.93% 0m37.53s | 62756 ko | fiat-java/src/FiatP521.java | 0m33.77s | 62456 ko || +0m03.75s || 300 ko | +11.13% | +0.48% 1m50.62s | 1393276 ko | Rewriter/Passes/ToFancyWithCasts.vo | 1m53.15s | 1392880 ko || -0m02.53s || 396 ko | -2.23% | +0.02% 0m42.34s | 1859688 ko | ExtractionOCaml/bedrock2_saturated_solinas | 0m40.29s | 1851720 ko || +0m02.05s || 7968 ko | +5.08% | +0.43% 0m39.48s | 1769316 ko | ExtractionOCaml/base_conversion | 0m41.92s | 1624120 ko || -0m02.44s || 145196 ko | -5.82% | +8.93% 1m49.94s | 2247636 ko | Fancy/Barrett256.vo | 1m51.28s | 2284788 ko || -0m01.34s || -37152 ko | -1.20% | -1.62% 1m47.35s | 1832408 ko | fiat-go/32/p384/p384.go | 1m49.23s | 1724040 ko || -0m01.87s || 108368 ko | -1.72% | +6.28% 1m32.25s | 2164300 ko | SlowPrimeSynthesisExamples.vo | 1m33.38s | 2139896 ko || -0m01.12s || 24404 ko | -1.21% | +1.14% 0m51.90s | 1016836 ko | Rewriter/Passes/MultiRetSplit.vo | 0m53.14s | 1016808 ko || -0m01.24s || 28 ko | -2.33% | +0.00% 0m47.25s | 2146984 ko | ExtractionOCaml/solinas_reduction | 0m45.91s | 2147072 ko || +0m01.34s || -88 ko | +2.91% | -0.00% 0m45.18s | 2146856 ko | ExtractionOCaml/word_by_word_montgomery | 0m46.83s | 2147056 ko || -0m01.64s || -200 ko | -3.52% | -0.00% 0m43.40s | 1864240 ko | ExtractionOCaml/bedrock2_dettman_multiplication | 0m41.96s | 1870364 ko || +0m01.43s || -6124 ko | +3.43% | -0.32% 0m41.82s | 1863680 ko | ExtractionOCaml/unsaturated_solinas | 0m43.45s | 1863368 ko || -0m01.63s || 312 ko | -3.75% | +0.01% 0m29.25s | 1544592 ko | StandaloneDebuggingExamples.vo | 0m30.51s | 1556744 ko || -0m01.26s || -12152 ko | -4.12% | -0.78% 0m16.94s | 283032 ko | fiat-go/64/p434/p434.go | 0m18.07s | 247128 ko || -0m01.12s || 35904 ko | -6.25% | +14.52% 0m16.74s | 2204356 ko | ExtractionHaskell/with_bedrock2_solinas_reduction.hs | 0m17.83s | 2237008 ko || -0m01.08s || -32652 ko | -6.11% | -1.45% 0m16.25s | 253040 ko | fiat-rust/src/p434_64.rs | 0m17.99s | 278560 ko || -0m01.73s || -25520 ko | -9.67% | -9.16% 8m28.15s | 2591812 ko | Bedrock/End2End/X25519/GarageDoor.vo | 8m27.82s | 2587848 ko || +0m00.32s || 3964 ko | +0.06% | +0.15% 1m51.16s | 1612836 ko | Bedrock/End2End/X25519/Field25519.vo | 1m52.02s | 1604084 ko || -0m00.86s || 8752 ko | -0.76% | +0.54% 0m56.72s | 707388 ko | Rewriter/RulesProofs.vo | 0m55.84s | 703908 ko || +0m00.87s || 3480 ko | +1.57% | +0.49% 0m49.15s | 2147776 ko | ExtractionOCaml/bedrock2_solinas_reduction | 0m48.43s | 2147920 ko || +0m00.71s || -144 ko | +1.48% | -0.00% 0m48.64s | 1869620 ko | Fancy/Montgomery256.vo | 0m48.94s | 1855572 ko || -0m00.29s || 14048 ko | -0.61% | +0.75% 0m48.41s | 2147988 ko | ExtractionOCaml/with_bedrock2_word_by_word_montgomery | 0m48.03s | 2147920 ko || +0m00.37s || 68 ko | +0.79% | +0.00% 0m48.12s | 2148012 ko | ExtractionOCaml/bedrock2_word_by_word_montgomery | 0m47.94s | 2147964 ko || +0m00.17s || 48 ko | +0.37% | +0.00% 0m47.07s | 2148072 ko | ExtractionOCaml/bedrock2_unsaturated_solinas | 0m46.98s | 2147976 ko || +0m00.09s || 96 ko | +0.19% | +0.00% 0m46.31s | 2148036 ko | ExtractionOCaml/with_bedrock2_unsaturated_solinas | 0m46.12s | 2147932 ko || +0m00.19s || 104 ko | +0.41% | +0.00% 0m42.55s | 1864184 ko | ExtractionOCaml/bedrock2_base_conversion | 0m41.57s | 1864708 ko || +0m00.97s || -524 ko | +2.35% | -0.02% 0m42.07s | 1864464 ko | ExtractionOCaml/with_bedrock2_base_conversion | 0m41.20s | 1823744 ko || +0m00.86s || 40720 ko | +2.11% | +2.23% 0m41.68s | 1858816 ko | ExtractionOCaml/with_bedrock2_saturated_solinas | 0m40.96s | 1851212 ko || +0m00.71s || 7604 ko | +1.75% | +0.41% 0m41.66s | 1859960 ko | ExtractionOCaml/with_bedrock2_dettman_multiplication | 0m41.21s | 1851288 ko || +0m00.44s || 8672 ko | +1.09% | +0.46% 0m41.50s | 1857940 ko | ExtractionOCaml/with_bedrock2_solinas_reduction | 0m41.06s | 1849540 ko || +0m00.43s || 8400 ko | +1.07% | +0.45% 0m40.74s | 62064 ko | fiat-go/32/p521/p521.go | 0m41.26s | 68256 ko || -0m00.51s || -6192 ko | -1.26% | -9.07% 0m40.14s | 1864708 ko | ExtractionOCaml/dettman_multiplication | 0m40.52s | 1786504 ko || -0m00.38s || 78204 ko | -0.93% | +4.37% 0m38.85s | 149624 ko | fiat-bedrock2/src/p521_32.c | 0m38.98s | 143940 ko || -0m00.12s || 5684 ko | -0.33% | +3.94% 0m38.54s | 1775188 ko | ExtractionOCaml/saturated_solinas | 0m38.71s | 1764700 ko || -0m00.17s || 10488 ko | -0.43% | +0.59% 0m37.51s | 62500 ko | fiat-zig/src/p521_32.zig | 0m37.39s | 59332 ko || +0m00.11s || 3168 ko | +0.32% | +5.33% 0m37.48s | 1294192 ko | Bedrock/End2End/X25519/GarageDoorTop.vo | 0m37.27s | 1292880 ko || +0m00.20s || 1312 ko | +0.56% | +0.10% 0m37.44s | 66780 ko | fiat-c/src/p521_32.c | 0m37.77s | 60280 ko || -0m00.33s || 6500 ko | -0.87% | +10.78% 0m37.42s | 60608 ko | fiat-rust/src/p521_32.rs | 0m37.83s | 61900 ko || -0m00.40s || -1292 ko | -1.08% | -2.08% 0m37.11s | 2378444 ko | ExtractionOCaml/bedrock2_solinas_reduction.ml | 0m37.46s | 2364772 ko || -0m00.35s || 13672 ko | -0.93% | +0.57% 0m36.36s | 2319684 ko | ExtractionOCaml/with_bedrock2_word_by_word_montgomery.ml | 0m36.69s | 2362052 ko || -0m00.32s || -42368 ko | -0.89% | -1.79% 0m36.34s | 2322608 ko | ExtractionOCaml/bedrock2_word_by_word_montgomery.ml | 0m36.87s | 2363400 ko || -0m00.52s || -40792 ko | -1.43% | -1.72% 0m35.65s | 2239920 ko | ExtractionOCaml/solinas_reduction.ml | 0m35.60s | 2244256 ko || +0m00.04s || -4336 ko | +0.14% | -0.19% 0m34.94s | 1413516 ko | ExtractionOCaml/perf_word_by_word_montgomery | 0m34.37s | 1401160 ko || +0m00.57s || 12356 ko | +1.65% | +0.88% 0m34.88s | 1413452 ko | ExtractionOCaml/perf_unsaturated_solinas | 0m34.36s | 1398860 ko || +0m00.52s || 14592 ko | +1.51% | +1.04% 0m34.62s | 1284740 ko | Bedrock/End2End/X25519/MontgomeryLadder.vo | 0m35.00s | 1284680 ko || -0m00.38s || 60 ko | -1.08% | +0.00% 0m34.36s | 2237140 ko | ExtractionOCaml/word_by_word_montgomery.ml | 0m34.45s | 2220616 ko || -0m00.09s || 16524 ko | -0.26% | +0.74% 0m34.01s | 915808 ko | Rewriter/Passes/MulSplit.vo | 0m34.72s | 913152 ko || -0m00.71s || 2656 ko | -2.04% | +0.29% 0m33.79s | 2251096 ko | ExtractionOCaml/bedrock2_unsaturated_solinas.ml | 0m33.50s | 2229256 ko || +0m00.28s || 21840 ko | +0.86% | +0.97% 0m33.14s | 2251808 ko | ExtractionOCaml/with_bedrock2_unsaturated_solinas.ml | 0m33.28s | 2229952 ko || -0m00.14s || 21856 ko | -0.42% | +0.98% 0m31.42s | 2149728 ko | ExtractionOCaml/unsaturated_solinas.ml | 0m31.33s | 2124628 ko || +0m00.09s || 25100 ko | +0.28% | +1.18% 0m29.99s | 2166628 ko | ExtractionOCaml/bedrock2_dettman_multiplication.ml | 0m30.23s | 2179988 ko || -0m00.24s || -13360 ko | -0.79% | -0.61% 0m29.53s | 2156584 ko | ExtractionOCaml/with_bedrock2_solinas_reduction.ml | 0m29.10s | 2125132 ko || +0m00.42s || 31452 ko | +1.47% | +1.48% 0m29.25s | 2161092 ko | ExtractionOCaml/with_bedrock2_base_conversion.ml | 0m28.31s | 2121844 ko || +0m00.94s || 39248 ko | +3.32% | +1.84% 0m29.19s | 2161336 ko | ExtractionOCaml/bedrock2_base_conversion.ml | 0m29.47s | 2121804 ko || -0m00.27s || 39532 ko | -0.95% | +1.86% 0m29.12s | 2156880 ko | ExtractionOCaml/bedrock2_saturated_solinas.ml | 0m29.25s | 2124968 ko || -0m00.12s || 31912 ko | -0.44% | +1.50% 0m29.07s | 2156996 ko | ExtractionOCaml/with_bedrock2_saturated_solinas.ml | 0m28.94s | 2124832 ko || +0m00.12s || 32164 ko | +0.44% | +1.51% 0m28.90s | 2158288 ko | ExtractionOCaml/with_bedrock2_dettman_multiplication.ml | 0m29.11s | 2130440 ko || -0m00.21s || 27848 ko | -0.72% | +1.30% 0m27.93s | 2064324 ko | ExtractionOCaml/dettman_multiplication.ml | 0m28.14s | 2081544 ko || -0m00.21s || -17220 ko | -0.74% | -0.82% 0m27.37s | 2077984 ko | ExtractionOCaml/saturated_solinas.ml | 0m27.45s | 2061340 ko || -0m00.07s || 16644 ko | -0.29% | +0.80% 0m26.92s | 2069712 ko | ExtractionOCaml/base_conversion.ml | 0m27.35s | 2051836 ko || -0m00.42s || 17876 ko | -1.57% | +0.87% 0m25.19s | 1381372 ko | PerfTesting/PerfTestSearch.vo | 0m25.63s | 1377272 ko || -0m00.43s || 4100 ko | -1.71% | +0.29% 0m23.10s | 1189876 ko | PushButtonSynthesis/UnsaturatedSolinas.vo | 0m23.84s | 1191348 ko || -0m00.73s || -1472 ko | -3.10% | -0.12% 0m21.56s | 1967716 ko | ExtractionOCaml/perf_unsaturated_solinas.ml | 0m21.50s | 1905172 ko || +0m00.05s || 62544 ko | +0.27% | +3.28% 0m21.46s | 1954296 ko | ExtractionOCaml/perf_word_by_word_montgomery.ml | 0m21.53s | 2007400 ko || -0m00.07s || -53104 ko | -0.32% | -2.64% 0m21.42s | 1364020 ko | Bedrock/End2End/RupicolaCrypto/Low.vo | 0m21.81s | 1360444 ko || -0m00.38s || 3576 ko | -1.78% | +0.26% 0m20.10s | 1163460 ko | PushButtonSynthesis/WordByWordMontgomery.vo | 0m20.64s | 1164604 ko || -0m00.53s || -1144 ko | -2.61% | -0.09% 0m18.30s | 301772 ko | fiat-bedrock2/src/p434_64.c | 0m18.00s | 301336 ko || +0m00.30s || 436 ko | +1.66% | +0.14% 0m18.28s | 1142612 ko | Bedrock/Field/Translation/Proofs/Func.vo | 0m18.75s | 1141560 ko || -0m00.46s || 1052 ko | -2.50% | +0.09% 0m17.74s | 405312 ko | fiat-bedrock2/src/secp256k1_montgomery_scalar_32.c | 0m17.23s | 404568 ko || +0m00.50s || 744 ko | +2.95% | +0.18% 0m17.68s | 267560 ko | fiat-json/src/p434_64.json | 0m17.55s | 336912 ko || +0m00.12s || -69352 ko | +0.74% | -20.58% 0m17.57s | 432032 ko | fiat-bedrock2/src/p256_scalar_32.c | 0m17.05s | 461272 ko || +0m00.51s || -29240 ko | +3.04% | -6.33% 0m17.48s | 2202308 ko | ExtractionHaskell/bedrock2_solinas_reduction.hs | 0m17.75s | 2235132 ko || -0m00.26s || -32824 ko | -1.52% | -1.46% 0m17.46s | 1380556 ko | PerfTesting/PerfTestSearchPattern.vo | 0m17.92s | 1380832 ko || -0m00.46s || -276 ko | -2.56% | -0.01% 0m17.41s | 230072 ko | fiat-zig/src/p434_64.zig | 0m17.32s | 253724 ko || +0m00.08s || -23652 ko | +0.51% | -9.32% 0m17.35s | 1223956 ko | Bedrock/Field/Synthesis/New/Signature.vo | 0m17.66s | 1220516 ko || -0m00.30s || 3440 ko | -1.75% | +0.28% 0m17.35s | 2166060 ko | ExtractionHaskell/bedrock2_word_by_word_montgomery.hs | 0m17.53s | 2194808 ko || -0m00.17s || -28748 ko | -1.02% | -1.30% 0m17.28s | 2164448 ko | ExtractionHaskell/with_bedrock2_word_by_word_montgomery.hs | 0m17.52s | 2193664 ko || -0m00.23s || -29216 ko | -1.36% | -1.33% 0m17.16s | 254416 ko | fiat-c/src/p434_64.c | 0m17.42s | 251820 ko || -0m00.26s || 2596 ko | -1.49% | +1.03% 0m17.15s | 390476 ko | fiat-bedrock2/src/secp256k1_montgomery_32.c | 0m16.69s | 415512 ko || +0m00.45s || -25036 ko | +2.75% | -6.02% 0m17.01s | 351572 ko | fiat-java/src/FiatSecp256K1MontgomeryScalar.java | 0m16.40s | 455088 ko || +0m00.61s || -103516 ko | +3.71% | -22.74% 0m16.90s | 445272 ko | fiat-go/32/secp256k1montgomeryscalar/secp256k1montgomeryscalar.go | 0m17.19s | 360700 ko || -0m00.29s || 84572 ko | -1.68% | +23.44% 0m16.86s | 1160300 ko | Bedrock/Field/Translation/Proofs/Cmd.vo | 0m17.42s | 1157936 ko || -0m00.56s || 2364 ko | -3.21% | +0.20% 0m16.84s | 456724 ko | fiat-bedrock2/src/curve25519_scalar_32.c | 0m16.68s | 405344 ko || +0m00.16s || 51380 ko | +0.95% | +12.67% 0m16.83s | 454284 ko | fiat-json/src/secp256k1_montgomery_scalar_32.json | 0m16.39s | 468528 ko || +0m00.43s || -14244 ko | +2.68% | -3.04% 0m16.79s | 2032540 ko | ExtractionHaskell/word_by_word_montgomery.hs | 0m16.91s | 2067180 ko || -0m00.12s || -34640 ko | -0.70% | -1.67% 0m16.77s | 2093008 ko | ExtractionHaskell/solinas_reduction.hs | 0m16.77s | 2051684 ko || +0m00.00s || 41324 ko | +0.00% | +2.01% 0m16.76s | 371064 ko | fiat-java/src/FiatP256Scalar.java | 0m15.92s | 334232 ko || +0m00.84s || 36832 ko | +5.27% | +11.01% 0m16.75s | 2144072 ko | ExtractionHaskell/bedrock2_unsaturated_solinas.hs | 0m16.53s | 2074184 ko || +0m00.21s || 69888 ko | +1.33% | +3.36% 0m16.73s | 406956 ko | fiat-json/src/curve25519_scalar_32.json | 0m16.02s | 450328 ko || +0m00.71s || -43372 ko | +4.43% | -9.63% 0m16.73s | 347524 ko | fiat-zig/src/secp256k1_montgomery_scalar_32.zig | 0m16.35s | 397760 ko || +0m00.37s || -50236 ko | +2.32% | -12.62% 0m16.72s | 390380 ko | fiat-zig/src/p256_scalar_32.zig | 0m16.18s | 356296 ko || +0m00.53s || 34084 ko | +3.33% | +9.56% 0m16.70s | 391092 ko | fiat-go/32/p256scalar/p256scalar.go | 0m16.94s | 366900 ko || -0m00.24s || 24192 ko | -1.41% | +6.59% 0m16.68s | 405796 ko | fiat-java/src/FiatCurve25519Scalar.java | 0m16.15s | 370228 ko || +0m00.53s || 35568 ko | +3.28% | +9.60% 0m16.66s | 378844 ko | fiat-rust/src/p256_scalar_32.rs | 0m15.98s | 411316 ko || +0m00.67s || -32472 ko | +4.25% | -7.89% 0m16.61s | 366928 ko | fiat-c/src/secp256k1_montgomery_scalar_32.c | 0m16.58s | 426780 ko || +0m00.03s || -59852 ko | +0.18% | -14.02% 0m16.59s | 340692 ko | fiat-rust/src/secp256k1_montgomery_32.rs | 0m16.47s | 353508 ko || +0m00.12s || -12816 ko | +0.72% | -3.62% 0m16.58s | 385436 ko | fiat-json/src/secp256k1_montgomery_32.json | 0m16.19s | 407896 ko || +0m00.38s || -22460 ko | +2.40% | -5.50% 0m16.55s | 416232 ko | fiat-go/32/curve25519scalar/curve25519scalar.go | 0m16.41s | 346260 ko || +0m00.14s || 69972 ko | +0.85% | +20.20% 0m16.53s | 338172 ko | fiat-java/src/FiatSecp256K1Montgomery.java | 0m16.15s | 423920 ko || +0m00.38s || -85748 ko | +2.35% | -20.22% 0m16.53s | 396224 ko | fiat-rust/src/secp256k1_montgomery_scalar_32.rs | 0m16.61s | 445068 ko || -0m00.07s || -48844 ko | -0.48% | -10.97% 0m16.50s | 2144128 ko | ExtractionHaskell/with_bedrock2_unsaturated_solinas.hs | 0m16.55s | 2072880 ko || -0m00.05s || 71248 ko | -0.30% | +3.43% 0m16.45s | 1139712 ko | Bedrock/End2End/Poly1305/Field1305.vo | 0m17.26s | 1137640 ko || -0m00.81s || 2072 ko | -4.69% | +0.18% 0m16.45s | 364804 ko | fiat-c/src/p256_scalar_32.c | 0m16.45s | 434352 ko || +0m00.00s || -69548 ko | +0.00% | -16.01% 0m16.36s | 436776 ko | fiat-zig/src/secp256k1_montgomery_32.zig | 0m16.01s | 437516 ko || +0m00.34s || -740 ko | +2.18% | -0.16% 0m16.33s | 359632 ko | fiat-zig/src/curve25519_scalar_32.zig | 0m15.80s | 434444 ko || +0m00.52s || -74812 ko | +3.35% | -17.22% 0m16.32s | 440340 ko | fiat-go/32/secp256k1montgomery/secp256k1montgomery.go | 0m16.19s | 415772 ko || +0m00.12s || 24568 ko | +0.80% | +5.90% 0m16.31s | 431364 ko | fiat-json/src/p256_scalar_32.json | 0m16.54s | 468452 ko || -0m00.23s || -37088 ko | -1.39% | -7.91% 0m16.28s | 418340 ko | fiat-c/src/secp256k1_montgomery_32.c | 0m16.07s | 354548 ko || +0m00.21s || 63792 ko | +1.30% | +17.99% 0m16.11s | 323148 ko | fiat-c/src/curve25519_scalar_32.c | 0m15.37s | 376208 ko || +0m00.74s || -53060 ko | +4.81% | -14.10% 0m16.09s | 429024 ko | fiat-rust/src/curve25519_scalar_32.rs | 0m16.31s | 405604 ko || -0m00.21s || 23420 ko | -1.34% | +5.77% 0m16.07s | 392824 ko | fiat-bedrock2/src/p256_32.c | 0m15.76s | 418500 ko || +0m00.31s || -25676 ko | +1.96% | -6.13% 0m15.73s | 2026232 ko | ExtractionHaskell/unsaturated_solinas.hs | 0m15.70s | 1972880 ko || +0m00.03s || 53352 ko | +0.19% | +2.70% 0m15.67s | 400632 ko | fiat-java/src/FiatP256.java | 0m15.23s | 347976 ko || +0m00.43s || 52656 ko | +2.88% | +15.13% 0m15.67s | 426864 ko | fiat-rust/src/p256_32.rs | 0m15.43s | 436980 ko || +0m00.24s || -10116 ko | +1.55% | -2.31% 0m15.65s | 433612 ko | fiat-go/32/p256/p256.go | 0m15.46s | 363800 ko || +0m00.18s || 69812 ko | +1.22% | +19.18% 0m15.65s | 332588 ko | fiat-zig/src/p256_32.zig | 0m15.39s | 407124 ko || +0m00.25s || -74536 ko | +1.68% | -18.30% 0m15.56s | 2010528 ko | ExtractionHaskell/with_bedrock2_dettman_multiplication.hs | 0m15.92s | 2039152 ko || -0m00.35s || -28624 ko | -2.26% | -1.40% 0m15.53s | 2010444 ko | ExtractionHaskell/bedrock2_dettman_multiplication.hs | 0m15.68s | 2040720 ko || -0m00.15s || -30276 ko | -0.95% | -1.48% 0m15.40s | 332344 ko | fiat-c/src/p256_32.c | 0m15.21s | 376848 ko || +0m00.18s || -44504 ko | +1.24% | -11.80% 0m15.29s | 1948284 ko | ExtractionHaskell/with_bedrock2_base_conversion.hs | 0m15.53s | 2016228 ko || -0m00.24s || -67944 ko | -1.54% | -3.36% 0m15.23s | 1959948 ko | ExtractionHaskell/with_bedrock2_saturated_solinas.hs | 0m15.52s | 2013692 ko || -0m00.28s || -53744 ko | -1.86% | -2.66% 0m15.22s | 1958896 ko | ExtractionHaskell/dettman_multiplication.hs | 0m15.10s | 1903264 ko || +0m00.12s || 55632 ko | +0.79% | +2.92% 0m15.15s | 1948672 ko | ExtractionHaskell/bedrock2_base_conversion.hs | 0m15.63s | 2015624 ko || -0m00.48s || -66952 ko | -3.07% | -3.32% 0m15.12s | 445592 ko | fiat-json/src/p256_32.json | 0m15.46s | 416848 ko || -0m00.34s || 28744 ko | -2.19% | +6.89% 0m15.11s | 1960852 ko | ExtractionHaskell/bedrock2_saturated_solinas.hs | 0m15.44s | 2013416 ko || -0m00.33s || -52564 ko | -2.13% | -2.61% 0m14.88s | 1955220 ko | ExtractionHaskell/base_conversion.hs | 0m14.93s | 1897380 ko || -0m00.04s || 57840 ko | -0.33% | +3.04% 0m14.86s | 1921176 ko | ExtractionHaskell/saturated_solinas.hs | 0m14.96s | 1916928 ko || -0m00.10s || 4248 ko | -0.66% | +0.22% 0m11.31s | 199152 ko | fiat-bedrock2/src/p384_scalar_64.c | 0m11.18s | 194984 ko || +0m00.13s || 4168 ko | +1.16% | +2.13% 0m11.21s | 199888 ko | fiat-go/64/p384scalar/p384scalar.go | 0m11.15s | 164128 ko || +0m00.06s || 35760 ko | +0.53% | +21.78% 0m11.17s | 1708132 ko | Bedrock/Field/Synthesis/New/WordByWordMontgomery.vo | 0m11.30s | 1703996 ko || -0m00.13s || 4136 ko | -1.15% | +0.24% 0m10.92s | 1035420 ko | BoundsPipeline.vo | 0m11.20s | 1036784 ko || -0m00.27s || -1364 ko | -2.49% | -0.13% 0m10.91s | 169592 ko | fiat-json/src/p384_scalar_64.json | 0m10.81s | 184092 ko || +0m00.09s || -14500 ko | +0.92% | -7.87% 0m10.87s | 176344 ko | fiat-zig/src/p384_scalar_64.zig | 0m10.57s | 192372 ko || +0m00.29s || -16028 ko | +2.83% | -8.33% 0m10.73s | 166616 ko | fiat-rust/src/p384_scalar_64.rs | 0m10.84s | 176032 ko || -0m00.10s || -9416 ko | -1.01% | -5.34% 0m10.58s | 154460 ko | fiat-c/src/p384_scalar_64.c | 0m10.71s | 142320 ko || -0m00.13s || 12140 ko | -1.21% | +8.53% 0m10.15s | 1304732 ko | Bedrock/End2End/X25519/MontgomeryLadderProperties.vo | 0m10.24s | 1304688 ko || -0m00.08s || 44 ko | -0.87% | +0.00% 0m09.59s | 195012 ko | fiat-bedrock2/src/p384_64.c | 0m09.53s | 205984 ko || +0m00.06s || -10972 ko | +0.62% | -5.32% 0m09.54s | 255304 ko | fiat-bedrock2/src/p224_32.c | 0m09.46s | 246228 ko || +0m00.07s || 9076 ko | +0.84% | +3.68% 0m09.38s | 235988 ko | fiat-json/src/p224_32.json | 0m09.14s | 243676 ko || +0m00.24s || -7688 ko | +2.62% | -3.15% 0m09.29s | 195668 ko | fiat-json/src/p384_64.json | 0m09.24s | 173592 ko || +0m00.04s || 22076 ko | +0.54% | +12.71% 0m09.26s | 245908 ko | fiat-java/src/FiatP224.java | 0m09.02s | 210104 ko || +0m00.24s || 35804 ko | +2.66% | +17.04% 0m09.25s | 170924 ko | fiat-go/64/p384/p384.go | 0m09.35s | 160844 ko || -0m00.09s || 10080 ko | -1.06% | +6.26% 0m09.20s | 1040012 ko | PushButtonSynthesis/BaseConversion.vo | 0m09.41s | 1037912 ko || -0m00.21s || 2100 ko | -2.23% | +0.20% 0m09.14s | 225000 ko | fiat-go/32/p224/p224.go | 0m09.39s | 230444 ko || -0m00.25s || -5444 ko | -2.66% | -2.36% 0m09.11s | 253348 ko | fiat-rust/src/p224_32.rs | 0m09.20s | 245628 ko || -0m00.08s || 7720 ko | -0.97% | +3.14% 0m09.11s | 166552 ko | fiat-zig/src/p384_64.zig | 0m09.31s | 141172 ko || -0m00.20s || 25380 ko | -2.14% | +17.97% 0m09.10s | 167020 ko | fiat-c/src/p384_64.c | 0m09.28s | 146704 ko || -0m00.17s || 20316 ko | -1.93% | +13.84% 0m09.09s | 254100 ko | fiat-zig/src/p224_32.zig | 0m08.87s | 222884 ko || +0m00.22s || 31216 ko | +2.48% | +14.00% 0m08.96s | 232884 ko | fiat-c/src/p224_32.c | 0m08.97s | 240356 ko || -0m00.00s || -7472 ko | -0.11% | -3.10% 0m08.73s | 147896 ko | fiat-rust/src/p384_64.rs | 0m09.22s | 165796 ko || -0m00.49s || -17900 ko | -5.31% | -10.79% 0m08.26s | 1009244 ko | PushButtonSynthesis/SmallExamples.vo | 0m08.45s | 1008344 ko || -0m00.18s || 900 ko | -2.24% | +0.08% 0m08.26s | 119472 ko | fiat-json/src/p448_solinas_32.json | 0m08.29s | 123884 ko || -0m00.02s || -4412 ko | -0.36% | -3.56% 0m08.16s | 1050960 ko | PushButtonSynthesis/Primitives.vo | 0m08.27s | 1050876 ko || -0m00.10s || 84 ko | -1.33% | +0.00% 0m07.93s | 591100 ko | Rewriter/Passes/RelaxBitwidthAdcSbb.vo | 0m08.19s | 591176 ko || -0m00.25s || -76 ko | -3.17% | -0.01% 0m07.91s | 61592 ko | fiat-zig/src/p448_solinas_32.zig | 0m07.94s | 61704 ko || -0m00.03s || -112 ko | -0.37% | -0.18% 0m07.89s | 59392 ko | fiat-c/src/p448_solinas_32.c | 0m07.94s | 56764 ko || -0m00.05s || 2628 ko | -0.62% | +4.62% 0m07.88s | 61076 ko | fiat-rust/src/p448_solinas_32.rs | 0m08.00s | 57600 ko || -0m00.12s || 3476 ko | -1.50% | +6.03% 0m07.12s | 1043600 ko | PushButtonSynthesis/SolinasReduction.vo | 0m07.38s | 1043572 ko || -0m00.25s || 28 ko | -3.52% | +0.00% 0m06.64s | 52476 ko | fiat-go/64/p521/p521.go | 0m06.25s | 49644 ko || +0m00.38s || 2832 ko | +6.23% | +5.70% 0m06.27s | 574792 ko | Rewriter/Passes/NoSelect.vo | 0m06.41s | 577812 ko || -0m00.14s || -3020 ko | -2.18% | -0.52% 0m06.26s | 1048224 ko | PushButtonSynthesis/BarrettReduction.vo | 0m06.20s | 1051084 ko || +0m00.05s || -2860 ko | +0.96% | -0.27% 0m06.22s | 1132216 ko | CLI.vo | 0m06.30s | 1130060 ko || -0m00.08s || 2156 ko | -1.26% | +0.19% 0m05.96s | 1144288 ko | Bedrock/Field/Synthesis/New/UnsaturatedSolinas.vo | 0m06.15s | 1142040 ko || -0m00.19s || 2248 ko | -3.08% | +0.19% 0m05.54s | 68872 ko | fiat-bedrock2/src/p521_64.c | 0m05.56s | 68208 ko || -0m00.01s || 664 ko | -0.35% | +0.97% 0m05.42s | 51340 ko | fiat-json/src/p521_64.json | 0m05.43s | 51520 ko || -0m00.00s || -180 ko | -0.18% | -0.34% 0m05.30s | 37436 ko | fiat-zig/src/p521_64.zig | 0m04.77s | 37212 ko || +0m00.53s || 224 ko | +11.11% | +0.60% 0m04.82s | 37880 ko | fiat-rust/src/p521_64.rs | 0m05.45s | 38100 ko || -0m00.62s || -220 ko | -11.55% | -0.57% 0m04.76s | 37380 ko | fiat-c/src/p521_64.c | 0m05.37s | 37352 ko || -0m00.61s || 28 ko | -11.35% | +0.07% 0m04.66s | 1038068 ko | PushButtonSynthesis/DettmanMultiplication.vo | 0m04.63s | 1038160 ko || +0m00.03s || -92 ko | +0.64% | -0.00% 0m04.51s | 1074152 ko | Bedrock/Field/Translation/Proofs/ValidComputable/Cmd.vo | 0m04.59s | 1074372 ko || -0m00.08s || -220 ko | -1.74% | -0.02% 0m04.24s | 1047736 ko | PushButtonSynthesis/SaturatedSolinas.vo | 0m04.41s | 1047768 ko || -0m00.16s || -32 ko | -3.85% | -0.00% 0m04.01s | 1501044 ko | Bedrock/Everything.vo | 0m04.01s | 1501100 ko || +0m00.00s || -56 ko | +0.00% | -0.00% 0m03.81s | 1051824 ko | PushButtonSynthesis/FancyMontgomeryReduction.vo | 0m03.77s | 1050712 ko || +0m00.04s || 1112 ko | +1.06% | +0.10% 0m03.50s | 1367412 ko | Everything.vo | 0m03.59s | 1367556 ko || -0m00.08s || -144 ko | -2.50% | -0.01% 0m03.06s | 537952 ko | Rewriter/Passes/ArithWithRelaxedCasts.vo | 0m03.15s | 539144 ko || -0m00.08s || -1192 ko | -2.85% | -0.22% 0m02.98s | 1013864 ko | Bedrock/Field/Translation/Cmd.vo | 0m02.98s | 1014664 ko || +0m00.00s || -800 ko | +0.00% | -0.07% 0m02.96s | 1083180 ko | Rewriter/PerfTesting/Core.vo | 0m03.04s | 1083012 ko || -0m00.08s || 168 ko | -2.63% | +0.01% 0m02.94s | 70004 ko | fiat-go/64/secp256k1montgomeryscalar/secp256k1montgomeryscalar.go | 0m02.80s | 69640 ko || +0m00.14s || 364 ko | +5.00% | +0.52% 0m02.93s | 69652 ko | fiat-go/64/p256scalar/p256scalar.go | 0m02.77s | 69300 ko || +0m00.16s || 352 ko | +5.77% | +0.50% 0m02.92s | 539268 ko | Rewriter/Passes/AddAssocLeft.vo | 0m02.99s | 537676 ko || -0m00.07s || 1592 ko | -2.34% | +0.29% 0m02.90s | 1126644 ko | StandaloneHaskellMain.vo | 0m02.85s | 1124644 ko || +0m00.04s || 2000 ko | +1.75% | +0.17% 0m02.86s | 1355272 ko | PerfTesting/PerfTestPrint.vo | 0m02.97s | 1353376 ko || -0m00.11s || 1896 ko | -3.70% | +0.14% 0m02.83s | 74888 ko | fiat-json/src/p256_scalar_64.json | 0m02.73s | 69468 ko || +0m00.10s || 5420 ko | +3.66% | +7.80% 0m02.79s | 84092 ko | fiat-bedrock2/src/p256_scalar_64.c | 0m02.79s | 86516 ko || +0m00.00s || -2424 ko | +0.00% | -2.80% 0m02.76s | 87368 ko | fiat-bedrock2/src/secp256k1_montgomery_scalar_64.c | 0m02.77s | 86936 ko || -0m00.01s || 432 ko | -0.36% | +0.49% 0m02.76s | 57416 ko | fiat-go/64/p448solinas/p448solinas.go | 0m02.58s | 51820 ko || +0m00.17s || 5596 ko | +6.97% | +10.79% 0m02.76s | 73888 ko | fiat-json/src/secp256k1_montgomery_scalar_64.json | 0m02.73s | 75908 ko || +0m00.02s || -2020 ko | +1.09% | -2.66% 0m02.74s | 1077636 ko | Bedrock/Field/Stringification/Stringification.vo | 0m02.78s | 1076572 ko || -0m00.03s || 1064 ko | -1.43% | +0.09% 0m02.73s | 1010148 ko | Bedrock/Field/Translation/Func.vo | 0m02.82s | 1008988 ko || -0m00.08s || 1160 ko | -3.19% | +0.11% 0m02.72s | 64580 ko | fiat-zig/src/p256_scalar_64.zig | 0m02.71s | 62528 ko || +0m00.01s || 2052 ko | +0.36% | +3.28% 0m02.69s | 63552 ko | fiat-go/64/secp256k1montgomery/secp256k1montgomery.go | 0m02.51s | 67572 ko || +0m00.18s || -4020 ko | +7.17% | -5.94% 0m02.69s | 61992 ko | fiat-rust/src/p256_scalar_64.rs | 0m02.75s | 66124 ko || -0m00.06s || -4132 ko | -2.18% | -6.24% 0m02.69s | 63084 ko | fiat-rust/src/secp256k1_montgomery_scalar_64.rs | 0m02.71s | 66576 ko || -0m00.02s || -3492 ko | -0.73% | -5.24% 0m02.68s | 59288 ko | fiat-c/src/p256_scalar_64.c | 0m02.70s | 62336 ko || -0m00.02s || -3048 ko | -0.74% | -4.88% 0m02.67s | 1068128 ko | Bedrock/Field/Translation/Proofs/ValidComputable/Func.vo | 0m02.80s | 1068044 ko || -0m00.12s || 84 ko | -4.64% | +0.00% 0m02.67s | 68464 ko | fiat-c/src/secp256k1_montgomery_scalar_64.c | 0m02.70s | 61160 ko || -0m00.03s || 7304 ko | -1.11% | +11.94% 0m02.66s | 1153388 ko | Bedrock/Standalone/StandaloneHaskellMain.vo | 0m02.71s | 1151268 ko || -0m00.04s || 2120 ko | -1.84% | +0.18% 0m02.66s | 64136 ko | fiat-zig/src/secp256k1_montgomery_scalar_64.zig | 0m02.65s | 62200 ko || +0m00.01s || 1936 ko | +0.37% | +3.11% 0m02.65s | 1103644 ko | StandaloneOCamlMain.vo | 0m02.61s | 1103620 ko || +0m00.04s || 24 ko | +1.53% | +0.00% 0m02.64s | 1151352 ko | Bedrock/Standalone/StandaloneOCamlMain.vo | 0m02.71s | 1151372 ko || -0m00.06s || -20 ko | -2.58% | -0.00% 0m02.57s | 535856 ko | Rewriter/Passes/FlattenThunkedRects.vo | 0m02.66s | 535192 ko || -0m00.09s || 664 ko | -3.38% | +0.12% 0m02.52s | 84488 ko | fiat-bedrock2/src/secp256k1_montgomery_64.c | 0m02.47s | 93372 ko || +0m00.04s || -8884 ko | +2.02% | -9.51% 0m02.52s | 68592 ko | fiat-json/src/secp256k1_montgomery_64.json | 0m02.46s | 75364 ko || +0m00.06s || -6772 ko | +2.43% | -8.98% 0m02.49s | 1073080 ko | Bedrock/Field/Synthesis/New/ComputedOp.vo | 0m02.66s | 1071116 ko || -0m00.16s || 1964 ko | -6.39% | +0.18% 0m02.48s | 1137168 ko | Rewriter/PerfTesting/StandaloneOCamlMain.vo | 0m02.76s | 1135252 ko || -0m00.27s || 1916 ko | -10.14% | +0.16% 0m02.46s | 63516 ko | fiat-go/64/curve25519scalar/curve25519scalar.go | 0m02.31s | 70228 ko || +0m00.14s || -6712 ko | +6.49% | -9.55% 0m02.42s | 1051400 ko | Bedrock/Field/Translation/Parameters/Defaults32.vo | 0m02.46s | 1051612 ko || -0m00.04s || -212 ko | -1.62% | -0.02% 0m02.42s | 60544 ko | fiat-rust/src/secp256k1_montgomery_64.rs | 0m02.42s | 60264 ko || +0m00.00s || 280 ko | +0.00% | +0.46% 0m02.42s | 65732 ko | fiat-zig/src/secp256k1_montgomery_64.zig | 0m02.40s | 57992 ko || +0m00.02s || 7740 ko | +0.83% | +13.34% 0m02.41s | 60148 ko | fiat-c/src/secp256k1_montgomery_64.c | 0m02.44s | 60532 ko || -0m00.02s || -384 ko | -1.22% | -0.63% 0m02.37s | 1051572 ko | Bedrock/Field/Translation/Parameters/Defaults64.vo | 0m02.46s | 1051524 ko || -0m00.08s || 48 ko | -3.65% | +0.00% 0m02.35s | 1050808 ko | Bedrock/Field/Translation/Parameters/FE310.vo | 0m02.42s | 1051668 ko || -0m00.06s || -860 ko | -2.89% | -0.08% 0m02.35s | 78788 ko | fiat-bedrock2/src/curve25519_scalar_64.c | 0m02.35s | 77892 ko || +0m00.00s || 896 ko | +0.00% | +1.15% 0m02.34s | 1047512 ko | Bedrock/Field/Translation/Parameters/Defaults.vo | 0m02.33s | 1047596 ko || +0m00.00s || -84 ko | +0.42% | -0.00% 0m02.31s | 69108 ko | fiat-json/src/curve25519_scalar_64.json | 0m02.30s | 69200 ko || +0m00.01s || -92 ko | +0.43% | -0.13% 0m02.28s | 60412 ko | fiat-rust/src/curve25519_scalar_64.rs | 0m02.31s | 64076 ko || -0m00.03s || -3664 ko | -1.29% | -5.71% 0m02.25s | 67320 ko | fiat-c/src/curve25519_scalar_64.c | 0m02.29s | 59928 ko || -0m00.04s || 7392 ko | -1.74% | +12.33% 0m02.25s | 57700 ko | fiat-zig/src/curve25519_scalar_64.zig | 0m02.25s | 63136 ko || +0m00.00s || -5436 ko | +0.00% | -8.60% 0m02.17s | 541552 ko | Rewriter/Passes/UnfoldValueBarrier.vo | 0m02.27s | 541600 ko || -0m00.10s || -48 ko | -4.40% | -0.00% 0m02.10s | 540980 ko | Rewriter/Passes/StripLiteralCasts.vo | 0m02.20s | 539800 ko || -0m00.10s || 1180 ko | -4.54% | +0.21% 0m02.10s | 63292 ko | fiat-go/64/p224/p224.go | 0m01.86s | 61856 ko || +0m00.24s || 1436 ko | +12.90% | +2.32% 0m02.08s | 38528 ko | fiat-go/32/curve25519/curve25519.go | 0m02.07s | 36104 ko || +0m00.01s || 2424 ko | +0.48% | +6.71% 0m02.07s | 68844 ko | fiat-bedrock2/src/p448_solinas_64.c | 0m02.13s | 66964 ko || -0m00.06s || 1880 ko | -2.81% | +2.80% 0m02.05s | 63476 ko | fiat-go/64/p256/p256.go | 0m01.84s | 62612 ko || +0m00.20s || 864 ko | +11.41% | +1.37% 0m02.02s | 69516 ko | fiat-bedrock2/src/curve25519_32.c | 0m01.99s | 64620 ko || +0m00.03s || 4896 ko | +1.50% | +7.57% 0m01.97s | 536652 ko | Rewriter/Passes/ToFancy.vo | 0m02.01s | 537484 ko || -0m00.03s || -832 ko | -1.99% | -0.15% 0m01.96s | 52072 ko | fiat-json/src/p448_solinas_64.json | 0m01.92s | 49556 ko || +0m00.04s || 2516 ko | +2.08% | +5.07% 0m01.91s | 78628 ko | fiat-bedrock2/src/p224_64.c | 0m01.91s | 79832 ko || +0m00.00s || -1204 ko | +0.00% | -1.50% 0m01.90s | 35620 ko | fiat-c/src/p448_solinas_64.c | 0m01.93s | 35532 ko || -0m00.03s || 88 ko | -1.55% | +0.24% 0m01.90s | 35992 ko | fiat-rust/src/p448_solinas_64.rs | 0m01.93s | 37888 ko || -0m00.03s || -1896 ko | -1.55% | -5.00% 0m01.90s | 36340 ko | fiat-zig/src/p448_solinas_64.zig | 0m01.90s | 38132 ko || +0m00.00s || -1792 ko | +0.00% | -4.69% 0m01.89s | 68480 ko | fiat-json/src/p224_64.json | 0m01.93s | 76344 ko || -0m00.04s || -7864 ko | -2.07% | -10.30% 0m01.85s | 79464 ko | fiat-bedrock2/src/p256_64.c | 0m01.85s | 80384 ko || +0m00.00s || -920 ko | +0.00% | -1.14% 0m01.84s | 69732 ko | fiat-json/src/p256_64.json | 0m01.85s | 68332 ko || -0m00.01s || 1400 ko | -0.54% | +2.04% 0m01.84s | 60888 ko | fiat-zig/src/p224_64.zig | 0m01.87s | 60200 ko || -0m00.03s || 688 ko | -1.60% | +1.14% 0m01.83s | 51832 ko | fiat-json/src/curve25519_32.json | 0m01.91s | 54384 ko || -0m00.07s || -2552 ko | -4.18% | -4.69% 0m01.82s | 57456 ko | fiat-zig/src/p256_64.zig | 0m01.79s | 57520 ko || +0m00.03s || -64 ko | +1.67% | -0.11% 0m01.81s | 60544 ko | fiat-rust/src/p224_64.rs | 0m01.87s | 61580 ko || -0m00.06s || -1036 ko | -3.20% | -1.68% 0m01.77s | 58112 ko | fiat-c/src/p224_64.c | 0m01.78s | 61864 ko || -0m00.01s || -3752 ko | -0.56% | -6.06% 0m01.77s | 60016 ko | fiat-rust/src/p256_64.rs | 0m01.78s | 60884 ko || -0m00.01s || -868 ko | -0.56% | -1.42% 0m01.76s | 36740 ko | fiat-java/src/FiatCurve25519.java | 0m01.70s | 35152 ko || +0m00.06s || 1588 ko | +3.52% | +4.51% 0m01.76s | 35116 ko | fiat-rust/src/curve25519_32.rs | 0m01.76s | 34160 ko || +0m00.00s || 956 ko | +0.00% | +2.79% 0m01.75s | 35380 ko | fiat-zig/src/curve25519_32.zig | 0m01.75s | 35084 ko || +0m00.00s || 296 ko | +0.00% | +0.84% 0m01.74s | 35840 ko | fiat-c/src/curve25519_32.c | 0m01.76s | 34260 ko || -0m00.02s || 1580 ko | -1.13% | +4.61% 0m01.74s | 65196 ko | fiat-c/src/p256_64.c | 0m01.76s | 62724 ko || -0m00.02s || 2472 ko | -1.13% | +3.94% 0m01.45s | 596340 ko | CompilersTestCases.vo | 0m01.51s | 596224 ko || -0m00.06s || 116 ko | -3.97% | +0.01% 0m01.44s | 53596 ko | fiat-bedrock2/src/secp256k1_dettman_32.c | 0m01.45s | 51196 ko || -0m00.01s || 2400 ko | -0.68% | +4.68% 0m01.28s | 42572 ko | fiat-json/src/secp256k1_dettman_32.json | 0m01.30s | 43796 ko || -0m00.02s || -1224 ko | -1.53% | -2.79% 0m01.22s | 25936 ko | fiat-c/src/secp256k1_dettman_32.c | 0m01.23s | 26436 ko || -0m00.01s || -500 ko | -0.81% | -1.89% 0m01.22s | 26988 ko | fiat-go/32/secp256k1dettman/secp256k1dettman.go | 0m01.26s | 26796 ko || -0m00.04s || 192 ko | -3.17% | +0.71% 0m01.22s | 27128 ko | fiat-java/src/FiatSecp256K1Dettman.java | 0m01.21s | 27648 ko || +0m00.01s || -520 ko | +0.82% | -1.88% 0m01.22s | 26456 ko | fiat-rust/src/secp256k1_dettman_32.rs | 0m01.24s | 26404 ko || -0m00.02s || 52 ko | -1.61% | +0.19% 0m01.20s | 26264 ko | fiat-zig/src/secp256k1_dettman_32.zig | 0m01.21s | 26620 ko || -0m00.01s || -356 ko | -0.82% | -1.33% 0m00.72s | 33336 ko | fiat-go/64/curve25519/curve25519.go | 0m00.62s | 33132 ko || +0m00.09s || 204 ko | +16.12% | +0.61% 0m00.63s | 438660 ko | Rewriter/Rules.vo | 0m00.63s | 436796 ko || +0m00.00s || 1864 ko | +0.00% | +0.42% 0m00.58s | 552492 ko | Rewriter/All.vo | 0m00.60s | 552492 ko || -0m00.02s || 0 ko | -3.33% | +0.00% 0m00.54s | 123656 ko | ExtractionOCaml/with_bedrock2_saturated_solinas.cmi | 0m00.54s | 122456 ko || +0m00.00s || 1200 ko | +0.00% | +0.97% 0m00.54s | 123868 ko | ExtractionOCaml/with_bedrock2_solinas_reduction.cmi | 0m00.55s | 122976 ko || -0m00.01s || 892 ko | -1.81% | +0.72% 0m00.54s | 120496 ko | ExtractionOCaml/with_bedrock2_word_by_word_montgomery.cmi | 0m00.56s | 122432 ko || -0m00.02s || -1936 ko | -3.57% | -1.58% 0m00.53s | 120220 ko | ExtractionOCaml/bedrock2_solinas_reduction.cmi | 0m00.54s | 120352 ko || -0m00.01s || -132 ko | -1.85% | -0.10% 0m00.53s | 122856 ko | ExtractionOCaml/unsaturated_solinas.cmi | 0m00.52s | 121012 ko || +0m00.01s || 1844 ko | +1.92% | +1.52% 0m00.53s | 122964 ko | ExtractionOCaml/with_bedrock2_unsaturated_solinas.cmi | 0m00.56s | 123648 ko || -0m00.03s || -684 ko | -5.35% | -0.55% 0m00.53s | 39636 ko | fiat-bedrock2/src/curve25519_64.c | 0m00.50s | 38928 ko || +0m00.03s || 708 ko | +6.00% | +1.81% 0m00.52s | 123624 ko | ExtractionOCaml/bedrock2_base_conversion.cmi | 0m00.53s | 123936 ko || -0m00.01s || -312 ko | -1.88% | -0.25% 0m00.52s | 120356 ko | ExtractionOCaml/dettman_multiplication.cmi | 0m00.50s | 120344 ko || +0m00.02s || 12 ko | +4.00% | +0.00% 0m00.52s | 123888 ko | ExtractionOCaml/with_bedrock2_base_conversion.cmi | 0m00.52s | 123416 ko || +0m00.00s || 472 ko | +0.00% | +0.38% 0m00.52s | 121844 ko | ExtractionOCaml/with_bedrock2_dettman_multiplication.cmi | 0m00.52s | 121848 ko || +0m00.00s || -4 ko | +0.00% | -0.00% 0m00.51s | 122700 ko | ExtractionOCaml/bedrock2_unsaturated_solinas.cmi | 0m00.53s | 123096 ko || -0m00.02s || -396 ko | -3.77% | -0.32% 0m00.50s | 120684 ko | ExtractionOCaml/base_conversion.cmi | 0m00.50s | 122432 ko || +0m00.00s || -1748 ko | +0.00% | -1.42% 0m00.50s | 120748 ko | ExtractionOCaml/bedrock2_word_by_word_montgomery.cmi | 0m00.57s | 120620 ko || -0m00.06s || 128 ko | -12.28% | +0.10% 0m00.50s | 120344 ko | ExtractionOCaml/saturated_solinas.cmi | 0m00.51s | 120300 ko || -0m00.01s || 44 ko | -1.96% | +0.03% 0m00.50s | 28344 ko | fiat-zig/src/curve25519_64.zig | 0m00.46s | 28560 ko || +0m00.03s || -216 ko | +8.69% | -0.75% 0m00.49s | 123236 ko | ExtractionOCaml/bedrock2_dettman_multiplication.cmi | 0m00.53s | 122576 ko || -0m00.04s || 660 ko | -7.54% | +0.53% 0m00.49s | 120500 ko | ExtractionOCaml/word_by_word_montgomery.cmi | 0m00.48s | 120356 ko || +0m00.01s || 144 ko | +2.08% | +0.11% 0m00.49s | 35980 ko | fiat-json/src/curve25519_64.json | 0m00.52s | 34660 ko || -0m00.03s || 1320 ko | -5.76% | +3.80% 0m00.49s | 28488 ko | fiat-rust/src/curve25519_64.rs | 0m00.47s | 27384 ko || +0m00.02s || 1104 ko | +4.25% | +4.03% 0m00.48s | 121720 ko | ExtractionOCaml/bedrock2_saturated_solinas.cmi | 0m00.52s | 122768 ko || -0m00.04s || -1048 ko | -7.69% | -0.85% 0m00.47s | 119616 ko | ExtractionOCaml/solinas_reduction.cmi | 0m00.49s | 120324 ko || -0m00.02s || -708 ko | -4.08% | -0.58% 0m00.47s | 28124 ko | fiat-c/src/curve25519_64.c | 0m00.45s | 28304 ko || +0m00.01s || -180 ko | +4.44% | -0.63% 0m00.44s | 37236 ko | fiat-go/64/curve25519solinas/curve25519solinas.go | 0m00.40s | 37736 ko || +0m00.03s || -500 ko | +9.99% | -1.32% 0m00.43s | 38744 ko | fiat-json/src/curve25519_solinas_64.json | 0m00.43s | 40512 ko || +0m00.00s || -1768 ko | +0.00% | -4.36% 0m00.43s | 38224 ko | fiat-rust/src/curve25519_solinas_64.rs | 0m00.41s | 37192 ko || +0m00.02s || 1032 ko | +4.87% | +2.77% 0m00.42s | 45732 ko | fiat-bedrock2/src/curve25519_solinas_64.c | 0m00.40s | 42468 ko || +0m00.01s || 3264 ko | +4.99% | +7.68% 0m00.42s | 37052 ko | fiat-zig/src/curve25519_solinas_64.zig | 0m00.41s | 36628 ko || +0m00.01s || 424 ko | +2.43% | +1.15% 0m00.38s | 37156 ko | fiat-c/src/curve25519_solinas_64.c | 0m00.42s | 37160 ko || -0m00.03s || -4 ko | -9.52% | -0.01% 0m00.29s | 26484 ko | fiat-go/32/poly1305/poly1305.go | 0m00.28s | 26668 ko || +0m00.00s || -184 ko | +3.57% | -0.68% 0m00.26s | 33824 ko | fiat-bedrock2/src/poly1305_32.c | 0m00.26s | 33836 ko || +0m00.00s || -12 ko | +0.00% | -0.03% 0m00.24s | 26896 ko | fiat-go/64/secp256k1dettman/secp256k1dettman.go | 0m00.22s | 26224 ko || +0m00.01s || 672 ko | +9.09% | +2.56% 0m00.24s | 26316 ko | fiat-java/src/FiatPoly1305.java | 0m00.22s | 25696 ko || +0m00.01s || 620 ko | +9.09% | +2.41% 0m00.24s | 31548 ko | fiat-json/src/poly1305_32.json | 0m00.24s | 31200 ko || +0m00.00s || 348 ko | +0.00% | +1.11% 0m00.23s | 26104 ko | fiat-c/src/poly1305_32.c | 0m00.21s | 25912 ko || +0m00.02s || 192 ko | +9.52% | +0.74% 0m00.23s | 27116 ko | fiat-go/64/poly1305/poly1305.go | 0m00.17s | 27576 ko || +0m00.06s || -460 ko | +35.29% | -1.66% 0m00.23s | 26228 ko | fiat-rust/src/poly1305_32.rs | 0m00.22s | 26228 ko || +0m00.01s || 0 ko | +4.54% | +0.00% 0m00.22s | 31180 ko | fiat-bedrock2/src/secp256k1_dettman_64.c | 0m00.23s | 30968 ko || -0m00.01s || 212 ko | -4.34% | +0.68% 0m00.21s | 25520 ko | fiat-zig/src/poly1305_32.zig | 0m00.21s | 25420 ko || +0m00.00s || 100 ko | +0.00% | +0.39% 0m00.20s | 25196 ko | fiat-json/src/secp256k1_dettman_64.json | 0m00.19s | 24872 ko || +0m00.01s || 324 ko | +5.26% | +1.30% 0m00.20s | 22184 ko | fiat-zig/src/secp256k1_dettman_64.zig | 0m00.18s | 21864 ko || +0m00.02s || 320 ko | +11.11% | +1.46% 0m00.18s | 21800 ko | fiat-c/src/secp256k1_dettman_64.c | 0m00.18s | 21800 ko || +0m00.00s || 0 ko | +0.00% | +0.00% 0m00.18s | 22084 ko | fiat-rust/src/secp256k1_dettman_64.rs | 0m00.18s | 22376 ko || +0m00.00s || -292 ko | +0.00% | -1.30% 0m00.17s | 61932 ko | ExtractionOCaml/perf_unsaturated_solinas.cmi | 0m00.19s | 62248 ko || -0m00.01s || -316 ko | -10.52% | -0.50% 0m00.16s | 62528 ko | ExtractionOCaml/perf_word_by_word_montgomery.cmi | 0m00.16s | 61452 ko || +0m00.00s || 1076 ko | +0.00% | +1.75% 0m00.15s | 28964 ko | fiat-json/src/poly1305_64.json | 0m00.14s | 27736 ko || +0m00.00s || 1228 ko | +7.14% | +4.42% 0m00.13s | 25196 ko | fiat-rust/src/poly1305_64.rs | 0m00.12s | 24336 ko || +0m00.01s || 860 ko | +8.33% | +3.53% 0m00.12s | 29576 ko | fiat-bedrock2/src/poly1305_64.c | 0m00.12s | 29648 ko || +0m00.00s || -72 ko | +0.00% | -0.24% 0m00.12s | 24992 ko | fiat-c/src/poly1305_64.c | 0m00.12s | 24612 ko || +0m00.00s || 380 ko | +0.00% | +1.54% 0m00.12s | 24928 ko | fiat-zig/src/poly1305_64.zig | 0m00.13s | 24612 ko || -0m00.01s || 316 ko | -7.69% | +1.28% ``` </p> </details>
For https://github.com/mit-plv/fiat-crypto/pull/1609 We don't yet include the ones that are higher-order-than 3, those need more debugging. Co-authored-by: Andres Erbsen <[email protected]> <details><summary>Timing Diff</summary> <p> ``` After | Peak Mem | File Name | Before | Peak Mem || Change || Change (mem) | % Change | % Change (mem) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 119m55.01s | 2852288 ko | Total Time / Peak Mem | 116m54.82s | 2852504 ko || +3m00.19s || -216 ko | +2.56% | -0.00% ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 4m23.28s | 1922200 ko | Rewriter/Passes/ArithWithCasts.vo | 3m44.64s | 1804812 ko || +0m38.63s || 117388 ko | +17.20% | +6.50% 1m56.74s | 1630248 ko | fiat-java/src/FiatP384Scalar.java | 1m37.68s | 1868416 ko || +0m19.06s || -238168 ko | +19.51% | -12.74% 1m58.86s | 1834476 ko | fiat-bedrock2/src/p384_32.c | 1m40.20s | 1821748 ko || +0m18.65s || 12728 ko | +18.62% | +0.69% 1m57.91s | 1645388 ko | fiat-json/src/p384_scalar_32.json | 1m39.64s | 2106288 ko || +0m18.26s || -460900 ko | +18.33% | -21.88% 0m55.68s | 1150564 ko | Rewriter/Passes/Arith.vo | 0m40.86s | 1092012 ko || +0m14.82s || 58552 ko | +36.27% | +5.36% 2m00.58s | 2234976 ko | fiat-bedrock2/src/p384_scalar_32.c | 1m47.08s | 2226524 ko || +0m13.50s || 8452 ko | +12.60% | +0.37% 1m56.68s | 1764652 ko | fiat-java/src/FiatP384.java | 1m44.50s | 1969328 ko || +0m12.18s || -204676 ko | +11.65% | -10.39% 1m54.76s | 1908628 ko | fiat-json/src/p384_32.json | 1m43.69s | 2004176 ko || +0m11.06s || -95548 ko | +10.67% | -4.76% 1m57.28s | 1615084 ko | fiat-zig/src/p384_scalar_32.zig | 1m46.91s | 1733780 ko || +0m10.37s || -118696 ko | +9.69% | -6.84% 1m54.55s | 2074740 ko | fiat-zig/src/p384_32.zig | 1m44.61s | 1626180 ko || +0m09.93s || 448560 ko | +9.50% | +27.58% 1m55.94s | 2145952 ko | fiat-go/32/p384scalar/p384scalar.go | 1m48.27s | 1630928 ko || +0m07.66s || 515024 ko | +7.08% | +31.57% 1m57.76s | 1764936 ko | fiat-rust/src/p384_scalar_32.rs | 1m51.87s | 1768464 ko || +0m05.88s || -3528 ko | +5.26% | -0.19% 1m54.58s | 1597680 ko | fiat-rust/src/p384_32.rs | 1m48.64s | 1718060 ko || +0m05.93s || -120380 ko | +5.46% | -7.00% 1m54.56s | 1708700 ko | fiat-c/src/p384_scalar_32.c | 1m49.11s | 1518820 ko || +0m05.45s || 189880 ko | +4.99% | +12.50% 1m51.99s | 1734444 ko | fiat-c/src/p384_32.c | 1m46.30s | 1630176 ko || +0m05.69s || 104268 ko | +5.35% | +6.39% 1m45.33s | 1889064 ko | Bedrock/End2End/X25519/AddPrecomputed.vo | 1m49.74s | 1889060 ko || -0m04.41s || 4 ko | -4.01% | +0.00% 5m27.35s | 2852288 ko | Bedrock/Field/Synthesis/Examples/p224_64_new.vo | 5m31.22s | 2852504 ko || -0m03.87s || -216 ko | -1.16% | -0.00% 2m33.52s | 1607452 ko | Rewriter/Passes/NBE.vo | 2m37.17s | 1607512 ko || -0m03.65s || -60 ko | -2.32% | -0.00% 0m37.77s | 110828 ko | fiat-json/src/p521_32.json | 0m33.99s | 114180 ko || +0m03.78s || -3352 ko | +11.12% | -2.93% 0m37.53s | 62756 ko | fiat-java/src/FiatP521.java | 0m33.77s | 62456 ko || +0m03.75s || 300 ko | +11.13% | +0.48% 1m50.62s | 1393276 ko | Rewriter/Passes/ToFancyWithCasts.vo | 1m53.15s | 1392880 ko || -0m02.53s || 396 ko | -2.23% | +0.02% 0m42.34s | 1859688 ko | ExtractionOCaml/bedrock2_saturated_solinas | 0m40.29s | 1851720 ko || +0m02.05s || 7968 ko | +5.08% | +0.43% 0m39.48s | 1769316 ko | ExtractionOCaml/base_conversion | 0m41.92s | 1624120 ko || -0m02.44s || 145196 ko | -5.82% | +8.93% 1m49.94s | 2247636 ko | Fancy/Barrett256.vo | 1m51.28s | 2284788 ko || -0m01.34s || -37152 ko | -1.20% | -1.62% 1m47.35s | 1832408 ko | fiat-go/32/p384/p384.go | 1m49.23s | 1724040 ko || -0m01.87s || 108368 ko | -1.72% | +6.28% 1m32.25s | 2164300 ko | SlowPrimeSynthesisExamples.vo | 1m33.38s | 2139896 ko || -0m01.12s || 24404 ko | -1.21% | +1.14% 0m51.90s | 1016836 ko | Rewriter/Passes/MultiRetSplit.vo | 0m53.14s | 1016808 ko || -0m01.24s || 28 ko | -2.33% | +0.00% 0m47.25s | 2146984 ko | ExtractionOCaml/solinas_reduction | 0m45.91s | 2147072 ko || +0m01.34s || -88 ko | +2.91% | -0.00% 0m45.18s | 2146856 ko | ExtractionOCaml/word_by_word_montgomery | 0m46.83s | 2147056 ko || -0m01.64s || -200 ko | -3.52% | -0.00% 0m43.40s | 1864240 ko | ExtractionOCaml/bedrock2_dettman_multiplication | 0m41.96s | 1870364 ko || +0m01.43s || -6124 ko | +3.43% | -0.32% 0m41.82s | 1863680 ko | ExtractionOCaml/unsaturated_solinas | 0m43.45s | 1863368 ko || -0m01.63s || 312 ko | -3.75% | +0.01% 0m29.25s | 1544592 ko | StandaloneDebuggingExamples.vo | 0m30.51s | 1556744 ko || -0m01.26s || -12152 ko | -4.12% | -0.78% 0m16.94s | 283032 ko | fiat-go/64/p434/p434.go | 0m18.07s | 247128 ko || -0m01.12s || 35904 ko | -6.25% | +14.52% 0m16.74s | 2204356 ko | ExtractionHaskell/with_bedrock2_solinas_reduction.hs | 0m17.83s | 2237008 ko || -0m01.08s || -32652 ko | -6.11% | -1.45% 0m16.25s | 253040 ko | fiat-rust/src/p434_64.rs | 0m17.99s | 278560 ko || -0m01.73s || -25520 ko | -9.67% | -9.16% 8m28.15s | 2591812 ko | Bedrock/End2End/X25519/GarageDoor.vo | 8m27.82s | 2587848 ko || +0m00.32s || 3964 ko | +0.06% | +0.15% 1m51.16s | 1612836 ko | Bedrock/End2End/X25519/Field25519.vo | 1m52.02s | 1604084 ko || -0m00.86s || 8752 ko | -0.76% | +0.54% 0m56.72s | 707388 ko | Rewriter/RulesProofs.vo | 0m55.84s | 703908 ko || +0m00.87s || 3480 ko | +1.57% | +0.49% 0m49.15s | 2147776 ko | ExtractionOCaml/bedrock2_solinas_reduction | 0m48.43s | 2147920 ko || +0m00.71s || -144 ko | +1.48% | -0.00% 0m48.64s | 1869620 ko | Fancy/Montgomery256.vo | 0m48.94s | 1855572 ko || -0m00.29s || 14048 ko | -0.61% | +0.75% 0m48.41s | 2147988 ko | ExtractionOCaml/with_bedrock2_word_by_word_montgomery | 0m48.03s | 2147920 ko || +0m00.37s || 68 ko | +0.79% | +0.00% 0m48.12s | 2148012 ko | ExtractionOCaml/bedrock2_word_by_word_montgomery | 0m47.94s | 2147964 ko || +0m00.17s || 48 ko | +0.37% | +0.00% 0m47.07s | 2148072 ko | ExtractionOCaml/bedrock2_unsaturated_solinas | 0m46.98s | 2147976 ko || +0m00.09s || 96 ko | +0.19% | +0.00% 0m46.31s | 2148036 ko | ExtractionOCaml/with_bedrock2_unsaturated_solinas | 0m46.12s | 2147932 ko || +0m00.19s || 104 ko | +0.41% | +0.00% 0m42.55s | 1864184 ko | ExtractionOCaml/bedrock2_base_conversion | 0m41.57s | 1864708 ko || +0m00.97s || -524 ko | +2.35% | -0.02% 0m42.07s | 1864464 ko | ExtractionOCaml/with_bedrock2_base_conversion | 0m41.20s | 1823744 ko || +0m00.86s || 40720 ko | +2.11% | +2.23% 0m41.68s | 1858816 ko | ExtractionOCaml/with_bedrock2_saturated_solinas | 0m40.96s | 1851212 ko || +0m00.71s || 7604 ko | +1.75% | +0.41% 0m41.66s | 1859960 ko | ExtractionOCaml/with_bedrock2_dettman_multiplication | 0m41.21s | 1851288 ko || +0m00.44s || 8672 ko | +1.09% | +0.46% 0m41.50s | 1857940 ko | ExtractionOCaml/with_bedrock2_solinas_reduction | 0m41.06s | 1849540 ko || +0m00.43s || 8400 ko | +1.07% | +0.45% 0m40.74s | 62064 ko | fiat-go/32/p521/p521.go | 0m41.26s | 68256 ko || -0m00.51s || -6192 ko | -1.26% | -9.07% 0m40.14s | 1864708 ko | ExtractionOCaml/dettman_multiplication | 0m40.52s | 1786504 ko || -0m00.38s || 78204 ko | -0.93% | +4.37% 0m38.85s | 149624 ko | fiat-bedrock2/src/p521_32.c | 0m38.98s | 143940 ko || -0m00.12s || 5684 ko | -0.33% | +3.94% 0m38.54s | 1775188 ko | ExtractionOCaml/saturated_solinas | 0m38.71s | 1764700 ko || -0m00.17s || 10488 ko | -0.43% | +0.59% 0m37.51s | 62500 ko | fiat-zig/src/p521_32.zig | 0m37.39s | 59332 ko || +0m00.11s || 3168 ko | +0.32% | +5.33% 0m37.48s | 1294192 ko | Bedrock/End2End/X25519/GarageDoorTop.vo | 0m37.27s | 1292880 ko || +0m00.20s || 1312 ko | +0.56% | +0.10% 0m37.44s | 66780 ko | fiat-c/src/p521_32.c | 0m37.77s | 60280 ko || -0m00.33s || 6500 ko | -0.87% | +10.78% 0m37.42s | 60608 ko | fiat-rust/src/p521_32.rs | 0m37.83s | 61900 ko || -0m00.40s || -1292 ko | -1.08% | -2.08% 0m37.11s | 2378444 ko | ExtractionOCaml/bedrock2_solinas_reduction.ml | 0m37.46s | 2364772 ko || -0m00.35s || 13672 ko | -0.93% | +0.57% 0m36.36s | 2319684 ko | ExtractionOCaml/with_bedrock2_word_by_word_montgomery.ml | 0m36.69s | 2362052 ko || -0m00.32s || -42368 ko | -0.89% | -1.79% 0m36.34s | 2322608 ko | ExtractionOCaml/bedrock2_word_by_word_montgomery.ml | 0m36.87s | 2363400 ko || -0m00.52s || -40792 ko | -1.43% | -1.72% 0m35.65s | 2239920 ko | ExtractionOCaml/solinas_reduction.ml | 0m35.60s | 2244256 ko || +0m00.04s || -4336 ko | +0.14% | -0.19% 0m34.94s | 1413516 ko | ExtractionOCaml/perf_word_by_word_montgomery | 0m34.37s | 1401160 ko || +0m00.57s || 12356 ko | +1.65% | +0.88% 0m34.88s | 1413452 ko | ExtractionOCaml/perf_unsaturated_solinas | 0m34.36s | 1398860 ko || +0m00.52s || 14592 ko | +1.51% | +1.04% 0m34.62s | 1284740 ko | Bedrock/End2End/X25519/MontgomeryLadder.vo | 0m35.00s | 1284680 ko || -0m00.38s || 60 ko | -1.08% | +0.00% 0m34.36s | 2237140 ko | ExtractionOCaml/word_by_word_montgomery.ml | 0m34.45s | 2220616 ko || -0m00.09s || 16524 ko | -0.26% | +0.74% 0m34.01s | 915808 ko | Rewriter/Passes/MulSplit.vo | 0m34.72s | 913152 ko || -0m00.71s || 2656 ko | -2.04% | +0.29% 0m33.79s | 2251096 ko | ExtractionOCaml/bedrock2_unsaturated_solinas.ml | 0m33.50s | 2229256 ko || +0m00.28s || 21840 ko | +0.86% | +0.97% 0m33.14s | 2251808 ko | ExtractionOCaml/with_bedrock2_unsaturated_solinas.ml | 0m33.28s | 2229952 ko || -0m00.14s || 21856 ko | -0.42% | +0.98% 0m31.42s | 2149728 ko | ExtractionOCaml/unsaturated_solinas.ml | 0m31.33s | 2124628 ko || +0m00.09s || 25100 ko | +0.28% | +1.18% 0m29.99s | 2166628 ko | ExtractionOCaml/bedrock2_dettman_multiplication.ml | 0m30.23s | 2179988 ko || -0m00.24s || -13360 ko | -0.79% | -0.61% 0m29.53s | 2156584 ko | ExtractionOCaml/with_bedrock2_solinas_reduction.ml | 0m29.10s | 2125132 ko || +0m00.42s || 31452 ko | +1.47% | +1.48% 0m29.25s | 2161092 ko | ExtractionOCaml/with_bedrock2_base_conversion.ml | 0m28.31s | 2121844 ko || +0m00.94s || 39248 ko | +3.32% | +1.84% 0m29.19s | 2161336 ko | ExtractionOCaml/bedrock2_base_conversion.ml | 0m29.47s | 2121804 ko || -0m00.27s || 39532 ko | -0.95% | +1.86% 0m29.12s | 2156880 ko | ExtractionOCaml/bedrock2_saturated_solinas.ml | 0m29.25s | 2124968 ko || -0m00.12s || 31912 ko | -0.44% | +1.50% 0m29.07s | 2156996 ko | ExtractionOCaml/with_bedrock2_saturated_solinas.ml | 0m28.94s | 2124832 ko || +0m00.12s || 32164 ko | +0.44% | +1.51% 0m28.90s | 2158288 ko | ExtractionOCaml/with_bedrock2_dettman_multiplication.ml | 0m29.11s | 2130440 ko || -0m00.21s || 27848 ko | -0.72% | +1.30% 0m27.93s | 2064324 ko | ExtractionOCaml/dettman_multiplication.ml | 0m28.14s | 2081544 ko || -0m00.21s || -17220 ko | -0.74% | -0.82% 0m27.37s | 2077984 ko | ExtractionOCaml/saturated_solinas.ml | 0m27.45s | 2061340 ko || -0m00.07s || 16644 ko | -0.29% | +0.80% 0m26.92s | 2069712 ko | ExtractionOCaml/base_conversion.ml | 0m27.35s | 2051836 ko || -0m00.42s || 17876 ko | -1.57% | +0.87% 0m25.19s | 1381372 ko | PerfTesting/PerfTestSearch.vo | 0m25.63s | 1377272 ko || -0m00.43s || 4100 ko | -1.71% | +0.29% 0m23.10s | 1189876 ko | PushButtonSynthesis/UnsaturatedSolinas.vo | 0m23.84s | 1191348 ko || -0m00.73s || -1472 ko | -3.10% | -0.12% 0m21.56s | 1967716 ko | ExtractionOCaml/perf_unsaturated_solinas.ml | 0m21.50s | 1905172 ko || +0m00.05s || 62544 ko | +0.27% | +3.28% 0m21.46s | 1954296 ko | ExtractionOCaml/perf_word_by_word_montgomery.ml | 0m21.53s | 2007400 ko || -0m00.07s || -53104 ko | -0.32% | -2.64% 0m21.42s | 1364020 ko | Bedrock/End2End/RupicolaCrypto/Low.vo | 0m21.81s | 1360444 ko || -0m00.38s || 3576 ko | -1.78% | +0.26% 0m20.10s | 1163460 ko | PushButtonSynthesis/WordByWordMontgomery.vo | 0m20.64s | 1164604 ko || -0m00.53s || -1144 ko | -2.61% | -0.09% 0m18.30s | 301772 ko | fiat-bedrock2/src/p434_64.c | 0m18.00s | 301336 ko || +0m00.30s || 436 ko | +1.66% | +0.14% 0m18.28s | 1142612 ko | Bedrock/Field/Translation/Proofs/Func.vo | 0m18.75s | 1141560 ko || -0m00.46s || 1052 ko | -2.50% | +0.09% 0m17.74s | 405312 ko | fiat-bedrock2/src/secp256k1_montgomery_scalar_32.c | 0m17.23s | 404568 ko || +0m00.50s || 744 ko | +2.95% | +0.18% 0m17.68s | 267560 ko | fiat-json/src/p434_64.json | 0m17.55s | 336912 ko || +0m00.12s || -69352 ko | +0.74% | -20.58% 0m17.57s | 432032 ko | fiat-bedrock2/src/p256_scalar_32.c | 0m17.05s | 461272 ko || +0m00.51s || -29240 ko | +3.04% | -6.33% 0m17.48s | 2202308 ko | ExtractionHaskell/bedrock2_solinas_reduction.hs | 0m17.75s | 2235132 ko || -0m00.26s || -32824 ko | -1.52% | -1.46% 0m17.46s | 1380556 ko | PerfTesting/PerfTestSearchPattern.vo | 0m17.92s | 1380832 ko || -0m00.46s || -276 ko | -2.56% | -0.01% 0m17.41s | 230072 ko | fiat-zig/src/p434_64.zig | 0m17.32s | 253724 ko || +0m00.08s || -23652 ko | +0.51% | -9.32% 0m17.35s | 1223956 ko | Bedrock/Field/Synthesis/New/Signature.vo | 0m17.66s | 1220516 ko || -0m00.30s || 3440 ko | -1.75% | +0.28% 0m17.35s | 2166060 ko | ExtractionHaskell/bedrock2_word_by_word_montgomery.hs | 0m17.53s | 2194808 ko || -0m00.17s || -28748 ko | -1.02% | -1.30% 0m17.28s | 2164448 ko | ExtractionHaskell/with_bedrock2_word_by_word_montgomery.hs | 0m17.52s | 2193664 ko || -0m00.23s || -29216 ko | -1.36% | -1.33% 0m17.16s | 254416 ko | fiat-c/src/p434_64.c | 0m17.42s | 251820 ko || -0m00.26s || 2596 ko | -1.49% | +1.03% 0m17.15s | 390476 ko | fiat-bedrock2/src/secp256k1_montgomery_32.c | 0m16.69s | 415512 ko || +0m00.45s || -25036 ko | +2.75% | -6.02% 0m17.01s | 351572 ko | fiat-java/src/FiatSecp256K1MontgomeryScalar.java | 0m16.40s | 455088 ko || +0m00.61s || -103516 ko | +3.71% | -22.74% 0m16.90s | 445272 ko | fiat-go/32/secp256k1montgomeryscalar/secp256k1montgomeryscalar.go | 0m17.19s | 360700 ko || -0m00.29s || 84572 ko | -1.68% | +23.44% 0m16.86s | 1160300 ko | Bedrock/Field/Translation/Proofs/Cmd.vo | 0m17.42s | 1157936 ko || -0m00.56s || 2364 ko | -3.21% | +0.20% 0m16.84s | 456724 ko | fiat-bedrock2/src/curve25519_scalar_32.c | 0m16.68s | 405344 ko || +0m00.16s || 51380 ko | +0.95% | +12.67% 0m16.83s | 454284 ko | fiat-json/src/secp256k1_montgomery_scalar_32.json | 0m16.39s | 468528 ko || +0m00.43s || -14244 ko | +2.68% | -3.04% 0m16.79s | 2032540 ko | ExtractionHaskell/word_by_word_montgomery.hs | 0m16.91s | 2067180 ko || -0m00.12s || -34640 ko | -0.70% | -1.67% 0m16.77s | 2093008 ko | ExtractionHaskell/solinas_reduction.hs | 0m16.77s | 2051684 ko || +0m00.00s || 41324 ko | +0.00% | +2.01% 0m16.76s | 371064 ko | fiat-java/src/FiatP256Scalar.java | 0m15.92s | 334232 ko || +0m00.84s || 36832 ko | +5.27% | +11.01% 0m16.75s | 2144072 ko | ExtractionHaskell/bedrock2_unsaturated_solinas.hs | 0m16.53s | 2074184 ko || +0m00.21s || 69888 ko | +1.33% | +3.36% 0m16.73s | 406956 ko | fiat-json/src/curve25519_scalar_32.json | 0m16.02s | 450328 ko || +0m00.71s || -43372 ko | +4.43% | -9.63% 0m16.73s | 347524 ko | fiat-zig/src/secp256k1_montgomery_scalar_32.zig | 0m16.35s | 397760 ko || +0m00.37s || -50236 ko | +2.32% | -12.62% 0m16.72s | 390380 ko | fiat-zig/src/p256_scalar_32.zig | 0m16.18s | 356296 ko || +0m00.53s || 34084 ko | +3.33% | +9.56% 0m16.70s | 391092 ko | fiat-go/32/p256scalar/p256scalar.go | 0m16.94s | 366900 ko || -0m00.24s || 24192 ko | -1.41% | +6.59% 0m16.68s | 405796 ko | fiat-java/src/FiatCurve25519Scalar.java | 0m16.15s | 370228 ko || +0m00.53s || 35568 ko | +3.28% | +9.60% 0m16.66s | 378844 ko | fiat-rust/src/p256_scalar_32.rs | 0m15.98s | 411316 ko || +0m00.67s || -32472 ko | +4.25% | -7.89% 0m16.61s | 366928 ko | fiat-c/src/secp256k1_montgomery_scalar_32.c | 0m16.58s | 426780 ko || +0m00.03s || -59852 ko | +0.18% | -14.02% 0m16.59s | 340692 ko | fiat-rust/src/secp256k1_montgomery_32.rs | 0m16.47s | 353508 ko || +0m00.12s || -12816 ko | +0.72% | -3.62% 0m16.58s | 385436 ko | fiat-json/src/secp256k1_montgomery_32.json | 0m16.19s | 407896 ko || +0m00.38s || -22460 ko | +2.40% | -5.50% 0m16.55s | 416232 ko | fiat-go/32/curve25519scalar/curve25519scalar.go | 0m16.41s | 346260 ko || +0m00.14s || 69972 ko | +0.85% | +20.20% 0m16.53s | 338172 ko | fiat-java/src/FiatSecp256K1Montgomery.java | 0m16.15s | 423920 ko || +0m00.38s || -85748 ko | +2.35% | -20.22% 0m16.53s | 396224 ko | fiat-rust/src/secp256k1_montgomery_scalar_32.rs | 0m16.61s | 445068 ko || -0m00.07s || -48844 ko | -0.48% | -10.97% 0m16.50s | 2144128 ko | ExtractionHaskell/with_bedrock2_unsaturated_solinas.hs | 0m16.55s | 2072880 ko || -0m00.05s || 71248 ko | -0.30% | +3.43% 0m16.45s | 1139712 ko | Bedrock/End2End/Poly1305/Field1305.vo | 0m17.26s | 1137640 ko || -0m00.81s || 2072 ko | -4.69% | +0.18% 0m16.45s | 364804 ko | fiat-c/src/p256_scalar_32.c | 0m16.45s | 434352 ko || +0m00.00s || -69548 ko | +0.00% | -16.01% 0m16.36s | 436776 ko | fiat-zig/src/secp256k1_montgomery_32.zig | 0m16.01s | 437516 ko || +0m00.34s || -740 ko | +2.18% | -0.16% 0m16.33s | 359632 ko | fiat-zig/src/curve25519_scalar_32.zig | 0m15.80s | 434444 ko || +0m00.52s || -74812 ko | +3.35% | -17.22% 0m16.32s | 440340 ko | fiat-go/32/secp256k1montgomery/secp256k1montgomery.go | 0m16.19s | 415772 ko || +0m00.12s || 24568 ko | +0.80% | +5.90% 0m16.31s | 431364 ko | fiat-json/src/p256_scalar_32.json | 0m16.54s | 468452 ko || -0m00.23s || -37088 ko | -1.39% | -7.91% 0m16.28s | 418340 ko | fiat-c/src/secp256k1_montgomery_32.c | 0m16.07s | 354548 ko || +0m00.21s || 63792 ko | +1.30% | +17.99% 0m16.11s | 323148 ko | fiat-c/src/curve25519_scalar_32.c | 0m15.37s | 376208 ko || +0m00.74s || -53060 ko | +4.81% | -14.10% 0m16.09s | 429024 ko | fiat-rust/src/curve25519_scalar_32.rs | 0m16.31s | 405604 ko || -0m00.21s || 23420 ko | -1.34% | +5.77% 0m16.07s | 392824 ko | fiat-bedrock2/src/p256_32.c | 0m15.76s | 418500 ko || +0m00.31s || -25676 ko | +1.96% | -6.13% 0m15.73s | 2026232 ko | ExtractionHaskell/unsaturated_solinas.hs | 0m15.70s | 1972880 ko || +0m00.03s || 53352 ko | +0.19% | +2.70% 0m15.67s | 400632 ko | fiat-java/src/FiatP256.java | 0m15.23s | 347976 ko || +0m00.43s || 52656 ko | +2.88% | +15.13% 0m15.67s | 426864 ko | fiat-rust/src/p256_32.rs | 0m15.43s | 436980 ko || +0m00.24s || -10116 ko | +1.55% | -2.31% 0m15.65s | 433612 ko | fiat-go/32/p256/p256.go | 0m15.46s | 363800 ko || +0m00.18s || 69812 ko | +1.22% | +19.18% 0m15.65s | 332588 ko | fiat-zig/src/p256_32.zig | 0m15.39s | 407124 ko || +0m00.25s || -74536 ko | +1.68% | -18.30% 0m15.56s | 2010528 ko | ExtractionHaskell/with_bedrock2_dettman_multiplication.hs | 0m15.92s | 2039152 ko || -0m00.35s || -28624 ko | -2.26% | -1.40% 0m15.53s | 2010444 ko | ExtractionHaskell/bedrock2_dettman_multiplication.hs | 0m15.68s | 2040720 ko || -0m00.15s || -30276 ko | -0.95% | -1.48% 0m15.40s | 332344 ko | fiat-c/src/p256_32.c | 0m15.21s | 376848 ko || +0m00.18s || -44504 ko | +1.24% | -11.80% 0m15.29s | 1948284 ko | ExtractionHaskell/with_bedrock2_base_conversion.hs | 0m15.53s | 2016228 ko || -0m00.24s || -67944 ko | -1.54% | -3.36% 0m15.23s | 1959948 ko | ExtractionHaskell/with_bedrock2_saturated_solinas.hs | 0m15.52s | 2013692 ko || -0m00.28s || -53744 ko | -1.86% | -2.66% 0m15.22s | 1958896 ko | ExtractionHaskell/dettman_multiplication.hs | 0m15.10s | 1903264 ko || +0m00.12s || 55632 ko | +0.79% | +2.92% 0m15.15s | 1948672 ko | ExtractionHaskell/bedrock2_base_conversion.hs | 0m15.63s | 2015624 ko || -0m00.48s || -66952 ko | -3.07% | -3.32% 0m15.12s | 445592 ko | fiat-json/src/p256_32.json | 0m15.46s | 416848 ko || -0m00.34s || 28744 ko | -2.19% | +6.89% 0m15.11s | 1960852 ko | ExtractionHaskell/bedrock2_saturated_solinas.hs | 0m15.44s | 2013416 ko || -0m00.33s || -52564 ko | -2.13% | -2.61% 0m14.88s | 1955220 ko | ExtractionHaskell/base_conversion.hs | 0m14.93s | 1897380 ko || -0m00.04s || 57840 ko | -0.33% | +3.04% 0m14.86s | 1921176 ko | ExtractionHaskell/saturated_solinas.hs | 0m14.96s | 1916928 ko || -0m00.10s || 4248 ko | -0.66% | +0.22% 0m11.31s | 199152 ko | fiat-bedrock2/src/p384_scalar_64.c | 0m11.18s | 194984 ko || +0m00.13s || 4168 ko | +1.16% | +2.13% 0m11.21s | 199888 ko | fiat-go/64/p384scalar/p384scalar.go | 0m11.15s | 164128 ko || +0m00.06s || 35760 ko | +0.53% | +21.78% 0m11.17s | 1708132 ko | Bedrock/Field/Synthesis/New/WordByWordMontgomery.vo | 0m11.30s | 1703996 ko || -0m00.13s || 4136 ko | -1.15% | +0.24% 0m10.92s | 1035420 ko | BoundsPipeline.vo | 0m11.20s | 1036784 ko || -0m00.27s || -1364 ko | -2.49% | -0.13% 0m10.91s | 169592 ko | fiat-json/src/p384_scalar_64.json | 0m10.81s | 184092 ko || +0m00.09s || -14500 ko | +0.92% | -7.87% 0m10.87s | 176344 ko | fiat-zig/src/p384_scalar_64.zig | 0m10.57s | 192372 ko || +0m00.29s || -16028 ko | +2.83% | -8.33% 0m10.73s | 166616 ko | fiat-rust/src/p384_scalar_64.rs | 0m10.84s | 176032 ko || -0m00.10s || -9416 ko | -1.01% | -5.34% 0m10.58s | 154460 ko | fiat-c/src/p384_scalar_64.c | 0m10.71s | 142320 ko || -0m00.13s || 12140 ko | -1.21% | +8.53% 0m10.15s | 1304732 ko | Bedrock/End2End/X25519/MontgomeryLadderProperties.vo | 0m10.24s | 1304688 ko || -0m00.08s || 44 ko | -0.87% | +0.00% 0m09.59s | 195012 ko | fiat-bedrock2/src/p384_64.c | 0m09.53s | 205984 ko || +0m00.06s || -10972 ko | +0.62% | -5.32% 0m09.54s | 255304 ko | fiat-bedrock2/src/p224_32.c | 0m09.46s | 246228 ko || +0m00.07s || 9076 ko | +0.84% | +3.68% 0m09.38s | 235988 ko | fiat-json/src/p224_32.json | 0m09.14s | 243676 ko || +0m00.24s || -7688 ko | +2.62% | -3.15% 0m09.29s | 195668 ko | fiat-json/src/p384_64.json | 0m09.24s | 173592 ko || +0m00.04s || 22076 ko | +0.54% | +12.71% 0m09.26s | 245908 ko | fiat-java/src/FiatP224.java | 0m09.02s | 210104 ko || +0m00.24s || 35804 ko | +2.66% | +17.04% 0m09.25s | 170924 ko | fiat-go/64/p384/p384.go | 0m09.35s | 160844 ko || -0m00.09s || 10080 ko | -1.06% | +6.26% 0m09.20s | 1040012 ko | PushButtonSynthesis/BaseConversion.vo | 0m09.41s | 1037912 ko || -0m00.21s || 2100 ko | -2.23% | +0.20% 0m09.14s | 225000 ko | fiat-go/32/p224/p224.go | 0m09.39s | 230444 ko || -0m00.25s || -5444 ko | -2.66% | -2.36% 0m09.11s | 253348 ko | fiat-rust/src/p224_32.rs | 0m09.20s | 245628 ko || -0m00.08s || 7720 ko | -0.97% | +3.14% 0m09.11s | 166552 ko | fiat-zig/src/p384_64.zig | 0m09.31s | 141172 ko || -0m00.20s || 25380 ko | -2.14% | +17.97% 0m09.10s | 167020 ko | fiat-c/src/p384_64.c | 0m09.28s | 146704 ko || -0m00.17s || 20316 ko | -1.93% | +13.84% 0m09.09s | 254100 ko | fiat-zig/src/p224_32.zig | 0m08.87s | 222884 ko || +0m00.22s || 31216 ko | +2.48% | +14.00% 0m08.96s | 232884 ko | fiat-c/src/p224_32.c | 0m08.97s | 240356 ko || -0m00.00s || -7472 ko | -0.11% | -3.10% 0m08.73s | 147896 ko | fiat-rust/src/p384_64.rs | 0m09.22s | 165796 ko || -0m00.49s || -17900 ko | -5.31% | -10.79% 0m08.26s | 1009244 ko | PushButtonSynthesis/SmallExamples.vo | 0m08.45s | 1008344 ko || -0m00.18s || 900 ko | -2.24% | +0.08% 0m08.26s | 119472 ko | fiat-json/src/p448_solinas_32.json | 0m08.29s | 123884 ko || -0m00.02s || -4412 ko | -0.36% | -3.56% 0m08.16s | 1050960 ko | PushButtonSynthesis/Primitives.vo | 0m08.27s | 1050876 ko || -0m00.10s || 84 ko | -1.33% | +0.00% 0m07.93s | 591100 ko | Rewriter/Passes/RelaxBitwidthAdcSbb.vo | 0m08.19s | 591176 ko || -0m00.25s || -76 ko | -3.17% | -0.01% 0m07.91s | 61592 ko | fiat-zig/src/p448_solinas_32.zig | 0m07.94s | 61704 ko || -0m00.03s || -112 ko | -0.37% | -0.18% 0m07.89s | 59392 ko | fiat-c/src/p448_solinas_32.c | 0m07.94s | 56764 ko || -0m00.05s || 2628 ko | -0.62% | +4.62% 0m07.88s | 61076 ko | fiat-rust/src/p448_solinas_32.rs | 0m08.00s | 57600 ko || -0m00.12s || 3476 ko | -1.50% | +6.03% 0m07.12s | 1043600 ko | PushButtonSynthesis/SolinasReduction.vo | 0m07.38s | 1043572 ko || -0m00.25s || 28 ko | -3.52% | +0.00% 0m06.64s | 52476 ko | fiat-go/64/p521/p521.go | 0m06.25s | 49644 ko || +0m00.38s || 2832 ko | +6.23% | +5.70% 0m06.27s | 574792 ko | Rewriter/Passes/NoSelect.vo | 0m06.41s | 577812 ko || -0m00.14s || -3020 ko | -2.18% | -0.52% 0m06.26s | 1048224 ko | PushButtonSynthesis/BarrettReduction.vo | 0m06.20s | 1051084 ko || +0m00.05s || -2860 ko | +0.96% | -0.27% 0m06.22s | 1132216 ko | CLI.vo | 0m06.30s | 1130060 ko || -0m00.08s || 2156 ko | -1.26% | +0.19% 0m05.96s | 1144288 ko | Bedrock/Field/Synthesis/New/UnsaturatedSolinas.vo | 0m06.15s | 1142040 ko || -0m00.19s || 2248 ko | -3.08% | +0.19% 0m05.54s | 68872 ko | fiat-bedrock2/src/p521_64.c | 0m05.56s | 68208 ko || -0m00.01s || 664 ko | -0.35% | +0.97% 0m05.42s | 51340 ko | fiat-json/src/p521_64.json | 0m05.43s | 51520 ko || -0m00.00s || -180 ko | -0.18% | -0.34% 0m05.30s | 37436 ko | fiat-zig/src/p521_64.zig | 0m04.77s | 37212 ko || +0m00.53s || 224 ko | +11.11% | +0.60% 0m04.82s | 37880 ko | fiat-rust/src/p521_64.rs | 0m05.45s | 38100 ko || -0m00.62s || -220 ko | -11.55% | -0.57% 0m04.76s | 37380 ko | fiat-c/src/p521_64.c | 0m05.37s | 37352 ko || -0m00.61s || 28 ko | -11.35% | +0.07% 0m04.66s | 1038068 ko | PushButtonSynthesis/DettmanMultiplication.vo | 0m04.63s | 1038160 ko || +0m00.03s || -92 ko | +0.64% | -0.00% 0m04.51s | 1074152 ko | Bedrock/Field/Translation/Proofs/ValidComputable/Cmd.vo | 0m04.59s | 1074372 ko || -0m00.08s || -220 ko | -1.74% | -0.02% 0m04.24s | 1047736 ko | PushButtonSynthesis/SaturatedSolinas.vo | 0m04.41s | 1047768 ko || -0m00.16s || -32 ko | -3.85% | -0.00% 0m04.01s | 1501044 ko | Bedrock/Everything.vo | 0m04.01s | 1501100 ko || +0m00.00s || -56 ko | +0.00% | -0.00% 0m03.81s | 1051824 ko | PushButtonSynthesis/FancyMontgomeryReduction.vo | 0m03.77s | 1050712 ko || +0m00.04s || 1112 ko | +1.06% | +0.10% 0m03.50s | 1367412 ko | Everything.vo | 0m03.59s | 1367556 ko || -0m00.08s || -144 ko | -2.50% | -0.01% 0m03.06s | 537952 ko | Rewriter/Passes/ArithWithRelaxedCasts.vo | 0m03.15s | 539144 ko || -0m00.08s || -1192 ko | -2.85% | -0.22% 0m02.98s | 1013864 ko | Bedrock/Field/Translation/Cmd.vo | 0m02.98s | 1014664 ko || +0m00.00s || -800 ko | +0.00% | -0.07% 0m02.96s | 1083180 ko | Rewriter/PerfTesting/Core.vo | 0m03.04s | 1083012 ko || -0m00.08s || 168 ko | -2.63% | +0.01% 0m02.94s | 70004 ko | fiat-go/64/secp256k1montgomeryscalar/secp256k1montgomeryscalar.go | 0m02.80s | 69640 ko || +0m00.14s || 364 ko | +5.00% | +0.52% 0m02.93s | 69652 ko | fiat-go/64/p256scalar/p256scalar.go | 0m02.77s | 69300 ko || +0m00.16s || 352 ko | +5.77% | +0.50% 0m02.92s | 539268 ko | Rewriter/Passes/AddAssocLeft.vo | 0m02.99s | 537676 ko || -0m00.07s || 1592 ko | -2.34% | +0.29% 0m02.90s | 1126644 ko | StandaloneHaskellMain.vo | 0m02.85s | 1124644 ko || +0m00.04s || 2000 ko | +1.75% | +0.17% 0m02.86s | 1355272 ko | PerfTesting/PerfTestPrint.vo | 0m02.97s | 1353376 ko || -0m00.11s || 1896 ko | -3.70% | +0.14% 0m02.83s | 74888 ko | fiat-json/src/p256_scalar_64.json | 0m02.73s | 69468 ko || +0m00.10s || 5420 ko | +3.66% | +7.80% 0m02.79s | 84092 ko | fiat-bedrock2/src/p256_scalar_64.c | 0m02.79s | 86516 ko || +0m00.00s || -2424 ko | +0.00% | -2.80% 0m02.76s | 87368 ko | fiat-bedrock2/src/secp256k1_montgomery_scalar_64.c | 0m02.77s | 86936 ko || -0m00.01s || 432 ko | -0.36% | +0.49% 0m02.76s | 57416 ko | fiat-go/64/p448solinas/p448solinas.go | 0m02.58s | 51820 ko || +0m00.17s || 5596 ko | +6.97% | +10.79% 0m02.76s | 73888 ko | fiat-json/src/secp256k1_montgomery_scalar_64.json | 0m02.73s | 75908 ko || +0m00.02s || -2020 ko | +1.09% | -2.66% 0m02.74s | 1077636 ko | Bedrock/Field/Stringification/Stringification.vo | 0m02.78s | 1076572 ko || -0m00.03s || 1064 ko | -1.43% | +0.09% 0m02.73s | 1010148 ko | Bedrock/Field/Translation/Func.vo | 0m02.82s | 1008988 ko || -0m00.08s || 1160 ko | -3.19% | +0.11% 0m02.72s | 64580 ko | fiat-zig/src/p256_scalar_64.zig | 0m02.71s | 62528 ko || +0m00.01s || 2052 ko | +0.36% | +3.28% 0m02.69s | 63552 ko | fiat-go/64/secp256k1montgomery/secp256k1montgomery.go | 0m02.51s | 67572 ko || +0m00.18s || -4020 ko | +7.17% | -5.94% 0m02.69s | 61992 ko | fiat-rust/src/p256_scalar_64.rs | 0m02.75s | 66124 ko || -0m00.06s || -4132 ko | -2.18% | -6.24% 0m02.69s | 63084 ko | fiat-rust/src/secp256k1_montgomery_scalar_64.rs | 0m02.71s | 66576 ko || -0m00.02s || -3492 ko | -0.73% | -5.24% 0m02.68s | 59288 ko | fiat-c/src/p256_scalar_64.c | 0m02.70s | 62336 ko || -0m00.02s || -3048 ko | -0.74% | -4.88% 0m02.67s | 1068128 ko | Bedrock/Field/Translation/Proofs/ValidComputable/Func.vo | 0m02.80s | 1068044 ko || -0m00.12s || 84 ko | -4.64% | +0.00% 0m02.67s | 68464 ko | fiat-c/src/secp256k1_montgomery_scalar_64.c | 0m02.70s | 61160 ko || -0m00.03s || 7304 ko | -1.11% | +11.94% 0m02.66s | 1153388 ko | Bedrock/Standalone/StandaloneHaskellMain.vo | 0m02.71s | 1151268 ko || -0m00.04s || 2120 ko | -1.84% | +0.18% 0m02.66s | 64136 ko | fiat-zig/src/secp256k1_montgomery_scalar_64.zig | 0m02.65s | 62200 ko || +0m00.01s || 1936 ko | +0.37% | +3.11% 0m02.65s | 1103644 ko | StandaloneOCamlMain.vo | 0m02.61s | 1103620 ko || +0m00.04s || 24 ko | +1.53% | +0.00% 0m02.64s | 1151352 ko | Bedrock/Standalone/StandaloneOCamlMain.vo | 0m02.71s | 1151372 ko || -0m00.06s || -20 ko | -2.58% | -0.00% 0m02.57s | 535856 ko | Rewriter/Passes/FlattenThunkedRects.vo | 0m02.66s | 535192 ko || -0m00.09s || 664 ko | -3.38% | +0.12% 0m02.52s | 84488 ko | fiat-bedrock2/src/secp256k1_montgomery_64.c | 0m02.47s | 93372 ko || +0m00.04s || -8884 ko | +2.02% | -9.51% 0m02.52s | 68592 ko | fiat-json/src/secp256k1_montgomery_64.json | 0m02.46s | 75364 ko || +0m00.06s || -6772 ko | +2.43% | -8.98% 0m02.49s | 1073080 ko | Bedrock/Field/Synthesis/New/ComputedOp.vo | 0m02.66s | 1071116 ko || -0m00.16s || 1964 ko | -6.39% | +0.18% 0m02.48s | 1137168 ko | Rewriter/PerfTesting/StandaloneOCamlMain.vo | 0m02.76s | 1135252 ko || -0m00.27s || 1916 ko | -10.14% | +0.16% 0m02.46s | 63516 ko | fiat-go/64/curve25519scalar/curve25519scalar.go | 0m02.31s | 70228 ko || +0m00.14s || -6712 ko | +6.49% | -9.55% 0m02.42s | 1051400 ko | Bedrock/Field/Translation/Parameters/Defaults32.vo | 0m02.46s | 1051612 ko || -0m00.04s || -212 ko | -1.62% | -0.02% 0m02.42s | 60544 ko | fiat-rust/src/secp256k1_montgomery_64.rs | 0m02.42s | 60264 ko || +0m00.00s || 280 ko | +0.00% | +0.46% 0m02.42s | 65732 ko | fiat-zig/src/secp256k1_montgomery_64.zig | 0m02.40s | 57992 ko || +0m00.02s || 7740 ko | +0.83% | +13.34% 0m02.41s | 60148 ko | fiat-c/src/secp256k1_montgomery_64.c | 0m02.44s | 60532 ko || -0m00.02s || -384 ko | -1.22% | -0.63% 0m02.37s | 1051572 ko | Bedrock/Field/Translation/Parameters/Defaults64.vo | 0m02.46s | 1051524 ko || -0m00.08s || 48 ko | -3.65% | +0.00% 0m02.35s | 1050808 ko | Bedrock/Field/Translation/Parameters/FE310.vo | 0m02.42s | 1051668 ko || -0m00.06s || -860 ko | -2.89% | -0.08% 0m02.35s | 78788 ko | fiat-bedrock2/src/curve25519_scalar_64.c | 0m02.35s | 77892 ko || +0m00.00s || 896 ko | +0.00% | +1.15% 0m02.34s | 1047512 ko | Bedrock/Field/Translation/Parameters/Defaults.vo | 0m02.33s | 1047596 ko || +0m00.00s || -84 ko | +0.42% | -0.00% 0m02.31s | 69108 ko | fiat-json/src/curve25519_scalar_64.json | 0m02.30s | 69200 ko || +0m00.01s || -92 ko | +0.43% | -0.13% 0m02.28s | 60412 ko | fiat-rust/src/curve25519_scalar_64.rs | 0m02.31s | 64076 ko || -0m00.03s || -3664 ko | -1.29% | -5.71% 0m02.25s | 67320 ko | fiat-c/src/curve25519_scalar_64.c | 0m02.29s | 59928 ko || -0m00.04s || 7392 ko | -1.74% | +12.33% 0m02.25s | 57700 ko | fiat-zig/src/curve25519_scalar_64.zig | 0m02.25s | 63136 ko || +0m00.00s || -5436 ko | +0.00% | -8.60% 0m02.17s | 541552 ko | Rewriter/Passes/UnfoldValueBarrier.vo | 0m02.27s | 541600 ko || -0m00.10s || -48 ko | -4.40% | -0.00% 0m02.10s | 540980 ko | Rewriter/Passes/StripLiteralCasts.vo | 0m02.20s | 539800 ko || -0m00.10s || 1180 ko | -4.54% | +0.21% 0m02.10s | 63292 ko | fiat-go/64/p224/p224.go | 0m01.86s | 61856 ko || +0m00.24s || 1436 ko | +12.90% | +2.32% 0m02.08s | 38528 ko | fiat-go/32/curve25519/curve25519.go | 0m02.07s | 36104 ko || +0m00.01s || 2424 ko | +0.48% | +6.71% 0m02.07s | 68844 ko | fiat-bedrock2/src/p448_solinas_64.c | 0m02.13s | 66964 ko || -0m00.06s || 1880 ko | -2.81% | +2.80% 0m02.05s | 63476 ko | fiat-go/64/p256/p256.go | 0m01.84s | 62612 ko || +0m00.20s || 864 ko | +11.41% | +1.37% 0m02.02s | 69516 ko | fiat-bedrock2/src/curve25519_32.c | 0m01.99s | 64620 ko || +0m00.03s || 4896 ko | +1.50% | +7.57% 0m01.97s | 536652 ko | Rewriter/Passes/ToFancy.vo | 0m02.01s | 537484 ko || -0m00.03s || -832 ko | -1.99% | -0.15% 0m01.96s | 52072 ko | fiat-json/src/p448_solinas_64.json | 0m01.92s | 49556 ko || +0m00.04s || 2516 ko | +2.08% | +5.07% 0m01.91s | 78628 ko | fiat-bedrock2/src/p224_64.c | 0m01.91s | 79832 ko || +0m00.00s || -1204 ko | +0.00% | -1.50% 0m01.90s | 35620 ko | fiat-c/src/p448_solinas_64.c | 0m01.93s | 35532 ko || -0m00.03s || 88 ko | -1.55% | +0.24% 0m01.90s | 35992 ko | fiat-rust/src/p448_solinas_64.rs | 0m01.93s | 37888 ko || -0m00.03s || -1896 ko | -1.55% | -5.00% 0m01.90s | 36340 ko | fiat-zig/src/p448_solinas_64.zig | 0m01.90s | 38132 ko || +0m00.00s || -1792 ko | +0.00% | -4.69% 0m01.89s | 68480 ko | fiat-json/src/p224_64.json | 0m01.93s | 76344 ko || -0m00.04s || -7864 ko | -2.07% | -10.30% 0m01.85s | 79464 ko | fiat-bedrock2/src/p256_64.c | 0m01.85s | 80384 ko || +0m00.00s || -920 ko | +0.00% | -1.14% 0m01.84s | 69732 ko | fiat-json/src/p256_64.json | 0m01.85s | 68332 ko || -0m00.01s || 1400 ko | -0.54% | +2.04% 0m01.84s | 60888 ko | fiat-zig/src/p224_64.zig | 0m01.87s | 60200 ko || -0m00.03s || 688 ko | -1.60% | +1.14% 0m01.83s | 51832 ko | fiat-json/src/curve25519_32.json | 0m01.91s | 54384 ko || -0m00.07s || -2552 ko | -4.18% | -4.69% 0m01.82s | 57456 ko | fiat-zig/src/p256_64.zig | 0m01.79s | 57520 ko || +0m00.03s || -64 ko | +1.67% | -0.11% 0m01.81s | 60544 ko | fiat-rust/src/p224_64.rs | 0m01.87s | 61580 ko || -0m00.06s || -1036 ko | -3.20% | -1.68% 0m01.77s | 58112 ko | fiat-c/src/p224_64.c | 0m01.78s | 61864 ko || -0m00.01s || -3752 ko | -0.56% | -6.06% 0m01.77s | 60016 ko | fiat-rust/src/p256_64.rs | 0m01.78s | 60884 ko || -0m00.01s || -868 ko | -0.56% | -1.42% 0m01.76s | 36740 ko | fiat-java/src/FiatCurve25519.java | 0m01.70s | 35152 ko || +0m00.06s || 1588 ko | +3.52% | +4.51% 0m01.76s | 35116 ko | fiat-rust/src/curve25519_32.rs | 0m01.76s | 34160 ko || +0m00.00s || 956 ko | +0.00% | +2.79% 0m01.75s | 35380 ko | fiat-zig/src/curve25519_32.zig | 0m01.75s | 35084 ko || +0m00.00s || 296 ko | +0.00% | +0.84% 0m01.74s | 35840 ko | fiat-c/src/curve25519_32.c | 0m01.76s | 34260 ko || -0m00.02s || 1580 ko | -1.13% | +4.61% 0m01.74s | 65196 ko | fiat-c/src/p256_64.c | 0m01.76s | 62724 ko || -0m00.02s || 2472 ko | -1.13% | +3.94% 0m01.45s | 596340 ko | CompilersTestCases.vo | 0m01.51s | 596224 ko || -0m00.06s || 116 ko | -3.97% | +0.01% 0m01.44s | 53596 ko | fiat-bedrock2/src/secp256k1_dettman_32.c | 0m01.45s | 51196 ko || -0m00.01s || 2400 ko | -0.68% | +4.68% 0m01.28s | 42572 ko | fiat-json/src/secp256k1_dettman_32.json | 0m01.30s | 43796 ko || -0m00.02s || -1224 ko | -1.53% | -2.79% 0m01.22s | 25936 ko | fiat-c/src/secp256k1_dettman_32.c | 0m01.23s | 26436 ko || -0m00.01s || -500 ko | -0.81% | -1.89% 0m01.22s | 26988 ko | fiat-go/32/secp256k1dettman/secp256k1dettman.go | 0m01.26s | 26796 ko || -0m00.04s || 192 ko | -3.17% | +0.71% 0m01.22s | 27128 ko | fiat-java/src/FiatSecp256K1Dettman.java | 0m01.21s | 27648 ko || +0m00.01s || -520 ko | +0.82% | -1.88% 0m01.22s | 26456 ko | fiat-rust/src/secp256k1_dettman_32.rs | 0m01.24s | 26404 ko || -0m00.02s || 52 ko | -1.61% | +0.19% 0m01.20s | 26264 ko | fiat-zig/src/secp256k1_dettman_32.zig | 0m01.21s | 26620 ko || -0m00.01s || -356 ko | -0.82% | -1.33% 0m00.72s | 33336 ko | fiat-go/64/curve25519/curve25519.go | 0m00.62s | 33132 ko || +0m00.09s || 204 ko | +16.12% | +0.61% 0m00.63s | 438660 ko | Rewriter/Rules.vo | 0m00.63s | 436796 ko || +0m00.00s || 1864 ko | +0.00% | +0.42% 0m00.58s | 552492 ko | Rewriter/All.vo | 0m00.60s | 552492 ko || -0m00.02s || 0 ko | -3.33% | +0.00% 0m00.54s | 123656 ko | ExtractionOCaml/with_bedrock2_saturated_solinas.cmi | 0m00.54s | 122456 ko || +0m00.00s || 1200 ko | +0.00% | +0.97% 0m00.54s | 123868 ko | ExtractionOCaml/with_bedrock2_solinas_reduction.cmi | 0m00.55s | 122976 ko || -0m00.01s || 892 ko | -1.81% | +0.72% 0m00.54s | 120496 ko | ExtractionOCaml/with_bedrock2_word_by_word_montgomery.cmi | 0m00.56s | 122432 ko || -0m00.02s || -1936 ko | -3.57% | -1.58% 0m00.53s | 120220 ko | ExtractionOCaml/bedrock2_solinas_reduction.cmi | 0m00.54s | 120352 ko || -0m00.01s || -132 ko | -1.85% | -0.10% 0m00.53s | 122856 ko | ExtractionOCaml/unsaturated_solinas.cmi | 0m00.52s | 121012 ko || +0m00.01s || 1844 ko | +1.92% | +1.52% 0m00.53s | 122964 ko | ExtractionOCaml/with_bedrock2_unsaturated_solinas.cmi | 0m00.56s | 123648 ko || -0m00.03s || -684 ko | -5.35% | -0.55% 0m00.53s | 39636 ko | fiat-bedrock2/src/curve25519_64.c | 0m00.50s | 38928 ko || +0m00.03s || 708 ko | +6.00% | +1.81% 0m00.52s | 123624 ko | ExtractionOCaml/bedrock2_base_conversion.cmi | 0m00.53s | 123936 ko || -0m00.01s || -312 ko | -1.88% | -0.25% 0m00.52s | 120356 ko | ExtractionOCaml/dettman_multiplication.cmi | 0m00.50s | 120344 ko || +0m00.02s || 12 ko | +4.00% | +0.00% 0m00.52s | 123888 ko | ExtractionOCaml/with_bedrock2_base_conversion.cmi | 0m00.52s | 123416 ko || +0m00.00s || 472 ko | +0.00% | +0.38% 0m00.52s | 121844 ko | ExtractionOCaml/with_bedrock2_dettman_multiplication.cmi | 0m00.52s | 121848 ko || +0m00.00s || -4 ko | +0.00% | -0.00% 0m00.51s | 122700 ko | ExtractionOCaml/bedrock2_unsaturated_solinas.cmi | 0m00.53s | 123096 ko || -0m00.02s || -396 ko | -3.77% | -0.32% 0m00.50s | 120684 ko | ExtractionOCaml/base_conversion.cmi | 0m00.50s | 122432 ko || +0m00.00s || -1748 ko | +0.00% | -1.42% 0m00.50s | 120748 ko | ExtractionOCaml/bedrock2_word_by_word_montgomery.cmi | 0m00.57s | 120620 ko || -0m00.06s || 128 ko | -12.28% | +0.10% 0m00.50s | 120344 ko | ExtractionOCaml/saturated_solinas.cmi | 0m00.51s | 120300 ko || -0m00.01s || 44 ko | -1.96% | +0.03% 0m00.50s | 28344 ko | fiat-zig/src/curve25519_64.zig | 0m00.46s | 28560 ko || +0m00.03s || -216 ko | +8.69% | -0.75% 0m00.49s | 123236 ko | ExtractionOCaml/bedrock2_dettman_multiplication.cmi | 0m00.53s | 122576 ko || -0m00.04s || 660 ko | -7.54% | +0.53% 0m00.49s | 120500 ko | ExtractionOCaml/word_by_word_montgomery.cmi | 0m00.48s | 120356 ko || +0m00.01s || 144 ko | +2.08% | +0.11% 0m00.49s | 35980 ko | fiat-json/src/curve25519_64.json | 0m00.52s | 34660 ko || -0m00.03s || 1320 ko | -5.76% | +3.80% 0m00.49s | 28488 ko | fiat-rust/src/curve25519_64.rs | 0m00.47s | 27384 ko || +0m00.02s || 1104 ko | +4.25% | +4.03% 0m00.48s | 121720 ko | ExtractionOCaml/bedrock2_saturated_solinas.cmi | 0m00.52s | 122768 ko || -0m00.04s || -1048 ko | -7.69% | -0.85% 0m00.47s | 119616 ko | ExtractionOCaml/solinas_reduction.cmi | 0m00.49s | 120324 ko || -0m00.02s || -708 ko | -4.08% | -0.58% 0m00.47s | 28124 ko | fiat-c/src/curve25519_64.c | 0m00.45s | 28304 ko || +0m00.01s || -180 ko | +4.44% | -0.63% 0m00.44s | 37236 ko | fiat-go/64/curve25519solinas/curve25519solinas.go | 0m00.40s | 37736 ko || +0m00.03s || -500 ko | +9.99% | -1.32% 0m00.43s | 38744 ko | fiat-json/src/curve25519_solinas_64.json | 0m00.43s | 40512 ko || +0m00.00s || -1768 ko | +0.00% | -4.36% 0m00.43s | 38224 ko | fiat-rust/src/curve25519_solinas_64.rs | 0m00.41s | 37192 ko || +0m00.02s || 1032 ko | +4.87% | +2.77% 0m00.42s | 45732 ko | fiat-bedrock2/src/curve25519_solinas_64.c | 0m00.40s | 42468 ko || +0m00.01s || 3264 ko | +4.99% | +7.68% 0m00.42s | 37052 ko | fiat-zig/src/curve25519_solinas_64.zig | 0m00.41s | 36628 ko || +0m00.01s || 424 ko | +2.43% | +1.15% 0m00.38s | 37156 ko | fiat-c/src/curve25519_solinas_64.c | 0m00.42s | 37160 ko || -0m00.03s || -4 ko | -9.52% | -0.01% 0m00.29s | 26484 ko | fiat-go/32/poly1305/poly1305.go | 0m00.28s | 26668 ko || +0m00.00s || -184 ko | +3.57% | -0.68% 0m00.26s | 33824 ko | fiat-bedrock2/src/poly1305_32.c | 0m00.26s | 33836 ko || +0m00.00s || -12 ko | +0.00% | -0.03% 0m00.24s | 26896 ko | fiat-go/64/secp256k1dettman/secp256k1dettman.go | 0m00.22s | 26224 ko || +0m00.01s || 672 ko | +9.09% | +2.56% 0m00.24s | 26316 ko | fiat-java/src/FiatPoly1305.java | 0m00.22s | 25696 ko || +0m00.01s || 620 ko | +9.09% | +2.41% 0m00.24s | 31548 ko | fiat-json/src/poly1305_32.json | 0m00.24s | 31200 ko || +0m00.00s || 348 ko | +0.00% | +1.11% 0m00.23s | 26104 ko | fiat-c/src/poly1305_32.c | 0m00.21s | 25912 ko || +0m00.02s || 192 ko | +9.52% | +0.74% 0m00.23s | 27116 ko | fiat-go/64/poly1305/poly1305.go | 0m00.17s | 27576 ko || +0m00.06s || -460 ko | +35.29% | -1.66% 0m00.23s | 26228 ko | fiat-rust/src/poly1305_32.rs | 0m00.22s | 26228 ko || +0m00.01s || 0 ko | +4.54% | +0.00% 0m00.22s | 31180 ko | fiat-bedrock2/src/secp256k1_dettman_64.c | 0m00.23s | 30968 ko || -0m00.01s || 212 ko | -4.34% | +0.68% 0m00.21s | 25520 ko | fiat-zig/src/poly1305_32.zig | 0m00.21s | 25420 ko || +0m00.00s || 100 ko | +0.00% | +0.39% 0m00.20s | 25196 ko | fiat-json/src/secp256k1_dettman_64.json | 0m00.19s | 24872 ko || +0m00.01s || 324 ko | +5.26% | +1.30% 0m00.20s | 22184 ko | fiat-zig/src/secp256k1_dettman_64.zig | 0m00.18s | 21864 ko || +0m00.02s || 320 ko | +11.11% | +1.46% 0m00.18s | 21800 ko | fiat-c/src/secp256k1_dettman_64.c | 0m00.18s | 21800 ko || +0m00.00s || 0 ko | +0.00% | +0.00% 0m00.18s | 22084 ko | fiat-rust/src/secp256k1_dettman_64.rs | 0m00.18s | 22376 ko || +0m00.00s || -292 ko | +0.00% | -1.30% 0m00.17s | 61932 ko | ExtractionOCaml/perf_unsaturated_solinas.cmi | 0m00.19s | 62248 ko || -0m00.01s || -316 ko | -10.52% | -0.50% 0m00.16s | 62528 ko | ExtractionOCaml/perf_word_by_word_montgomery.cmi | 0m00.16s | 61452 ko || +0m00.00s || 1076 ko | +0.00% | +1.75% 0m00.15s | 28964 ko | fiat-json/src/poly1305_64.json | 0m00.14s | 27736 ko || +0m00.00s || 1228 ko | +7.14% | +4.42% 0m00.13s | 25196 ko | fiat-rust/src/poly1305_64.rs | 0m00.12s | 24336 ko || +0m00.01s || 860 ko | +8.33% | +3.53% 0m00.12s | 29576 ko | fiat-bedrock2/src/poly1305_64.c | 0m00.12s | 29648 ko || +0m00.00s || -72 ko | +0.00% | -0.24% 0m00.12s | 24992 ko | fiat-c/src/poly1305_64.c | 0m00.12s | 24612 ko || +0m00.00s || 380 ko | +0.00% | +1.54% 0m00.12s | 24928 ko | fiat-zig/src/poly1305_64.zig | 0m00.13s | 24612 ko || -0m00.01s || 316 ko | -7.69% | +1.28% ``` </p> </details>
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) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 125m19.92s | 4337192 ko | Total Time / Peak Mem | 121m02.11s | 3709900 ko || +4m17.81s || 627292 ko | +3.55% | +16.90% -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 9m42.13s | 4337192 ko | Rewriter/Passes/NBE.vo | 2m34.04s | 3317136 ko || +7m08.09s || 1020056 ko | +277.90% | +30.75% 5m28.68s | 3201708 ko | Bedrock/Field/Synthesis/Examples/p224_64_new.vo | 0m18.21s | 1196664 ko || +5m10.47s || 2005044 ko | +1704.94% | +167.55% N/A | N/A | fiat-bedrock2/src/p384_scalar_32.c | 1m56.31s | 2430492 ko || -1m56.31s || -2430492 ko | -100.00% | -100.00% N/A | N/A | fiat-bedrock2/src/p384_32.c | 1m50.66s | 2217956 ko || -1m50.65s || -2217956 ko | -100.00% | -100.00% N/A | N/A | ExtractionOCaml/with_bedrock2_word_by_word_montgomery | 0m44.11s | 2631312 ko || -0m44.10s || -2631312 ko | -100.00% | -100.00% N/A | N/A | ExtractionOCaml/dettman_multiplication | 0m36.25s | 1931516 ko || -0m36.25s || -1931516 ko | -100.00% | -100.00% 0m34.06s | 1755172 ko | ExtractionOCaml/perf_word_by_word_montgomery | 0m00.06s | 27632 ko || +0m34.00s || 1727540 ko | +56666.66% | +6251.95% 0m07.87s | 1154620 ko | ExtractionOCaml/bedrock2_dettman_multiplication | 0m38.88s | 2247616 ko || -0m31.01s || -1092996 ko | -79.75% | -48.62% 0m15.09s | 1793900 ko | ExtractionOCaml/solinas_reduction | 0m42.14s | 2682524 ko || -0m27.05s || -888624 ko | -64.19% | -33.12% 0m20.42s | 2272536 ko | ExtractionOCaml/with_bedrock2_unsaturated_solinas | 0m41.77s | 2536016 ko || -0m21.35s || -263480 ko | -51.11% | -10.38% N/A | N/A | fiat-bedrock2/src/p434_64.c | 0m17.54s | 395048 ko || -0m17.53s || -395048 ko | -100.00% | -100.00% N/A | N/A | fiat-bedrock2/src/p256_scalar_32.c | 0m16.44s | 582124 ko || -0m16.44s || -582124 ko | -100.00% | -100.00% N/A | N/A | fiat-bedrock2/src/secp256k1_montgomery_scalar_32.c | 0m16.26s | 549024 ko || -0m16.26s || -549024 ko | -100.00% | -100.00% 0m10.51s | 1436260 ko | ExtractionOCaml/dettman_multiplication.ml | 0m27.45s | 1986292 ko || -0m16.93s || -550032 ko | -61.71% | -27.69% N/A | N/A | fiat-bedrock2/src/secp256k1_montgomery_32.c | 0m15.96s | 545668 ko || -0m15.96s || -545668 ko | -100.00% | -100.00% N/A | N/A | fiat-bedrock2/src/curve25519_scalar_32.c | 0m15.83s | 561700 ko || -0m15.83s || -561700 ko | -100.00% | -100.00% N/A | N/A | fiat-bedrock2/src/p256_32.c | 0m14.52s | 527852 ko || -0m14.51s || -527852 ko | -100.00% | -100.00% N/A | N/A | fiat-bedrock2/src/p384_scalar_64.c | 0m10.63s | 248348 ko || -0m10.63s || -248348 ko | -100.00% | -100.00% N/A | N/A | fiat-bedrock2/src/p384_64.c | 0m08.94s | 247848 ko || -0m08.93s || -247848 ko | -100.00% | -100.00% N/A | N/A | fiat-bedrock2/src/p224_32.c | 0m08.81s | 359800 ko || -0m08.81s || -359800 ko | -100.00% | -100.00% 0m37.47s | 2612000 ko | ExtractionOCaml/bedrock2_word_by_word_montgomery | 0m43.94s | 2632436 ko || -0m06.46s || -20436 ko | -14.72% | -0.77% 3m20.10s | 3453808 ko | Rewriter/Passes/ArithWithCasts.vo | 3m24.42s | 3457324 ko || -0m04.32s || -3516 ko | -2.11% | -0.10% 2m00.29s | 2196836 ko | fiat-go/32/p384/p384.go | 1m56.07s | 2250852 ko || +0m04.22s || -54016 ko | +3.63% | -2.39% 1m53.86s | 2273356 ko | fiat-go/32/p384scalar/p384scalar.go | 1m58.07s | 2317828 ko || -0m04.20s || -44472 ko | -3.56% | -1.91% 0m04.01s | 1409008 ko | Bedrock/Everything.vo | N/A | N/A || +0m04.00s || 1409008 ko | ∞ | ∞ 0m37.42s | 138936 ko | fiat-json/src/p521_32.json | 0m33.89s | 133296 ko || +0m03.53s || 5640 ko | +10.41% | +4.23% 1m52.17s | 2415720 ko | fiat-json/src/p384_32.json | 1m54.90s | 2444672 ko || -0m02.73s || -28952 ko | -2.37% | -1.18% 0m59.21s | 3703536 ko | ExtractionOCaml/with_bedrock2_fiat_crypto | 0m56.68s | 3709508 ko || +0m02.53s || -5972 ko | +4.46% | -0.16% 0m41.38s | 2339900 ko | ExtractionOCaml/unsaturated_solinas | 0m39.29s | 2332668 ko || +0m02.09s || 7232 ko | +5.31% | +0.31% 0m41.08s | 2242080 ko | ExtractionOCaml/with_bedrock2_solinas_reduction | 0m38.77s | 2230172 ko || +0m02.30s || 11908 ko | +5.95% | +0.53% 0m40.80s | 2236980 ko | ExtractionOCaml/with_bedrock2_base_conversion | 0m38.63s | 2225172 ko || +0m02.16s || 11808 ko | +5.61% | +0.53% 0m40.77s | 2241348 ko | ExtractionOCaml/with_bedrock2_dettman_multiplication | 0m38.56s | 2228548 ko || +0m02.21s || 12800 ko | +5.73% | +0.57% 0m37.72s | 2045476 ko | ExtractionOCaml/base_conversion | 0m35.37s | 1885096 ko || +0m02.35s || 160380 ko | +6.64% | +8.50% 0m37.62s | 2056036 ko | ExtractionOCaml/saturated_solinas | 0m35.47s | 1905300 ko || +0m02.14s || 150736 ko | +6.06% | +7.91% N/A | N/A | fiat-bedrock2/src/p256_scalar_64.c | 0m02.70s | 101456 ko || -0m02.70s || -101456 ko | -100.00% | -100.00% N/A | N/A | fiat-bedrock2/src/secp256k1_montgomery_scalar_64.c | 0m02.68s | 99516 ko || -0m02.68s || -99516 ko | -100.00% | -100.00% N/A | N/A | fiat-bedrock2/src/secp256k1_montgomery_64.c | 0m02.32s | 98040 ko || -0m02.31s || -98040 ko | -100.00% | -100.00% N/A | N/A | fiat-bedrock2/src/curve25519_scalar_64.c | 0m02.27s | 93692 ko || -0m02.27s || -93692 ko | -100.00% | -100.00% 8m03.76s | 2662632 ko | Bedrock/End2End/X25519/GarageDoor.vo | 8m02.07s | 2662176 ko || +0m01.68s || 456 ko | +0.35% | +0.01% 1m53.86s | 2320964 ko | fiat-zig/src/p384_scalar_32.zig | 1m55.37s | 2195532 ko || -0m01.51s || 125432 ko | -1.30% | +5.71% 1m52.52s | 2476384 ko | Rewriter/Passes/ToFancyWithCasts.vo | 1m53.68s | 2477588 ko || -0m01.15s || -1204 ko | -1.02% | -0.04% 1m51.55s | 2290772 ko | fiat-c/src/p384_32.c | 1m52.81s | 2324820 ko || -0m01.26s || -34048 ko | -1.11% | -1.46% 0m57.46s | 3704644 ko | ExtractionOCaml/bedrock2_fiat_crypto | 0m55.94s | 3709900 ko || +0m01.52s || -5256 ko | +2.71% | -0.14% 0m54.38s | 2479396 ko | ExtractionJsOfOCaml/fiat_crypto.ml | 0m53.32s | 2488132 ko || +0m01.06s || -8736 ko | +1.98% | -0.35% 0m54.30s | 3722216 ko | ExtractionOCaml/fiat_crypto | 0m52.74s | 3709380 ko || +0m01.55s || 12836 ko | +2.95% | +0.34% 0m45.63s | 2725464 ko | ExtractionOCaml/bedrock2_solinas_reduction | 0m43.64s | 2703368 ko || +0m01.99s || 22096 ko | +4.56% | +0.81% 0m43.43s | 2635148 ko | ExtractionOCaml/word_by_word_montgomery | 0m41.62s | 2621852 ko || +0m01.81s || 13296 ko | +4.34% | +0.50% 0m43.37s | 2543396 ko | ExtractionOCaml/bedrock2_unsaturated_solinas | 0m41.39s | 2537124 ko || +0m01.97s || 6272 ko | +4.78% | +0.24% 0m40.54s | 2242020 ko | ExtractionOCaml/with_bedrock2_saturated_solinas | 0m38.65s | 2229328 ko || +0m01.89s || 12692 ko | +4.89% | +0.56% 0m39.79s | 2234368 ko | ExtractionOCaml/bedrock2_base_conversion | 0m38.26s | 2224780 ko || +0m01.53s || 9588 ko | +3.99% | +0.43% 0m39.08s | 2240544 ko | ExtractionOCaml/bedrock2_saturated_solinas | 0m38.06s | 2229884 ko || +0m01.01s || 10660 ko | +2.67% | +0.47% 0m37.58s | 2252428 ko | ExtractionOCaml/bedrock2_solinas_reduction.ml | 0m36.11s | 2263524 ko || +0m01.46s || -11096 ko | +4.07% | -0.49% 0m33.68s | 1740208 ko | ExtractionOCaml/perf_unsaturated_solinas | 0m31.87s | 1694436 ko || +0m01.80s || 45772 ko | +5.67% | +2.70% 0m33.59s | 2165180 ko | ExtractionOCaml/with_bedrock2_unsaturated_solinas.ml | 0m31.89s | 2166272 ko || +0m01.70s || -1092 ko | +5.33% | -0.05% N/A | N/A | fiat-bedrock2/src/p224_64.c | 0m01.80s | 95640 ko || -0m01.80s || -95640 ko | -100.00% | -100.00% N/A | N/A | fiat-bedrock2/src/p256_64.c | 0m01.78s | 91368 ko || -0m01.78s || -91368 ko | -100.00% | -100.00% N/A | N/A | fiat-bedrock2/src/secp256k1_dettman_32.c | 0m01.39s | 60176 ko || -0m01.38s || -60176 ko | -100.00% | -100.00% N/A | N/A | fiat-json/src/secp256k1_dettman_32.json | 0m01.28s | 48844 ko || -0m01.28s || -48844 ko | -100.00% | -100.00% N/A | N/A | fiat-go/32/secp256k1dettman/secp256k1dettman.go | 0m01.24s | 31380 ko || -0m01.24s || -31380 ko | -100.00% | -100.00% N/A | N/A | fiat-java/src/FiatSecp256K1Dettman.java | 0m01.21s | 33872 ko || -0m01.20s || -33872 ko | -100.00% | -100.00% N/A | N/A | fiat-c/src/secp256k1_dettman_32.c | 0m01.20s | 32624 ko || -0m01.19s || -32624 ko | -100.00% | -100.00% N/A | N/A | fiat-zig/src/secp256k1_dettman_32.zig | 0m01.20s | 31720 ko || -0m01.19s || -31720 ko | -100.00% | -100.00% N/A | N/A | fiat-rust/src/secp256k1_dettman_32.rs | 0m01.17s | 31344 ko || -0m01.16s || -31344 ko | -100.00% | -100.00% 4m37.50s | 2493852 ko | Bedrock/End2End/X25519/EdwardsXYZT.vo | 4m37.35s | 2490572 ko || +0m00.14s || 3280 ko | +0.05% | +0.13% 2m06.13s | 1391752 ko | Bedrock/End2End/X25519/Field25519.vo | 2m06.07s | 1386020 ko || +0m00.06s || 5732 ko | +0.04% | +0.41% 1m55.72s | 2461384 ko | fiat-json/src/p384_scalar_32.json | 1m56.57s | 2162248 ko || -0m00.84s || 299136 ko | -0.72% | +13.83% 1m54.09s | 2328976 ko | fiat-rust/src/p384_scalar_32.rs | 1m54.46s | 2298040 ko || -0m00.37s || 30936 ko | -0.32% | +1.34% 1m53.96s | 2264640 ko | fiat-c/src/p384_scalar_32.c | 1m54.64s | 2315720 ko || -0m00.67s || -51080 ko | -0.59% | -2.20% 1m52.88s | 2307516 ko | fiat-java/src/FiatP384.java | 1m53.85s | 2326772 ko || -0m00.96s || -19256 ko | -0.85% | -0.82% 1m52.26s | 2289988 ko | fiat-rust/src/p384_32.rs | 1m53.15s | 2291956 ko || -0m00.89s || -1968 ko | -0.78% | -0.08% 1m51.99s | 2321356 ko | fiat-zig/src/p384_32.zig | 1m52.56s | 2285520 ko || -0m00.56s || 35836 ko | -0.50% | +1.56% 1m50.27s | 2142016 ko | fiat-java/src/FiatP384Scalar.java | 1m50.35s | 2237492 ko || -0m00.07s || -95476 ko | -0.07% | -4.26% 1m31.28s | 2069580 ko | Fancy/Barrett256.vo | 1m30.31s | 2071284 ko || +0m00.96s || -1704 ko | +1.07% | -0.08% 1m30.61s | 1959592 ko | SlowPrimeSynthesisExamples.vo | 1m30.46s | 1949656 ko || +0m00.14s || 9936 ko | +0.16% | +0.50% 0m56.42s | 2599072 ko | ExtractionJsOfOCaml/with_bedrock2_fiat_crypto.ml | 0m55.43s | 2577872 ko || +0m00.99s || 21200 ko | +1.78% | +0.82% 0m56.24s | 832904 ko | Rewriter/RulesProofs.vo | 0m55.85s | 832184 ko || +0m00.39s || 720 ko | +0.69% | +0.08% 0m56.01s | 2599020 ko | ExtractionJsOfOCaml/bedrock2_fiat_crypto.ml | 0m55.34s | 2577860 ko || +0m00.66s || 21160 ko | +1.21% | +0.82% 0m55.93s | 2591660 ko | ExtractionOCaml/bedrock2_fiat_crypto.ml | 0m55.47s | 2582316 ko || +0m00.46s || 9344 ko | +0.82% | +0.36% 0m55.71s | 2590632 ko | ExtractionOCaml/with_bedrock2_fiat_crypto.ml | 0m56.27s | 2582520 ko || -0m00.56s || 8112 ko | -0.99% | +0.31% 0m54.11s | 2479772 ko | ExtractionOCaml/fiat_crypto.ml | 0m53.40s | 2488208 ko || +0m00.71s || -8436 ko | +1.32% | -0.33% 0m50.54s | 1088688 ko | Rewriter/Passes/MultiRetSplit.vo | 0m51.52s | 1089116 ko || -0m00.98s || -428 ko | -1.90% | -0.03% 0m46.64s | 1839612 ko | Fancy/Montgomery256.vo | 0m45.84s | 1884076 ko || +0m00.79s || -44464 ko | +1.74% | -2.35% 0m40.72s | 1474472 ko | Rewriter/Passes/Arith.vo | 0m41.24s | 1474564 ko || -0m00.52s || -92 ko | -1.26% | -0.00% 0m40.26s | 89412 ko | fiat-go/32/p521/p521.go | 0m40.48s | 89996 ko || -0m00.21s || -584 ko | -0.54% | -0.64% 0m38.32s | 192600 ko | fiat-bedrock2/src/p521_32.c | 0m38.14s | 191552 ko || +0m00.17s || 1048 ko | +0.47% | +0.54% 0m37.43s | 81368 ko | fiat-rust/src/p521_32.rs | 0m37.40s | 82428 ko || +0m00.03s || -1060 ko | +0.08% | -1.28% 0m37.26s | 82392 ko | fiat-c/src/p521_32.c | 0m37.43s | 79576 ko || -0m00.17s || 2816 ko | -0.45% | +3.53% 0m37.21s | 85776 ko | fiat-java/src/FiatP521.java | 0m37.36s | 83200 ko || -0m00.14s || 2576 ko | -0.40% | +3.09% 0m37.16s | 79880 ko | fiat-zig/src/p521_32.zig | 0m37.01s | 84328 ko || +0m00.14s || -4448 ko | +0.40% | -5.27% 0m37.01s | 2254764 ko | ExtractionOCaml/bedrock2_word_by_word_montgomery.ml | 0m36.23s | 2209256 ko || +0m00.78s || 45508 ko | +2.15% | +2.05% 0m36.11s | 2223820 ko | ExtractionOCaml/with_bedrock2_word_by_word_montgomery.ml | 0m36.20s | 2208892 ko || -0m00.09s || 14928 ko | -0.24% | +0.67% 0m35.73s | 2174540 ko | ExtractionOCaml/solinas_reduction.ml | 0m35.09s | 2145800 ko || +0m00.63s || 28740 ko | +1.82% | +1.33% 0m34.62s | 2145512 ko | ExtractionOCaml/word_by_word_montgomery.ml | 0m34.01s | 2117132 ko || +0m00.60s || 28380 ko | +1.79% | +1.34% 0m33.86s | 2166000 ko | ExtractionOCaml/bedrock2_unsaturated_solinas.ml | 0m33.09s | 2165020 ko || +0m00.76s || 980 ko | +2.32% | +0.04% 0m32.98s | 898452 ko | Rewriter/Passes/MulSplit.vo | 0m33.54s | 897384 ko || -0m00.56s || 1068 ko | -1.66% | +0.11% 0m32.19s | 1222428 ko | Bedrock/End2End/X25519/MontgomeryLadder.vo | 0m32.14s | 1220432 ko || +0m00.04s || 1996 ko | +0.15% | +0.16% 0m31.72s | 2092236 ko | ExtractionOCaml/unsaturated_solinas.ml | 0m31.03s | 2033016 ko || +0m00.68s || 59220 ko | +2.22% | +2.91% 0m31.24s | 1258424 ko | Bedrock/End2End/X25519/GarageDoorTop.vo | 0m30.97s | 1256816 ko || +0m00.26s || 1608 ko | +0.87% | +0.12% 0m30.23s | 2082056 ko | ExtractionOCaml/bedrock2_dettman_multiplication.ml | 0m29.49s | 2034984 ko || +0m00.74s || 47072 ko | +2.50% | +2.31% 0m29.54s | 2075228 ko | ExtractionOCaml/bedrock2_base_conversion.ml | 0m28.81s | 2027284 ko || +0m00.73s || 47944 ko | +2.53% | +2.36% 0m29.52s | 1481224 ko | StandaloneDebuggingExamples.vo | 0m29.94s | 1478968 ko || -0m00.42s || 2256 ko | -1.40% | +0.15% 0m29.38s | 2075096 ko | ExtractionOCaml/with_bedrock2_base_conversion.ml | 0m28.64s | 2027796 ko || +0m00.73s || 47300 ko | +2.58% | +2.33% 0m29.34s | 2069888 ko | ExtractionOCaml/with_bedrock2_saturated_solinas.ml | 0m28.56s | 2048480 ko || +0m00.78s || 21408 ko | +2.73% | +1.04% 0m29.30s | 2070080 ko | ExtractionOCaml/with_bedrock2_solinas_reduction.ml | 0m28.82s | 2047128 ko || +0m00.48s || 22952 ko | +1.66% | +1.12% 0m29.28s | 2054288 ko | ExtractionOCaml/with_bedrock2_dettman_multiplication.ml | 0m28.58s | 2047664 ko || +0m00.70s || 6624 ko | +2.44% | +0.32% 0m29.16s | 2070516 ko | ExtractionOCaml/bedrock2_saturated_solinas.ml | 0m28.51s | 2048116 ko || +0m00.64s || 22400 ko | +2.27% | +1.09% 0m27.55s | 1945716 ko | ExtractionOCaml/saturated_solinas.ml | 0m26.65s | 1912104 ko || +0m00.90s || 33612 ko | +3.37% | +1.75% 0m27.26s | 1954792 ko | ExtractionOCaml/base_conversion.ml | 0m26.63s | 1938284 ko || +0m00.63s || 16508 ko | +2.36% | +0.85% 0m25.05s | 1299504 ko | PerfTesting/PerfTestSearch.vo | 0m24.95s | 1301992 ko || +0m00.10s || -2488 ko | +0.40% | -0.19% 0m21.44s | 1907920 ko | ExtractionOCaml/perf_unsaturated_solinas.ml | 0m20.71s | 1833068 ko || +0m00.73s || 74852 ko | +3.52% | +4.08% 0m21.23s | 2436792 ko | ExtractionHaskell/bedrock2_fiat_crypto.hs | 0m21.16s | 2447800 ko || +0m00.07s || -11008 ko | +0.33% | -0.44% 0m21.23s | 2435776 ko | ExtractionHaskell/with_bedrock2_fiat_crypto.hs | 0m20.95s | 2447456 ko || +0m00.28s || -11680 ko | +1.33% | -0.47% 0m21.15s | 1899700 ko | ExtractionOCaml/perf_word_by_word_montgomery.ml | 0m20.67s | 1929640 ko || +0m00.47s || -29940 ko | +2.32% | -1.55% 0m20.96s | 2370116 ko | ExtractionHaskell/fiat_crypto.hs | 0m20.37s | 2340672 ko || +0m00.58s || 29444 ko | +2.89% | +1.25% 0m20.62s | 1114588 ko | PushButtonSynthesis/UnsaturatedSolinas.vo | 0m20.58s | 1117168 ko || +0m00.04s || -2580 ko | +0.19% | -0.23% 0m18.50s | 1115248 ko | PushButtonSynthesis/WordByWordMontgomery.vo | 0m18.50s | 1110356 ko || +0m00.00s || 4892 ko | +0.00% | +0.44% 0m18.44s | 1086396 ko | Bedrock/End2End/Poly1305/Field1305.vo | 0m18.46s | 1082940 ko || -0m00.01s || 3456 ko | -0.10% | +0.31% 0m17.32s | 2161028 ko | ExtractionHaskell/with_bedrock2_solinas_reduction.hs | 0m16.78s | 2114384 ko || +0m00.53s || 46644 ko | +3.21% | +2.20% 0m17.30s | 320652 ko | fiat-go/64/p434/p434.go | 0m16.86s | 344744 ko || +0m00.44s || -24092 ko | +2.60% | -6.98% 0m17.20s | 2162464 ko | ExtractionHaskell/bedrock2_solinas_reduction.hs | 0m16.88s | 2115404 ko || +0m00.32s || 47060 ko | +1.89% | +2.22% 0m17.15s | 385316 ko | fiat-json/src/p434_64.json | 0m17.12s | 354524 ko || +0m00.02s || 30792 ko | +0.17% | +8.68% 0m17.06s | 2147492 ko | ExtractionHaskell/with_bedrock2_word_by_word_montgomery.hs | 0m16.69s | 2095396 ko || +0m00.36s || 52096 ko | +2.21% | +2.48% 0m17.02s | 2146908 ko | ExtractionHaskell/bedrock2_word_by_word_montgomery.hs | 0m16.89s | 2095976 ko || +0m00.12s || 50932 ko | +0.76% | +2.42% 0m16.99s | 332764 ko | fiat-rust/src/p434_64.rs | 0m16.90s | 331544 ko || +0m00.08s || 1220 ko | +0.53% | +0.36% 0m16.89s | 1292064 ko | PerfTesting/PerfTestSearchPattern.vo | 0m16.87s | 1289552 ko || +0m00.01s || 2512 ko | +0.11% | +0.19% 0m16.82s | 319012 ko | fiat-zig/src/p434_64.zig | 0m16.88s | 332144 ko || -0m00.05s || -13132 ko | -0.35% | -3.95% 0m16.81s | 327236 ko | fiat-c/src/p434_64.c | 0m16.87s | 320400 ko || -0m00.06s || 6836 ko | -0.35% | +2.13% 0m16.26s | 2055032 ko | ExtractionHaskell/bedrock2_unsaturated_solinas.hs | 0m15.72s | 2031520 ko || +0m00.54s || 23512 ko | +3.43% | +1.15% 0m16.19s | 1096356 ko | Bedrock/Field/Translation/Proofs/Func.vo | 0m15.54s | 1092824 ko || +0m00.65s || 3532 ko | +4.18% | +0.32% 0m16.19s | 2058840 ko | ExtractionHaskell/solinas_reduction.hs | 0m16.10s | 2039476 ko || +0m00.08s || 19364 ko | +0.55% | +0.94% 0m16.17s | 2011948 ko | ExtractionHaskell/word_by_word_montgomery.hs | 0m15.98s | 1994732 ko || +0m00.19s || 17216 ko | +1.18% | +0.86% 0m15.99s | 2055016 ko | ExtractionHaskell/with_bedrock2_unsaturated_solinas.hs | 0m15.72s | 2032724 ko || +0m00.26s || 22292 ko | +1.71% | +1.09% 0m15.90s | 506520 ko | fiat-java/src/FiatSecp256K1MontgomeryScalar.java | 0m15.95s | 508156 ko || -0m00.04s || -1636 ko | -0.31% | -0.32% 0m15.84s | 527800 ko | fiat-json/src/p256_scalar_32.json | 0m15.92s | 550292 ko || -0m00.08s || -22492 ko | -0.50% | -4.08% 0m15.74s | 498240 ko | fiat-json/src/secp256k1_montgomery_scalar_32.json | 0m15.77s | 567600 ko || -0m00.02s || -69360 ko | -0.19% | -12.21% 0m15.73s | 497952 ko | fiat-java/src/FiatP256Scalar.java | 0m15.62s | 465356 ko || +0m00.11s || 32596 ko | +0.70% | +7.00% 0m15.68s | 480272 ko | fiat-go/32/p256scalar/p256scalar.go | 0m15.55s | 443840 ko || +0m00.12s || 36432 ko | +0.83% | +8.20% 0m15.65s | 490776 ko | fiat-c/src/p256_scalar_32.c | 0m15.55s | 480552 ko || +0m00.09s || 10224 ko | +0.64% | +2.12% 0m15.64s | 481120 ko | fiat-rust/src/p256_scalar_32.rs | 0m15.60s | 451844 ko || +0m00.04s || 29276 ko | +0.25% | +6.47% 0m15.61s | 494700 ko | fiat-go/32/secp256k1montgomeryscalar/secp256k1montgomeryscalar.go | 0m15.70s | 436556 ko || -0m00.08s || 58144 ko | -0.57% | +13.31% 0m15.59s | 495328 ko | fiat-json/src/secp256k1_montgomery_32.json | 0m15.64s | 553440 ko || -0m00.05s || -58112 ko | -0.31% | -10.50% 0m15.59s | 504192 ko | fiat-rust/src/secp256k1_montgomery_scalar_32.rs | 0m15.67s | 439980 ko || -0m00.08s || 64212 ko | -0.51% | +14.59% 0m15.58s | 489428 ko | fiat-zig/src/p256_scalar_32.zig | 0m15.73s | 439800 ko || -0m00.15s || 49628 ko | -0.95% | +11.28% 0m15.56s | 476852 ko | fiat-c/src/secp256k1_montgomery_scalar_32.c | 0m15.56s | 443348 ko || +0m00.00s || 33504 ko | +0.00% | +7.55% 0m15.55s | 496920 ko | fiat-zig/src/secp256k1_montgomery_scalar_32.zig | 0m15.51s | 501764 ko || +0m00.04s || -4844 ko | +0.25% | -0.96% 0m15.47s | 502448 ko | fiat-rust/src/secp256k1_montgomery_32.rs | 0m15.43s | 495976 ko || +0m00.04s || 6472 ko | +0.25% | +1.30% 0m15.45s | 1104192 ko | Bedrock/Field/Translation/Proofs/Cmd.vo | 0m15.31s | 1101560 ko || +0m00.13s || 2632 ko | +0.91% | +0.23% 0m15.38s | 440600 ko | fiat-java/src/FiatSecp256K1Montgomery.java | 0m15.48s | 504996 ko || -0m00.09s || -64396 ko | -0.64% | -12.75% 0m15.32s | 478516 ko | fiat-zig/src/secp256k1_montgomery_32.zig | 0m15.40s | 496520 ko || -0m00.08s || -18004 ko | -0.51% | -3.62% 0m15.31s | 494924 ko | fiat-go/32/secp256k1montgomery/secp256k1montgomery.go | 0m15.40s | 494840 ko || -0m00.08s || 84 ko | -0.58% | +0.01% 0m15.30s | 486492 ko | fiat-java/src/FiatCurve25519Scalar.java | 0m15.32s | 435568 ko || -0m00.01s || 50924 ko | -0.13% | +11.69% 0m15.29s | 1130412 ko | Bedrock/Field/Synthesis/New/Signature.vo | 0m15.34s | 1124752 ko || -0m00.05s || 5660 ko | -0.32% | +0.50% 0m15.28s | 1972964 ko | ExtractionHaskell/unsaturated_solinas.hs | 0m15.11s | 1940108 ko || +0m00.16s || 32856 ko | +1.12% | +1.69% 0m15.28s | 473416 ko | fiat-zig/src/curve25519_scalar_32.zig | 0m15.18s | 491132 ko || +0m00.09s || -17716 ko | +0.65% | -3.60% 0m15.27s | 485840 ko | fiat-go/32/curve25519scalar/curve25519scalar.go | 0m15.12s | 483372 ko || +0m00.15s || 2468 ko | +0.99% | +0.51% 0m15.24s | 477328 ko | fiat-c/src/secp256k1_montgomery_32.c | 0m15.32s | 494028 ko || -0m00.08s || -16700 ko | -0.52% | -3.38% 0m15.22s | 491884 ko | fiat-rust/src/curve25519_scalar_32.rs | 0m15.28s | 483372 ko || -0m00.05s || 8512 ko | -0.39% | +1.76% 0m15.16s | 1979980 ko | ExtractionHaskell/bedrock2_dettman_multiplication.hs | 0m14.86s | 1951840 ko || +0m00.30s || 28140 ko | +2.01% | +1.44% 0m15.12s | 1979668 ko | ExtractionHaskell/with_bedrock2_dettman_multiplication.hs | 0m14.89s | 1950340 ko || +0m00.22s || 29328 ko | +1.54% | +1.50% 0m15.03s | 485944 ko | fiat-c/src/curve25519_scalar_32.c | 0m15.00s | 450824 ko || +0m00.02s || 35120 ko | +0.19% | +7.79% 0m14.96s | 1975912 ko | ExtractionHaskell/bedrock2_base_conversion.hs | 0m14.62s | 1944152 ko || +0m00.34s || 31760 ko | +2.32% | +1.63% 0m14.93s | 1975456 ko | ExtractionHaskell/with_bedrock2_base_conversion.hs | 0m14.72s | 1945892 ko || +0m00.20s || 29564 ko | +1.42% | +1.51% 0m14.90s | 1940744 ko | ExtractionHaskell/bedrock2_saturated_solinas.hs | 0m14.72s | 1945412 ko || +0m00.17s || -4668 ko | +1.22% | -0.23% 0m14.82s | 1942936 ko | ExtractionHaskell/with_bedrock2_saturated_solinas.hs | 0m14.75s | 1946856 ko || +0m00.07s || -3920 ko | +0.47% | -0.20% 0m14.77s | 488968 ko | fiat-json/src/curve25519_scalar_32.json | 0m15.37s | 542368 ko || -0m00.59s || -53400 ko | -3.90% | -9.84% 0m14.74s | 486248 ko | fiat-rust/src/p256_32.rs | 0m14.69s | 480780 ko || +0m00.05s || 5468 ko | +0.34% | +1.13% 0m14.71s | 476972 ko | fiat-json/src/p256_32.json | 0m14.78s | 516540 ko || -0m00.06s || -39568 ko | -0.47% | -7.66% 0m14.57s | 482352 ko | fiat-go/32/p256/p256.go | 0m14.60s | 476800 ko || -0m00.02s || 5552 ko | -0.20% | +1.16% 0m14.50s | 485760 ko | fiat-zig/src/p256_32.zig | 0m14.58s | 485632 ko || -0m00.08s || 128 ko | -0.54% | +0.02% 0m14.46s | 1902592 ko | ExtractionHaskell/dettman_multiplication.hs | 0m14.18s | 1884012 ko || +0m00.28s || 18580 ko | +1.97% | +0.98% 0m14.43s | 480256 ko | fiat-c/src/p256_32.c | 0m14.49s | 478808 ko || -0m00.06s || 1448 ko | -0.41% | +0.30% 0m14.29s | 1894708 ko | ExtractionHaskell/base_conversion.hs | 0m13.88s | 1860840 ko || +0m00.40s || 33868 ko | +2.95% | +1.82% 0m14.27s | 491324 ko | fiat-java/src/FiatP256.java | 0m14.56s | 487596 ko || -0m00.29s || 3728 ko | -1.99% | +0.76% 0m14.26s | 1882348 ko | ExtractionHaskell/saturated_solinas.hs | 0m13.98s | 1872892 ko || +0m00.27s || 9456 ko | +2.00% | +0.50% 0m12.87s | 1551852 ko | Bedrock/Field/Synthesis/New/WordByWordMontgomery.vo | 0m12.92s | 1551400 ko || -0m00.05s || 452 ko | -0.38% | +0.02% 0m10.51s | 225240 ko | fiat-json/src/p384_scalar_64.json | 0m10.51s | 251020 ko || +0m00.00s || -25780 ko | +0.00% | -10.27% 0m10.42s | 199480 ko | fiat-go/64/p384scalar/p384scalar.go | 0m10.43s | 209852 ko || -0m00.00s || -10372 ko | -0.09% | -4.94% 0m10.41s | 204396 ko | fiat-c/src/p384_scalar_64.c | 0m10.43s | 194600 ko || -0m00.01s || 9796 ko | -0.19% | +5.03% 0m10.38s | 206196 ko | fiat-rust/src/p384_scalar_64.rs | 0m10.35s | 206736 ko || +0m00.03s || -540 ko | +0.28% | -0.26% 0m10.23s | 1004972 ko | BoundsPipeline.vo | 0m10.20s | 1000116 ko || +0m00.03s || 4856 ko | +0.29% | +0.48% 0m10.11s | 204688 ko | fiat-zig/src/p384_scalar_64.zig | 0m10.06s | 181992 ko || +0m00.04s || 22696 ko | +0.49% | +12.47% 0m09.00s | 238480 ko | fiat-json/src/p384_64.json | 0m09.05s | 231740 ko || -0m00.05s || 6740 ko | -0.55% | +2.90% 0m08.90s | 1248708 ko | Bedrock/End2End/X25519/MontgomeryLadderProperties.vo | 0m09.07s | 1246884 ko || -0m00.16s || 1824 ko | -1.87% | +0.14% 0m08.86s | 212388 ko | fiat-go/64/p384/p384.go | 0m08.92s | 209760 ko || -0m00.06s || 2628 ko | -0.67% | +1.25% 0m08.75s | 204100 ko | fiat-rust/src/p384_64.rs | 0m08.83s | 193404 ko || -0m00.08s || 10696 ko | -0.90% | +5.53% 0m08.71s | 190620 ko | fiat-c/src/p384_64.c | 0m08.77s | 192560 ko || -0m00.05s || -1940 ko | -0.68% | -1.00% 0m08.55s | 309040 ko | fiat-java/src/FiatP224.java | 0m08.53s | 309016 ko || +0m00.02s || 24 ko | +0.23% | +0.00% 0m08.50s | 304704 ko | fiat-rust/src/p224_32.rs | 0m08.55s | 295280 ko || -0m00.05s || 9424 ko | -0.58% | +3.19% 0m08.45s | 298032 ko | fiat-go/32/p224/p224.go | 0m08.37s | 272988 ko || +0m00.08s || 25044 ko | +0.95% | +9.17% 0m08.45s | 197948 ko | fiat-zig/src/p384_64.zig | 0m08.86s | 194272 ko || -0m00.41s || 3676 ko | -4.62% | +1.89% 0m08.42s | 281584 ko | fiat-zig/src/p224_32.zig | 0m08.34s | 304508 ko || +0m00.08s || -22924 ko | +0.95% | -7.52% 0m08.36s | 292080 ko | fiat-c/src/p224_32.c | 0m08.37s | 294116 ko || -0m00.00s || -2036 ko | -0.11% | -0.69% 0m08.34s | 321564 ko | fiat-json/src/p224_32.json | 0m08.65s | 345908 ko || -0m00.31s || -24344 ko | -3.58% | -7.03% 0m08.14s | 140200 ko | fiat-json/src/p448_solinas_32.json | 0m08.21s | 138688 ko || -0m00.07s || 1512 ko | -0.85% | +1.09% 0m08.01s | 996516 ko | PushButtonSynthesis/BaseConversion.vo | 0m07.95s | 989088 ko || +0m00.05s || 7428 ko | +0.75% | +0.75% 0m07.97s | 632644 ko | Rewriter/Passes/RelaxBitwidthAdcSbb.vo | 0m08.17s | 630336 ko || -0m00.20s || 2308 ko | -2.44% | +0.36% 0m07.93s | 79400 ko | fiat-rust/src/p448_solinas_32.rs | 0m07.96s | 81460 ko || -0m00.03s || -2060 ko | -0.37% | -2.52% 0m07.83s | 73844 ko | fiat-zig/src/p448_solinas_32.zig | 0m07.79s | 81336 ko || +0m00.04s || -7492 ko | +0.51% | -9.21% 0m07.79s | 78732 ko | fiat-c/src/p448_solinas_32.c | 0m07.86s | 79276 ko || -0m00.07s || -544 ko | -0.89% | -0.68% 0m07.46s | 971276 ko | PushButtonSynthesis/SmallExamples.vo | 0m07.72s | 968540 ko || -0m00.25s || 2736 ko | -3.36% | +0.28% 0m07.19s | 1016968 ko | PushButtonSynthesis/Primitives.vo | 0m07.14s | 1013600 ko || +0m00.05s || 3368 ko | +0.70% | +0.33% 0m06.28s | 993068 ko | PushButtonSynthesis/SolinasReduction.vo | 0m06.34s | 997904 ko || -0m00.05s || -4836 ko | -0.94% | -0.48% 0m06.22s | 616388 ko | Rewriter/Passes/NoSelect.vo | 0m06.31s | 616404 ko || -0m00.08s || -16 ko | -1.42% | -0.00% 0m06.12s | 59732 ko | fiat-go/64/p521/p521.go | 0m06.14s | 60028 ko || -0m00.01s || -296 ko | -0.32% | -0.49% 0m05.42s | 61860 ko | fiat-json/src/p521_64.json | 0m05.44s | 61936 ko || -0m00.02s || -76 ko | -0.36% | -0.12% 0m05.37s | 1135900 ko | Bedrock/Field/Synthesis/New/UnsaturatedSolinas.vo | 0m05.40s | 1127820 ko || -0m00.03s || 8080 ko | -0.55% | +0.71% 0m05.36s | 75076 ko | fiat-bedrock2/src/p521_64.c | 0m04.85s | 79172 ko || +0m00.51s || -4096 ko | +10.51% | -5.17% 0m05.36s | 44612 ko | fiat-c/src/p521_64.c | 0m05.40s | 44276 ko || -0m00.04s || 336 ko | -0.74% | +0.75% 0m05.31s | 44092 ko | fiat-rust/src/p521_64.rs | 0m05.35s | 43908 ko || -0m00.04s || 184 ko | -0.74% | +0.41% 0m05.30s | 44932 ko | fiat-zig/src/p521_64.zig | 0m05.30s | 45176 ko || +0m00.00s || -244 ko | +0.00% | -0.54% 0m05.23s | 996920 ko | PushButtonSynthesis/BarrettReduction.vo | 0m05.23s | 989348 ko || +0m00.00s || 7572 ko | +0.00% | +0.76% 0m05.11s | 1049968 ko | CLI.vo | 0m05.12s | 1052144 ko || -0m00.00s || -2176 ko | -0.19% | -0.20% 0m04.27s | 975384 ko | PushButtonSynthesis/DettmanMultiplication.vo | 0m04.20s | 973544 ko || +0m00.06s || 1840 ko | +1.66% | +0.18% 0m04.01s | 1004524 ko | Bedrock/Field/Translation/Proofs/ValidComputable/Cmd.vo | 0m04.04s | 1002656 ko || -0m00.03s || 1868 ko | -0.74% | +0.18% 0m03.92s | 986288 ko | PushButtonSynthesis/SaturatedSolinas.vo | 0m04.00s | 986032 ko || -0m00.08s || 256 ko | -2.00% | +0.02% 0m03.89s | 1260988 ko | Everything.vo | 0m03.84s | 1259420 ko || +0m00.05s || 1568 ko | +1.30% | +0.12% 0m03.65s | 981568 ko | PushButtonSynthesis/FancyMontgomeryReduction.vo | 0m03.66s | 985616 ko || -0m00.01s || -4048 ko | -0.27% | -0.41% 0m03.45s | 1232876 ko | PerfTesting/PerfTestPrint.vo | 0m03.43s | 1231896 ko || +0m00.02s || 980 ko | +0.58% | +0.07% 0m03.30s | 1009032 ko | Rewriter/PerfTesting/Core.vo | 0m03.25s | 993788 ko || +0m00.04s || 15244 ko | +1.53% | +1.53% 0m03.13s | 568440 ko | Rewriter/Passes/ArithWithRelaxedCasts.vo | 0m03.12s | 568404 ko || +0m00.00s || 36 ko | +0.32% | +0.00% 0m03.11s | 1008240 ko | StandaloneMonadicUtils.vo | 0m03.17s | 1006332 ko || -0m00.06s || 1908 ko | -1.89% | +0.18% 0m03.07s | 938864 ko | Bedrock/Field/Translation/Cmd.vo | 0m03.10s | 942432 ko || -0m00.03s || -3568 ko | -0.96% | -0.37% 0m03.04s | 1036936 ko | Bedrock/Standalone/StandaloneHaskellMain.vo | 0m03.05s | 1035024 ko || -0m00.00s || 1912 ko | -0.32% | +0.18% 0m03.04s | 1035364 ko | Bedrock/Standalone/StandaloneJsOfOCamlMain.vo | 0m02.91s | 1033368 ko || +0m00.12s || 1996 ko | +4.46% | +0.19% 0m03.03s | 1037124 ko | Bedrock/Standalone/StandaloneOCamlMain.vo | 0m03.05s | 1035300 ko || -0m00.02s || 1824 ko | -0.65% | +0.17% 0m03.02s | 1005396 ko | StandaloneHaskellMain.vo | 0m03.06s | 1004508 ko || -0m00.04s || 888 ko | -1.30% | +0.08% 0m02.99s | 996484 ko | Bedrock/Field/Translation/Proofs/ValidComputable/Func.vo | 0m02.97s | 994484 ko || +0m00.02s || 2000 ko | +0.67% | +0.20% 0m02.97s | 939444 ko | Bedrock/Field/Translation/Func.vo | 0m02.94s | 942808 ko || +0m00.03s || -3364 ko | +1.02% | -0.35% 0m02.97s | 575436 ko | Rewriter/Passes/AddAssocLeft.vo | 0m02.96s | 575508 ko || +0m00.01s || -72 ko | +0.33% | -0.01% 0m02.96s | 999680 ko | Bedrock/Field/Stringification/Stringification.vo | 0m02.94s | 997464 ko || +0m00.02s || 2216 ko | +0.68% | +0.22% 0m02.93s | 1013008 ko | StandaloneJsOfOCamlMain.vo | 0m02.93s | 1011048 ko || +0m00.00s || 1960 ko | +0.00% | +0.19% 0m02.89s | 1012680 ko | StandaloneOCamlMain.vo | 0m02.94s | 1010756 ko || -0m00.04s || 1924 ko | -1.70% | +0.19% 0m02.83s | 971240 ko | Bedrock/Field/Translation/Parameters/Defaults32.vo | 0m02.85s | 974972 ko || -0m00.02s || -3732 ko | -0.70% | -0.38% 0m02.82s | 971312 ko | Bedrock/Field/Translation/Parameters/Defaults64.vo | 0m02.83s | 974976 ko || -0m00.01s || -3664 ko | -0.35% | -0.37% 0m02.80s | 971184 ko | Bedrock/Field/Translation/Parameters/FE310.vo | 0m02.88s | 974956 ko || -0m00.08s || -3772 ko | -2.77% | -0.38% 0m02.79s | 963668 ko | Bedrock/Field/Translation/Parameters/Defaults.vo | 0m02.80s | 967484 ko || -0m00.00s || -3816 ko | -0.35% | -0.39% 0m02.77s | 989712 ko | Bedrock/Field/Synthesis/New/ComputedOp.vo | 0m02.79s | 993364 ko || -0m00.02s || -3652 ko | -0.71% | -0.36% 0m02.72s | 1022452 ko | Rewriter/PerfTesting/StandaloneOCamlMain.vo | 0m02.92s | 1021420 ko || -0m00.19s || 1032 ko | -6.84% | +0.10% 0m02.70s | 87024 ko | fiat-json/src/secp256k1_montgomery_scalar_64.json | 0m02.69s | 89792 ko || +0m00.01s || -2768 ko | +0.37% | -3.08% 0m02.69s | 88536 ko | fiat-json/src/p256_scalar_64.json | 0m02.70s | 87080 ko || -0m00.01s || 1456 ko | -0.37% | +1.67% 0m02.68s | 78056 ko | fiat-go/64/secp256k1montgomeryscalar/secp256k1montgomeryscalar.go | 0m02.65s | 77448 ko || +0m00.03s || 608 ko | +1.13% | +0.78% 0m02.64s | 566836 ko | Rewriter/Passes/FlattenThunkedRects.vo | 0m02.58s | 566824 ko || +0m00.06s || 12 ko | +2.32% | +0.00% 0m02.64s | 77940 ko | fiat-go/64/p256scalar/p256scalar.go | 0m02.65s | 77108 ko || -0m00.00s || 832 ko | -0.37% | +1.07% 0m02.64s | 74068 ko | fiat-rust/src/secp256k1_montgomery_scalar_64.rs | 0m02.62s | 73192 ko || +0m00.02s || 876 ko | +0.76% | +1.19% 0m02.63s | 71360 ko | fiat-c/src/p256_scalar_64.c | 0m02.62s | 70824 ko || +0m00.00s || 536 ko | +0.38% | +0.75% 0m02.63s | 71752 ko | fiat-rust/src/p256_scalar_64.rs | 0m02.66s | 72480 ko || -0m00.03s || -728 ko | -1.12% | -1.00% 0m02.62s | 70460 ko | fiat-zig/src/secp256k1_montgomery_scalar_64.zig | 0m02.62s | 69520 ko || +0m00.00s || 940 ko | +0.00% | +1.35% 0m02.61s | 74116 ko | fiat-c/src/secp256k1_montgomery_scalar_64.c | 0m02.61s | 73576 ko || +0m00.00s || 540 ko | +0.00% | +0.73% 0m02.57s | 72276 ko | fiat-zig/src/p256_scalar_64.zig | 0m02.61s | 70560 ko || -0m00.04s || 1716 ko | -1.53% | +2.43% 0m02.54s | 57268 ko | fiat-go/64/p448solinas/p448solinas.go | 0m02.52s | 57916 ko || +0m00.02s || -648 ko | +0.79% | -1.11% 0m02.43s | 87696 ko | fiat-json/src/secp256k1_montgomery_64.json | 0m02.48s | 89372 ko || -0m00.04s || -1676 ko | -2.01% | -1.87% 0m02.40s | 74332 ko | fiat-go/64/secp256k1montgomery/secp256k1montgomery.go | 0m02.41s | 73928 ko || -0m00.01s || 404 ko | -0.41% | +0.54% 0m02.38s | 70228 ko | fiat-c/src/secp256k1_montgomery_64.c | 0m02.36s | 72916 ko || +0m00.02s || -2688 ko | +0.84% | -3.68% 0m02.38s | 72360 ko | fiat-rust/src/secp256k1_montgomery_64.rs | 0m02.42s | 72692 ko || -0m00.04s || -332 ko | -1.65% | -0.45% 0m02.36s | 71032 ko | fiat-zig/src/secp256k1_montgomery_64.zig | 0m02.37s | 70800 ko || -0m00.01s || 232 ko | -0.42% | +0.32% 0m02.26s | 85160 ko | fiat-json/src/curve25519_scalar_64.json | 0m02.26s | 86724 ko || +0m00.00s || -1564 ko | +0.00% | -1.80% 0m02.23s | 69924 ko | fiat-c/src/curve25519_scalar_64.c | 0m02.19s | 69180 ko || +0m00.04s || 744 ko | +1.82% | +1.07% 0m02.22s | 70000 ko | fiat-zig/src/curve25519_scalar_64.zig | 0m02.22s | 68600 ko || +0m00.00s || 1400 ko | +0.00% | +2.04% 0m02.21s | 71756 ko | fiat-rust/src/curve25519_scalar_64.rs | 0m02.22s | 71176 ko || -0m00.01s || 580 ko | -0.45% | +0.81% 0m02.20s | 563992 ko | Rewriter/Passes/StripLiteralCasts.vo | 0m02.23s | 563936 ko || -0m00.02s || 56 ko | -1.34% | +0.00% 0m02.19s | 75236 ko | fiat-go/64/curve25519scalar/curve25519scalar.go | 0m02.23s | 72760 ko || -0m00.04s || 2476 ko | -1.79% | +3.40% 0m02.18s | 566468 ko | Rewriter/Passes/UnfoldValueBarrier.vo | 0m02.24s | 566448 ko || -0m00.06s || 20 ko | -2.67% | +0.00% 0m02.07s | 44876 ko | fiat-go/32/curve25519/curve25519.go | 0m02.08s | 43820 ko || -0m00.01s || 1056 ko | -0.48% | +2.40% 0m02.06s | 567120 ko | Rewriter/Passes/ToFancy.vo | 0m02.11s | 567120 ko || -0m00.04s || 0 ko | -2.36% | +0.00% 0m02.04s | 77844 ko | fiat-bedrock2/src/p448_solinas_64.c | 0m02.04s | 76924 ko || +0m00.00s || 920 ko | +0.00% | +1.19% 0m01.99s | 60264 ko | fiat-json/src/p448_solinas_64.json | 0m01.98s | 59236 ko || +0m00.01s || 1028 ko | +0.50% | +1.73% 0m01.94s | 42296 ko | fiat-rust/src/p448_solinas_64.rs | 0m01.92s | 43556 ko || +0m00.02s || -1260 ko | +1.04% | -2.89% 0m01.89s | 42540 ko | fiat-c/src/p448_solinas_64.c | 0m01.89s | 42128 ko || +0m00.00s || 412 ko | +0.00% | +0.97% 0m01.88s | 75780 ko | fiat-bedrock2/src/curve25519_32.c | 0m01.89s | 76316 ko || -0m00.01s || -536 ko | -0.52% | -0.70% 0m01.87s | 59136 ko | fiat-json/src/curve25519_32.json | 0m01.82s | 60668 ko || +0m00.05s || -1532 ko | +2.74% | -2.52% 0m01.85s | 85200 ko | fiat-json/src/p224_64.json | 0m01.76s | 88252 ko || +0m00.09s || -3052 ko | +5.11% | -3.45% 0m01.83s | 43660 ko | fiat-zig/src/p448_solinas_64.zig | 0m01.90s | 42244 ko || -0m00.06s || 1416 ko | -3.68% | +3.35% 0m01.81s | 87256 ko | fiat-json/src/p256_64.json | 0m01.78s | 86468 ko || +0m00.03s || 788 ko | +1.68% | +0.91% 0m01.78s | 41772 ko | fiat-zig/src/curve25519_32.zig | 0m01.78s | 41288 ko || +0m00.00s || 484 ko | +0.00% | +1.17% 0m01.77s | 40472 ko | fiat-c/src/curve25519_32.c | 0m01.75s | 40936 ko || +0m00.02s || -464 ko | +1.14% | -1.13% 0m01.77s | 73372 ko | fiat-go/64/p256/p256.go | 0m01.72s | 71408 ko || +0m00.05s || 1964 ko | +2.90% | +2.75% 0m01.76s | 73804 ko | fiat-go/64/p224/p224.go | 0m01.80s | 73552 ko || -0m00.04s || 252 ko | -2.22% | +0.34% 0m01.76s | 41092 ko | fiat-rust/src/curve25519_32.rs | 0m01.73s | 41988 ko || +0m00.03s || -896 ko | +1.73% | -2.13% 0m01.74s | 68544 ko | fiat-c/src/p224_64.c | 0m01.74s | 69316 ko || +0m00.00s || -772 ko | +0.00% | -1.11% 0m01.74s | 41964 ko | fiat-java/src/FiatCurve25519.java | 0m01.76s | 42384 ko || -0m00.02s || -420 ko | -1.13% | -0.99% 0m01.74s | 69496 ko | fiat-rust/src/p256_64.rs | 0m01.70s | 71088 ko || +0m00.04s || -1592 ko | +2.35% | -2.23% 0m01.74s | 69712 ko | fiat-zig/src/p224_64.zig | 0m01.74s | 69472 ko || +0m00.00s || 240 ko | +0.00% | +0.34% 0m01.73s | 71260 ko | fiat-rust/src/p224_64.rs | 0m01.74s | 68428 ko || -0m00.01s || 2832 ko | -0.57% | +4.13% 0m01.71s | 69352 ko | fiat-c/src/p256_64.c | 0m01.71s | 68088 ko || +0m00.00s || 1264 ko | +0.00% | +1.85% 0m01.71s | 69644 ko | fiat-zig/src/p256_64.zig | 0m01.72s | 70072 ko || -0m00.01s || -428 ko | -0.58% | -0.61% 0m01.62s | 617916 ko | CompilersTestCases.vo | 0m01.67s | 614276 ko || -0m00.04s || 3640 ko | -2.99% | +0.59% 0m00.92s | 571620 ko | Rewriter/All.vo | 0m00.96s | 566648 ko || -0m00.03s || 4972 ko | -4.16% | +0.87% 0m00.91s | 456024 ko | Rewriter/Rules.vo | 0m00.84s | 458148 ko || +0m00.07s || -2124 ko | +8.33% | -0.46% 0m00.59s | 37240 ko | fiat-go/64/curve25519/curve25519.go | 0m00.61s | 36360 ko || -0m00.02s || 880 ko | -3.27% | +2.42% 0m00.49s | 43716 ko | fiat-bedrock2/src/curve25519_64.c | 0m00.48s | 43712 ko || +0m00.01s || 4 ko | +2.08% | +0.00% 0m00.49s | 40156 ko | fiat-json/src/curve25519_64.json | 0m00.51s | 39776 ko || -0m00.02s || 380 ko | -3.92% | +0.95% 0m00.48s | 31880 ko | fiat-c/src/curve25519_64.c | 0m00.47s | 31008 ko || +0m00.01s || 872 ko | +2.12% | +2.81% 0m00.48s | 31544 ko | fiat-zig/src/curve25519_64.zig | 0m00.46s | 30612 ko || +0m00.01s || 932 ko | +4.34% | +3.04% 0m00.45s | 109596 ko | ExtractionOCaml/bedrock2_fiat_crypto.cmi | 0m00.45s | 109588 ko || +0m00.00s || 8 ko | +0.00% | +0.00% 0m00.45s | 107072 ko | ExtractionOCaml/fiat_crypto.cmi | 0m00.48s | 107100 ko || -0m00.02s || -28 ko | -6.24% | -0.02% 0m00.44s | 106988 ko | ExtractionOCaml/bedrock2_solinas_reduction.cmi | 0m00.45s | 106772 ko || -0m00.01s || 216 ko | -2.22% | +0.20% 0m00.44s | 104996 ko | ExtractionOCaml/solinas_reduction.cmi | 0m00.39s | 104852 ko || +0m00.04s || 144 ko | +12.82% | +0.13% 0m00.44s | 31724 ko | fiat-rust/src/curve25519_64.rs | 0m00.45s | 31432 ko || -0m00.01s || 292 ko | -2.22% | +0.92% 0m00.43s | 108484 ko | ExtractionOCaml/bedrock2_word_by_word_montgomery.cmi | 0m00.44s | 108552 ko || -0m00.01s || -68 ko | -2.27% | -0.06% 0m00.42s | 108792 ko | ExtractionOCaml/bedrock2_unsaturated_solinas.cmi | 0m00.43s | 108796 ko || -0m00.01s || -4 ko | -2.32% | -0.00% 0m00.42s | 106548 ko | ExtractionOCaml/with_bedrock2_solinas_reduction.cmi | 0m00.41s | 106696 ko || +0m00.01s || -148 ko | +2.43% | -0.13% 0m00.42s | 108120 ko | ExtractionOCaml/with_bedrock2_unsaturated_solinas.cmi | 0m00.41s | 108344 ko || +0m00.01s || -224 ko | +2.43% | -0.20% N/A | N/A | ExtractionOCaml/with_bedrock2_word_by_word_montgomery.cmi | 0m00.42s | 108592 ko || -0m00.42s || -108592 ko | -100.00% | -100.00% 0m00.41s | 106848 ko | ExtractionOCaml/bedrock2_saturated_solinas.cmi | 0m00.41s | 106912 ko || +0m00.00s || -64 ko | +0.00% | -0.05% 0m00.41s | 105788 ko | ExtractionOCaml/unsaturated_solinas.cmi | 0m00.42s | 106072 ko || -0m00.01s || -284 ko | -2.38% | -0.26% 0m00.41s | 107060 ko | ExtractionOCaml/with_bedrock2_base_conversion.cmi | 0m00.44s | 107368 ko || -0m00.03s || -308 ko | -6.81% | -0.28% 0m00.41s | 107376 ko | ExtractionOCaml/with_bedrock2_dettman_multiplication.cmi | 0m00.41s | 107572 ko || +0m00.00s || -196 ko | +0.00% | -0.18% 0m00.41s | 110628 ko | ExtractionOCaml/with_bedrock2_fiat_crypto.cmi | 0m00.47s | 110712 ko || -0m00.06s || -84 ko | -12.76% | -0.07% 0m00.41s | 106768 ko | ExtractionOCaml/with_bedrock2_saturated_solinas.cmi | 0m00.42s | 106780 ko || -0m00.01s || -12 ko | -2.38% | -0.01% 0m00.40s | 106936 ko | ExtractionOCaml/bedrock2_base_conversion.cmi | 0m00.40s | 107096 ko || +0m00.00s || -160 ko | +0.00% | -0.14% 0m00.40s | 104704 ko | ExtractionOCaml/saturated_solinas.cmi | 0m00.42s | 104776 ko || -0m00.01s || -72 ko | -4.76% | -0.06% 0m00.40s | 105528 ko | ExtractionOCaml/word_by_word_montgomery.cmi | 0m00.39s | 105420 ko || +0m00.01s || 108 ko | +2.56% | +0.10% N/A | N/A | fiat-json/src/curve25519_solinas_64.json | 0m00.40s | 46008 ko || -0m00.40s || -46008 ko | -100.00% | -100.00% 0m00.39s | 107648 ko | ExtractionOCaml/bedrock2_dettman_multiplication.cmi | 0m00.42s | 107532 ko || -0m00.02s || 116 ko | -7.14% | +0.10% N/A | N/A | ExtractionOCaml/dettman_multiplication.cmi | 0m00.39s | 104104 ko || -0m00.39s || -104104 ko | -100.00% | -100.00% N/A | N/A | fiat-c/src/curve25519_solinas_64.c | 0m00.39s | 42048 ko || -0m00.39s || -42048 ko | -100.00% | -100.00% N/A | N/A | fiat-go/64/curve25519solinas/curve25519solinas.go | 0m00.39s | 42940 ko || -0m00.39s || -42940 ko | -100.00% | -100.00% N/A | N/A | fiat-zig/src/curve25519_solinas_64.zig | 0m00.39s | 42164 ko || -0m00.39s || -42164 ko | -100.00% | -100.00% 0m00.38s | 105176 ko | ExtractionOCaml/base_conversion.cmi | 0m00.38s | 105136 ko || +0m00.00s || 40 ko | +0.00% | +0.03% 0m00.38s | 48488 ko | fiat-bedrock2/src/curve25519_solinas_64.c | 0m00.41s | 47512 ko || -0m00.02s || 976 ko | -7.31% | +2.05% N/A | N/A | fiat-rust/src/curve25519_solinas_64.rs | 0m00.38s | 42472 ko || -0m00.38s || -42472 ko | -100.00% | -100.00% 0m00.30s | 29796 ko | fiat-go/32/poly1305/poly1305.go | 0m00.29s | 29576 ko || +0m00.01s || 220 ko | +3.44% | +0.74% 0m00.26s | 38628 ko | fiat-bedrock2/src/poly1305_32.c | 0m00.24s | 38816 ko || +0m00.02s || -188 ko | +8.33% | -0.48% 0m00.24s | 28816 ko | fiat-java/src/FiatPoly1305.java | 0m00.21s | 28308 ko || +0m00.03s || 508 ko | +14.28% | +1.79% 0m00.24s | 35080 ko | fiat-json/src/poly1305_32.json | 0m00.24s | 34920 ko || +0m00.00s || 160 ko | +0.00% | +0.45% 0m00.22s | 28316 ko | fiat-c/src/poly1305_32.c | 0m00.25s | 28008 ko || -0m00.03s || 308 ko | -12.00% | +1.09% N/A | N/A | fiat-go/64/secp256k1dettman/secp256k1dettman.go | 0m00.22s | 28508 ko || -0m00.22s || -28508 ko | -100.00% | -100.00% 0m00.22s | 28476 ko | fiat-rust/src/poly1305_32.rs | 0m00.24s | 28484 ko || -0m00.01s || -8 ko | -8.33% | -0.02% N/A | N/A | fiat-bedrock2/src/secp256k1_dettman_64.c | 0m00.21s | 33628 ko || -0m00.21s || -33628 ko | -100.00% | -100.00% 0m00.21s | 28428 ko | fiat-zig/src/poly1305_32.zig | 0m00.21s | 28344 ko || +0m00.00s || 84 ko | +0.00% | +0.29% N/A | N/A | fiat-c/src/secp256k1_dettman_64.c | 0m00.19s | 24484 ko || -0m00.19s || -24484 ko | -100.00% | -100.00% N/A | N/A | fiat-json/src/secp256k1_dettman_64.json | 0m00.19s | 28256 ko || -0m00.19s || -28256 ko | -100.00% | -100.00% N/A | N/A | fiat-rust/src/secp256k1_dettman_64.rs | 0m00.18s | 24736 ko || -0m00.18s || -24736 ko | -100.00% | -100.00% N/A | N/A | fiat-zig/src/secp256k1_dettman_64.zig | 0m00.18s | 24564 ko || -0m00.18s || -24564 ko | -100.00% | -100.00% 0m00.17s | 29876 ko | fiat-go/64/poly1305/poly1305.go | 0m00.18s | 29452 ko || -0m00.00s || 424 ko | -5.55% | +1.43% 0m00.16s | 61844 ko | ExtractionOCaml/perf_unsaturated_solinas.cmi | 0m00.18s | 61920 ko || -0m00.01s || -76 ko | -11.11% | -0.12% 0m00.16s | 61640 ko | ExtractionOCaml/perf_word_by_word_montgomery.cmi | 0m00.18s | 61720 ko || -0m00.01s || -80 ko | -11.11% | -0.12% 0m00.13s | 26840 ko | fiat-c/src/poly1305_64.c | 0m00.13s | 26520 ko || +0m00.00s || 320 ko | +0.00% | +1.20% 0m00.13s | 31516 ko | fiat-json/src/poly1305_64.json | 0m00.12s | 31220 ko || +0m00.01s || 296 ko | +8.33% | +0.94% 0m00.13s | 27116 ko | fiat-rust/src/poly1305_64.rs | 0m00.13s | 26708 ko || +0m00.00s || 408 ko | +0.00% | +1.52% 0m00.12s | 26824 ko | fiat-zig/src/poly1305_64.zig | 0m00.12s | 26772 ko || +0m00.00s || 52 ko | +0.00% | +0.19% 0m00.11s | 31524 ko | fiat-bedrock2/src/poly1305_64.c | 0m00.13s | 31756 ko || -0m00.02s || -232 ko | -15.38% | -0.73% 0m00.00s | 4632 ko | ExtractionJsOfOCaml/bedrock2_fiat_crypto.cmi | 0m00.00s | 4636 ko || +0m00.00s || -4 ko | N/A | -0.08% 0m00.00s | 4508 ko | ExtractionJsOfOCaml/fiat_crypto.cmi | 0m00.00s | 4448 ko || +0m00.00s || 60 ko | N/A | +1.34% 0m00.00s | 4496 ko | ExtractionJsOfOCaml/with_bedrock2_fiat_crypto.cmi | 0m00.00s | 4368 ko || +0m00.00s || 128 ko | N/A | +2.93% ``` </p> </details>
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) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 125m19.92s | 4337192 ko | Total Time / Peak Mem | 121m02.11s | 3709900 ko || +4m17.81s || 627292 ko | +3.55% | +16.90% -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 9m42.13s | 4337192 ko | Rewriter/Passes/NBE.vo | 2m34.04s | 3317136 ko || +7m08.09s || 1020056 ko | +277.90% | +30.75% 5m28.68s | 3201708 ko | Bedrock/Field/Synthesis/Examples/p224_64_new.vo | 0m18.21s | 1196664 ko || +5m10.47s || 2005044 ko | +1704.94% | +167.55% N/A | N/A | fiat-bedrock2/src/p384_scalar_32.c | 1m56.31s | 2430492 ko || -1m56.31s || -2430492 ko | -100.00% | -100.00% N/A | N/A | fiat-bedrock2/src/p384_32.c | 1m50.66s | 2217956 ko || -1m50.65s || -2217956 ko | -100.00% | -100.00% N/A | N/A | ExtractionOCaml/with_bedrock2_word_by_word_montgomery | 0m44.11s | 2631312 ko || -0m44.10s || -2631312 ko | -100.00% | -100.00% N/A | N/A | ExtractionOCaml/dettman_multiplication | 0m36.25s | 1931516 ko || -0m36.25s || -1931516 ko | -100.00% | -100.00% 0m34.06s | 1755172 ko | ExtractionOCaml/perf_word_by_word_montgomery | 0m00.06s | 27632 ko || +0m34.00s || 1727540 ko | +56666.66% | +6251.95% 0m07.87s | 1154620 ko | ExtractionOCaml/bedrock2_dettman_multiplication | 0m38.88s | 2247616 ko || -0m31.01s || -1092996 ko | -79.75% | -48.62% 0m15.09s | 1793900 ko | ExtractionOCaml/solinas_reduction | 0m42.14s | 2682524 ko || -0m27.05s || -888624 ko | -64.19% | -33.12% 0m20.42s | 2272536 ko | ExtractionOCaml/with_bedrock2_unsaturated_solinas | 0m41.77s | 2536016 ko || -0m21.35s || -263480 ko | -51.11% | -10.38% N/A | N/A | fiat-bedrock2/src/p434_64.c | 0m17.54s | 395048 ko || -0m17.53s || -395048 ko | -100.00% | -100.00% N/A | N/A | fiat-bedrock2/src/p256_scalar_32.c | 0m16.44s | 582124 ko || -0m16.44s || -582124 ko | -100.00% | -100.00% N/A | N/A | fiat-bedrock2/src/secp256k1_montgomery_scalar_32.c | 0m16.26s | 549024 ko || -0m16.26s || -549024 ko | -100.00% | -100.00% 0m10.51s | 1436260 ko | ExtractionOCaml/dettman_multiplication.ml | 0m27.45s | 1986292 ko || -0m16.93s || -550032 ko | -61.71% | -27.69% N/A | N/A | fiat-bedrock2/src/secp256k1_montgomery_32.c | 0m15.96s | 545668 ko || -0m15.96s || -545668 ko | -100.00% | -100.00% N/A | N/A | fiat-bedrock2/src/curve25519_scalar_32.c | 0m15.83s | 561700 ko || -0m15.83s || -561700 ko | -100.00% | -100.00% N/A | N/A | fiat-bedrock2/src/p256_32.c | 0m14.52s | 527852 ko || -0m14.51s || -527852 ko | -100.00% | -100.00% N/A | N/A | fiat-bedrock2/src/p384_scalar_64.c | 0m10.63s | 248348 ko || -0m10.63s || -248348 ko | -100.00% | -100.00% N/A | N/A | fiat-bedrock2/src/p384_64.c | 0m08.94s | 247848 ko || -0m08.93s || -247848 ko | -100.00% | -100.00% N/A | N/A | fiat-bedrock2/src/p224_32.c | 0m08.81s | 359800 ko || -0m08.81s || -359800 ko | -100.00% | -100.00% 0m37.47s | 2612000 ko | ExtractionOCaml/bedrock2_word_by_word_montgomery | 0m43.94s | 2632436 ko || -0m06.46s || -20436 ko | -14.72% | -0.77% 3m20.10s | 3453808 ko | Rewriter/Passes/ArithWithCasts.vo | 3m24.42s | 3457324 ko || -0m04.32s || -3516 ko | -2.11% | -0.10% 2m00.29s | 2196836 ko | fiat-go/32/p384/p384.go | 1m56.07s | 2250852 ko || +0m04.22s || -54016 ko | +3.63% | -2.39% 1m53.86s | 2273356 ko | fiat-go/32/p384scalar/p384scalar.go | 1m58.07s | 2317828 ko || -0m04.20s || -44472 ko | -3.56% | -1.91% 0m04.01s | 1409008 ko | Bedrock/Everything.vo | N/A | N/A || +0m04.00s || 1409008 ko | ∞ | ∞ 0m37.42s | 138936 ko | fiat-json/src/p521_32.json | 0m33.89s | 133296 ko || +0m03.53s || 5640 ko | +10.41% | +4.23% 1m52.17s | 2415720 ko | fiat-json/src/p384_32.json | 1m54.90s | 2444672 ko || -0m02.73s || -28952 ko | -2.37% | -1.18% 0m59.21s | 3703536 ko | ExtractionOCaml/with_bedrock2_fiat_crypto | 0m56.68s | 3709508 ko || +0m02.53s || -5972 ko | +4.46% | -0.16% 0m41.38s | 2339900 ko | ExtractionOCaml/unsaturated_solinas | 0m39.29s | 2332668 ko || +0m02.09s || 7232 ko | +5.31% | +0.31% 0m41.08s | 2242080 ko | ExtractionOCaml/with_bedrock2_solinas_reduction | 0m38.77s | 2230172 ko || +0m02.30s || 11908 ko | +5.95% | +0.53% 0m40.80s | 2236980 ko | ExtractionOCaml/with_bedrock2_base_conversion | 0m38.63s | 2225172 ko || +0m02.16s || 11808 ko | +5.61% | +0.53% 0m40.77s | 2241348 ko | ExtractionOCaml/with_bedrock2_dettman_multiplication | 0m38.56s | 2228548 ko || +0m02.21s || 12800 ko | +5.73% | +0.57% 0m37.72s | 2045476 ko | ExtractionOCaml/base_conversion | 0m35.37s | 1885096 ko || +0m02.35s || 160380 ko | +6.64% | +8.50% 0m37.62s | 2056036 ko | ExtractionOCaml/saturated_solinas | 0m35.47s | 1905300 ko || +0m02.14s || 150736 ko | +6.06% | +7.91% N/A | N/A | fiat-bedrock2/src/p256_scalar_64.c | 0m02.70s | 101456 ko || -0m02.70s || -101456 ko | -100.00% | -100.00% N/A | N/A | fiat-bedrock2/src/secp256k1_montgomery_scalar_64.c | 0m02.68s | 99516 ko || -0m02.68s || -99516 ko | -100.00% | -100.00% N/A | N/A | fiat-bedrock2/src/secp256k1_montgomery_64.c | 0m02.32s | 98040 ko || -0m02.31s || -98040 ko | -100.00% | -100.00% N/A | N/A | fiat-bedrock2/src/curve25519_scalar_64.c | 0m02.27s | 93692 ko || -0m02.27s || -93692 ko | -100.00% | -100.00% 8m03.76s | 2662632 ko | Bedrock/End2End/X25519/GarageDoor.vo | 8m02.07s | 2662176 ko || +0m01.68s || 456 ko | +0.35% | +0.01% 1m53.86s | 2320964 ko | fiat-zig/src/p384_scalar_32.zig | 1m55.37s | 2195532 ko || -0m01.51s || 125432 ko | -1.30% | +5.71% 1m52.52s | 2476384 ko | Rewriter/Passes/ToFancyWithCasts.vo | 1m53.68s | 2477588 ko || -0m01.15s || -1204 ko | -1.02% | -0.04% 1m51.55s | 2290772 ko | fiat-c/src/p384_32.c | 1m52.81s | 2324820 ko || -0m01.26s || -34048 ko | -1.11% | -1.46% 0m57.46s | 3704644 ko | ExtractionOCaml/bedrock2_fiat_crypto | 0m55.94s | 3709900 ko || +0m01.52s || -5256 ko | +2.71% | -0.14% 0m54.38s | 2479396 ko | ExtractionJsOfOCaml/fiat_crypto.ml | 0m53.32s | 2488132 ko || +0m01.06s || -8736 ko | +1.98% | -0.35% 0m54.30s | 3722216 ko | ExtractionOCaml/fiat_crypto | 0m52.74s | 3709380 ko || +0m01.55s || 12836 ko | +2.95% | +0.34% 0m45.63s | 2725464 ko | ExtractionOCaml/bedrock2_solinas_reduction | 0m43.64s | 2703368 ko || +0m01.99s || 22096 ko | +4.56% | +0.81% 0m43.43s | 2635148 ko | ExtractionOCaml/word_by_word_montgomery | 0m41.62s | 2621852 ko || +0m01.81s || 13296 ko | +4.34% | +0.50% 0m43.37s | 2543396 ko | ExtractionOCaml/bedrock2_unsaturated_solinas | 0m41.39s | 2537124 ko || +0m01.97s || 6272 ko | +4.78% | +0.24% 0m40.54s | 2242020 ko | ExtractionOCaml/with_bedrock2_saturated_solinas | 0m38.65s | 2229328 ko || +0m01.89s || 12692 ko | +4.89% | +0.56% 0m39.79s | 2234368 ko | ExtractionOCaml/bedrock2_base_conversion | 0m38.26s | 2224780 ko || +0m01.53s || 9588 ko | +3.99% | +0.43% 0m39.08s | 2240544 ko | ExtractionOCaml/bedrock2_saturated_solinas | 0m38.06s | 2229884 ko || +0m01.01s || 10660 ko | +2.67% | +0.47% 0m37.58s | 2252428 ko | ExtractionOCaml/bedrock2_solinas_reduction.ml | 0m36.11s | 2263524 ko || +0m01.46s || -11096 ko | +4.07% | -0.49% 0m33.68s | 1740208 ko | ExtractionOCaml/perf_unsaturated_solinas | 0m31.87s | 1694436 ko || +0m01.80s || 45772 ko | +5.67% | +2.70% 0m33.59s | 2165180 ko | ExtractionOCaml/with_bedrock2_unsaturated_solinas.ml | 0m31.89s | 2166272 ko || +0m01.70s || -1092 ko | +5.33% | -0.05% N/A | N/A | fiat-bedrock2/src/p224_64.c | 0m01.80s | 95640 ko || -0m01.80s || -95640 ko | -100.00% | -100.00% N/A | N/A | fiat-bedrock2/src/p256_64.c | 0m01.78s | 91368 ko || -0m01.78s || -91368 ko | -100.00% | -100.00% N/A | N/A | fiat-bedrock2/src/secp256k1_dettman_32.c | 0m01.39s | 60176 ko || -0m01.38s || -60176 ko | -100.00% | -100.00% N/A | N/A | fiat-json/src/secp256k1_dettman_32.json | 0m01.28s | 48844 ko || -0m01.28s || -48844 ko | -100.00% | -100.00% N/A | N/A | fiat-go/32/secp256k1dettman/secp256k1dettman.go | 0m01.24s | 31380 ko || -0m01.24s || -31380 ko | -100.00% | -100.00% N/A | N/A | fiat-java/src/FiatSecp256K1Dettman.java | 0m01.21s | 33872 ko || -0m01.20s || -33872 ko | -100.00% | -100.00% N/A | N/A | fiat-c/src/secp256k1_dettman_32.c | 0m01.20s | 32624 ko || -0m01.19s || -32624 ko | -100.00% | -100.00% N/A | N/A | fiat-zig/src/secp256k1_dettman_32.zig | 0m01.20s | 31720 ko || -0m01.19s || -31720 ko | -100.00% | -100.00% N/A | N/A | fiat-rust/src/secp256k1_dettman_32.rs | 0m01.17s | 31344 ko || -0m01.16s || -31344 ko | -100.00% | -100.00% 4m37.50s | 2493852 ko | Bedrock/End2End/X25519/EdwardsXYZT.vo | 4m37.35s | 2490572 ko || +0m00.14s || 3280 ko | +0.05% | +0.13% 2m06.13s | 1391752 ko | Bedrock/End2End/X25519/Field25519.vo | 2m06.07s | 1386020 ko || +0m00.06s || 5732 ko | +0.04% | +0.41% 1m55.72s | 2461384 ko | fiat-json/src/p384_scalar_32.json | 1m56.57s | 2162248 ko || -0m00.84s || 299136 ko | -0.72% | +13.83% 1m54.09s | 2328976 ko | fiat-rust/src/p384_scalar_32.rs | 1m54.46s | 2298040 ko || -0m00.37s || 30936 ko | -0.32% | +1.34% 1m53.96s | 2264640 ko | fiat-c/src/p384_scalar_32.c | 1m54.64s | 2315720 ko || -0m00.67s || -51080 ko | -0.59% | -2.20% 1m52.88s | 2307516 ko | fiat-java/src/FiatP384.java | 1m53.85s | 2326772 ko || -0m00.96s || -19256 ko | -0.85% | -0.82% 1m52.26s | 2289988 ko | fiat-rust/src/p384_32.rs | 1m53.15s | 2291956 ko || -0m00.89s || -1968 ko | -0.78% | -0.08% 1m51.99s | 2321356 ko | fiat-zig/src/p384_32.zig | 1m52.56s | 2285520 ko || -0m00.56s || 35836 ko | -0.50% | +1.56% 1m50.27s | 2142016 ko | fiat-java/src/FiatP384Scalar.java | 1m50.35s | 2237492 ko || -0m00.07s || -95476 ko | -0.07% | -4.26% 1m31.28s | 2069580 ko | Fancy/Barrett256.vo | 1m30.31s | 2071284 ko || +0m00.96s || -1704 ko | +1.07% | -0.08% 1m30.61s | 1959592 ko | SlowPrimeSynthesisExamples.vo | 1m30.46s | 1949656 ko || +0m00.14s || 9936 ko | +0.16% | +0.50% 0m56.42s | 2599072 ko | ExtractionJsOfOCaml/with_bedrock2_fiat_crypto.ml | 0m55.43s | 2577872 ko || +0m00.99s || 21200 ko | +1.78% | +0.82% 0m56.24s | 832904 ko | Rewriter/RulesProofs.vo | 0m55.85s | 832184 ko || +0m00.39s || 720 ko | +0.69% | +0.08% 0m56.01s | 2599020 ko | ExtractionJsOfOCaml/bedrock2_fiat_crypto.ml | 0m55.34s | 2577860 ko || +0m00.66s || 21160 ko | +1.21% | +0.82% 0m55.93s | 2591660 ko | ExtractionOCaml/bedrock2_fiat_crypto.ml | 0m55.47s | 2582316 ko || +0m00.46s || 9344 ko | +0.82% | +0.36% 0m55.71s | 2590632 ko | ExtractionOCaml/with_bedrock2_fiat_crypto.ml | 0m56.27s | 2582520 ko || -0m00.56s || 8112 ko | -0.99% | +0.31% 0m54.11s | 2479772 ko | ExtractionOCaml/fiat_crypto.ml | 0m53.40s | 2488208 ko || +0m00.71s || -8436 ko | +1.32% | -0.33% 0m50.54s | 1088688 ko | Rewriter/Passes/MultiRetSplit.vo | 0m51.52s | 1089116 ko || -0m00.98s || -428 ko | -1.90% | -0.03% 0m46.64s | 1839612 ko | Fancy/Montgomery256.vo | 0m45.84s | 1884076 ko || +0m00.79s || -44464 ko | +1.74% | -2.35% 0m40.72s | 1474472 ko | Rewriter/Passes/Arith.vo | 0m41.24s | 1474564 ko || -0m00.52s || -92 ko | -1.26% | -0.00% 0m40.26s | 89412 ko | fiat-go/32/p521/p521.go | 0m40.48s | 89996 ko || -0m00.21s || -584 ko | -0.54% | -0.64% 0m38.32s | 192600 ko | fiat-bedrock2/src/p521_32.c | 0m38.14s | 191552 ko || +0m00.17s || 1048 ko | +0.47% | +0.54% 0m37.43s | 81368 ko | fiat-rust/src/p521_32.rs | 0m37.40s | 82428 ko || +0m00.03s || -1060 ko | +0.08% | -1.28% 0m37.26s | 82392 ko | fiat-c/src/p521_32.c | 0m37.43s | 79576 ko || -0m00.17s || 2816 ko | -0.45% | +3.53% 0m37.21s | 85776 ko | fiat-java/src/FiatP521.java | 0m37.36s | 83200 ko || -0m00.14s || 2576 ko | -0.40% | +3.09% 0m37.16s | 79880 ko | fiat-zig/src/p521_32.zig | 0m37.01s | 84328 ko || +0m00.14s || -4448 ko | +0.40% | -5.27% 0m37.01s | 2254764 ko | ExtractionOCaml/bedrock2_word_by_word_montgomery.ml | 0m36.23s | 2209256 ko || +0m00.78s || 45508 ko | +2.15% | +2.05% 0m36.11s | 2223820 ko | ExtractionOCaml/with_bedrock2_word_by_word_montgomery.ml | 0m36.20s | 2208892 ko || -0m00.09s || 14928 ko | -0.24% | +0.67% 0m35.73s | 2174540 ko | ExtractionOCaml/solinas_reduction.ml | 0m35.09s | 2145800 ko || +0m00.63s || 28740 ko | +1.82% | +1.33% 0m34.62s | 2145512 ko | ExtractionOCaml/word_by_word_montgomery.ml | 0m34.01s | 2117132 ko || +0m00.60s || 28380 ko | +1.79% | +1.34% 0m33.86s | 2166000 ko | ExtractionOCaml/bedrock2_unsaturated_solinas.ml | 0m33.09s | 2165020 ko || +0m00.76s || 980 ko | +2.32% | +0.04% 0m32.98s | 898452 ko | Rewriter/Passes/MulSplit.vo | 0m33.54s | 897384 ko || -0m00.56s || 1068 ko | -1.66% | +0.11% 0m32.19s | 1222428 ko | Bedrock/End2End/X25519/MontgomeryLadder.vo | 0m32.14s | 1220432 ko || +0m00.04s || 1996 ko | +0.15% | +0.16% 0m31.72s | 2092236 ko | ExtractionOCaml/unsaturated_solinas.ml | 0m31.03s | 2033016 ko || +0m00.68s || 59220 ko | +2.22% | +2.91% 0m31.24s | 1258424 ko | Bedrock/End2End/X25519/GarageDoorTop.vo | 0m30.97s | 1256816 ko || +0m00.26s || 1608 ko | +0.87% | +0.12% 0m30.23s | 2082056 ko | ExtractionOCaml/bedrock2_dettman_multiplication.ml | 0m29.49s | 2034984 ko || +0m00.74s || 47072 ko | +2.50% | +2.31% 0m29.54s | 2075228 ko | ExtractionOCaml/bedrock2_base_conversion.ml | 0m28.81s | 2027284 ko || +0m00.73s || 47944 ko | +2.53% | +2.36% 0m29.52s | 1481224 ko | StandaloneDebuggingExamples.vo | 0m29.94s | 1478968 ko || -0m00.42s || 2256 ko | -1.40% | +0.15% 0m29.38s | 2075096 ko | ExtractionOCaml/with_bedrock2_base_conversion.ml | 0m28.64s | 2027796 ko || +0m00.73s || 47300 ko | +2.58% | +2.33% 0m29.34s | 2069888 ko | ExtractionOCaml/with_bedrock2_saturated_solinas.ml | 0m28.56s | 2048480 ko || +0m00.78s || 21408 ko | +2.73% | +1.04% 0m29.30s | 2070080 ko | ExtractionOCaml/with_bedrock2_solinas_reduction.ml | 0m28.82s | 2047128 ko || +0m00.48s || 22952 ko | +1.66% | +1.12% 0m29.28s | 2054288 ko | ExtractionOCaml/with_bedrock2_dettman_multiplication.ml | 0m28.58s | 2047664 ko || +0m00.70s || 6624 ko | +2.44% | +0.32% 0m29.16s | 2070516 ko | ExtractionOCaml/bedrock2_saturated_solinas.ml | 0m28.51s | 2048116 ko || +0m00.64s || 22400 ko | +2.27% | +1.09% 0m27.55s | 1945716 ko | ExtractionOCaml/saturated_solinas.ml | 0m26.65s | 1912104 ko || +0m00.90s || 33612 ko | +3.37% | +1.75% 0m27.26s | 1954792 ko | ExtractionOCaml/base_conversion.ml | 0m26.63s | 1938284 ko || +0m00.63s || 16508 ko | +2.36% | +0.85% 0m25.05s | 1299504 ko | PerfTesting/PerfTestSearch.vo | 0m24.95s | 1301992 ko || +0m00.10s || -2488 ko | +0.40% | -0.19% 0m21.44s | 1907920 ko | ExtractionOCaml/perf_unsaturated_solinas.ml | 0m20.71s | 1833068 ko || +0m00.73s || 74852 ko | +3.52% | +4.08% 0m21.23s | 2436792 ko | ExtractionHaskell/bedrock2_fiat_crypto.hs | 0m21.16s | 2447800 ko || +0m00.07s || -11008 ko | +0.33% | -0.44% 0m21.23s | 2435776 ko | ExtractionHaskell/with_bedrock2_fiat_crypto.hs | 0m20.95s | 2447456 ko || +0m00.28s || -11680 ko | +1.33% | -0.47% 0m21.15s | 1899700 ko | ExtractionOCaml/perf_word_by_word_montgomery.ml | 0m20.67s | 1929640 ko || +0m00.47s || -29940 ko | +2.32% | -1.55% 0m20.96s | 2370116 ko | ExtractionHaskell/fiat_crypto.hs | 0m20.37s | 2340672 ko || +0m00.58s || 29444 ko | +2.89% | +1.25% 0m20.62s | 1114588 ko | PushButtonSynthesis/UnsaturatedSolinas.vo | 0m20.58s | 1117168 ko || +0m00.04s || -2580 ko | +0.19% | -0.23% 0m18.50s | 1115248 ko | PushButtonSynthesis/WordByWordMontgomery.vo | 0m18.50s | 1110356 ko || +0m00.00s || 4892 ko | +0.00% | +0.44% 0m18.44s | 1086396 ko | Bedrock/End2End/Poly1305/Field1305.vo | 0m18.46s | 1082940 ko || -0m00.01s || 3456 ko | -0.10% | +0.31% 0m17.32s | 2161028 ko | ExtractionHaskell/with_bedrock2_solinas_reduction.hs | 0m16.78s | 2114384 ko || +0m00.53s || 46644 ko | +3.21% | +2.20% 0m17.30s | 320652 ko | fiat-go/64/p434/p434.go | 0m16.86s | 344744 ko || +0m00.44s || -24092 ko | +2.60% | -6.98% 0m17.20s | 2162464 ko | ExtractionHaskell/bedrock2_solinas_reduction.hs | 0m16.88s | 2115404 ko || +0m00.32s || 47060 ko | +1.89% | +2.22% 0m17.15s | 385316 ko | fiat-json/src/p434_64.json | 0m17.12s | 354524 ko || +0m00.02s || 30792 ko | +0.17% | +8.68% 0m17.06s | 2147492 ko | ExtractionHaskell/with_bedrock2_word_by_word_montgomery.hs | 0m16.69s | 2095396 ko || +0m00.36s || 52096 ko | +2.21% | +2.48% 0m17.02s | 2146908 ko | ExtractionHaskell/bedrock2_word_by_word_montgomery.hs | 0m16.89s | 2095976 ko || +0m00.12s || 50932 ko | +0.76% | +2.42% 0m16.99s | 332764 ko | fiat-rust/src/p434_64.rs | 0m16.90s | 331544 ko || +0m00.08s || 1220 ko | +0.53% | +0.36% 0m16.89s | 1292064 ko | PerfTesting/PerfTestSearchPattern.vo | 0m16.87s | 1289552 ko || +0m00.01s || 2512 ko | +0.11% | +0.19% 0m16.82s | 319012 ko | fiat-zig/src/p434_64.zig | 0m16.88s | 332144 ko || -0m00.05s || -13132 ko | -0.35% | -3.95% 0m16.81s | 327236 ko | fiat-c/src/p434_64.c | 0m16.87s | 320400 ko || -0m00.06s || 6836 ko | -0.35% | +2.13% 0m16.26s | 2055032 ko | ExtractionHaskell/bedrock2_unsaturated_solinas.hs | 0m15.72s | 2031520 ko || +0m00.54s || 23512 ko | +3.43% | +1.15% 0m16.19s | 1096356 ko | Bedrock/Field/Translation/Proofs/Func.vo | 0m15.54s | 1092824 ko || +0m00.65s || 3532 ko | +4.18% | +0.32% 0m16.19s | 2058840 ko | ExtractionHaskell/solinas_reduction.hs | 0m16.10s | 2039476 ko || +0m00.08s || 19364 ko | +0.55% | +0.94% 0m16.17s | 2011948 ko | ExtractionHaskell/word_by_word_montgomery.hs | 0m15.98s | 1994732 ko || +0m00.19s || 17216 ko | +1.18% | +0.86% 0m15.99s | 2055016 ko | ExtractionHaskell/with_bedrock2_unsaturated_solinas.hs | 0m15.72s | 2032724 ko || +0m00.26s || 22292 ko | +1.71% | +1.09% 0m15.90s | 506520 ko | fiat-java/src/FiatSecp256K1MontgomeryScalar.java | 0m15.95s | 508156 ko || -0m00.04s || -1636 ko | -0.31% | -0.32% 0m15.84s | 527800 ko | fiat-json/src/p256_scalar_32.json | 0m15.92s | 550292 ko || -0m00.08s || -22492 ko | -0.50% | -4.08% 0m15.74s | 498240 ko | fiat-json/src/secp256k1_montgomery_scalar_32.json | 0m15.77s | 567600 ko || -0m00.02s || -69360 ko | -0.19% | -12.21% 0m15.73s | 497952 ko | fiat-java/src/FiatP256Scalar.java | 0m15.62s | 465356 ko || +0m00.11s || 32596 ko | +0.70% | +7.00% 0m15.68s | 480272 ko | fiat-go/32/p256scalar/p256scalar.go | 0m15.55s | 443840 ko || +0m00.12s || 36432 ko | +0.83% | +8.20% 0m15.65s | 490776 ko | fiat-c/src/p256_scalar_32.c | 0m15.55s | 480552 ko || +0m00.09s || 10224 ko | +0.64% | +2.12% 0m15.64s | 481120 ko | fiat-rust/src/p256_scalar_32.rs | 0m15.60s | 451844 ko || +0m00.04s || 29276 ko | +0.25% | +6.47% 0m15.61s | 494700 ko | fiat-go/32/secp256k1montgomeryscalar/secp256k1montgomeryscalar.go | 0m15.70s | 436556 ko || -0m00.08s || 58144 ko | -0.57% | +13.31% 0m15.59s | 495328 ko | fiat-json/src/secp256k1_montgomery_32.json | 0m15.64s | 553440 ko || -0m00.05s || -58112 ko | -0.31% | -10.50% 0m15.59s | 504192 ko | fiat-rust/src/secp256k1_montgomery_scalar_32.rs | 0m15.67s | 439980 ko || -0m00.08s || 64212 ko | -0.51% | +14.59% 0m15.58s | 489428 ko | fiat-zig/src/p256_scalar_32.zig | 0m15.73s | 439800 ko || -0m00.15s || 49628 ko | -0.95% | +11.28% 0m15.56s | 476852 ko | fiat-c/src/secp256k1_montgomery_scalar_32.c | 0m15.56s | 443348 ko || +0m00.00s || 33504 ko | +0.00% | +7.55% 0m15.55s | 496920 ko | fiat-zig/src/secp256k1_montgomery_scalar_32.zig | 0m15.51s | 501764 ko || +0m00.04s || -4844 ko | +0.25% | -0.96% 0m15.47s | 502448 ko | fiat-rust/src/secp256k1_montgomery_32.rs | 0m15.43s | 495976 ko || +0m00.04s || 6472 ko | +0.25% | +1.30% 0m15.45s | 1104192 ko | Bedrock/Field/Translation/Proofs/Cmd.vo | 0m15.31s | 1101560 ko || +0m00.13s || 2632 ko | +0.91% | +0.23% 0m15.38s | 440600 ko | fiat-java/src/FiatSecp256K1Montgomery.java | 0m15.48s | 504996 ko || -0m00.09s || -64396 ko | -0.64% | -12.75% 0m15.32s | 478516 ko | fiat-zig/src/secp256k1_montgomery_32.zig | 0m15.40s | 496520 ko || -0m00.08s || -18004 ko | -0.51% | -3.62% 0m15.31s | 494924 ko | fiat-go/32/secp256k1montgomery/secp256k1montgomery.go | 0m15.40s | 494840 ko || -0m00.08s || 84 ko | -0.58% | +0.01% 0m15.30s | 486492 ko | fiat-java/src/FiatCurve25519Scalar.java | 0m15.32s | 435568 ko || -0m00.01s || 50924 ko | -0.13% | +11.69% 0m15.29s | 1130412 ko | Bedrock/Field/Synthesis/New/Signature.vo | 0m15.34s | 1124752 ko || -0m00.05s || 5660 ko | -0.32% | +0.50% 0m15.28s | 1972964 ko | ExtractionHaskell/unsaturated_solinas.hs | 0m15.11s | 1940108 ko || +0m00.16s || 32856 ko | +1.12% | +1.69% 0m15.28s | 473416 ko | fiat-zig/src/curve25519_scalar_32.zig | 0m15.18s | 491132 ko || +0m00.09s || -17716 ko | +0.65% | -3.60% 0m15.27s | 485840 ko | fiat-go/32/curve25519scalar/curve25519scalar.go | 0m15.12s | 483372 ko || +0m00.15s || 2468 ko | +0.99% | +0.51% 0m15.24s | 477328 ko | fiat-c/src/secp256k1_montgomery_32.c | 0m15.32s | 494028 ko || -0m00.08s || -16700 ko | -0.52% | -3.38% 0m15.22s | 491884 ko | fiat-rust/src/curve25519_scalar_32.rs | 0m15.28s | 483372 ko || -0m00.05s || 8512 ko | -0.39% | +1.76% 0m15.16s | 1979980 ko | ExtractionHaskell/bedrock2_dettman_multiplication.hs | 0m14.86s | 1951840 ko || +0m00.30s || 28140 ko | +2.01% | +1.44% 0m15.12s | 1979668 ko | ExtractionHaskell/with_bedrock2_dettman_multiplication.hs | 0m14.89s | 1950340 ko || +0m00.22s || 29328 ko | +1.54% | +1.50% 0m15.03s | 485944 ko | fiat-c/src/curve25519_scalar_32.c | 0m15.00s | 450824 ko || +0m00.02s || 35120 ko | +0.19% | +7.79% 0m14.96s | 1975912 ko | ExtractionHaskell/bedrock2_base_conversion.hs | 0m14.62s | 1944152 ko || +0m00.34s || 31760 ko | +2.32% | +1.63% 0m14.93s | 1975456 ko | ExtractionHaskell/with_bedrock2_base_conversion.hs | 0m14.72s | 1945892 ko || +0m00.20s || 29564 ko | +1.42% | +1.51% 0m14.90s | 1940744 ko | ExtractionHaskell/bedrock2_saturated_solinas.hs | 0m14.72s | 1945412 ko || +0m00.17s || -4668 ko | +1.22% | -0.23% 0m14.82s | 1942936 ko | ExtractionHaskell/with_bedrock2_saturated_solinas.hs | 0m14.75s | 1946856 ko || +0m00.07s || -3920 ko | +0.47% | -0.20% 0m14.77s | 488968 ko | fiat-json/src/curve25519_scalar_32.json | 0m15.37s | 542368 ko || -0m00.59s || -53400 ko | -3.90% | -9.84% 0m14.74s | 486248 ko | fiat-rust/src/p256_32.rs | 0m14.69s | 480780 ko || +0m00.05s || 5468 ko | +0.34% | +1.13% 0m14.71s | 476972 ko | fiat-json/src/p256_32.json | 0m14.78s | 516540 ko || -0m00.06s || -39568 ko | -0.47% | -7.66% 0m14.57s | 482352 ko | fiat-go/32/p256/p256.go | 0m14.60s | 476800 ko || -0m00.02s || 5552 ko | -0.20% | +1.16% 0m14.50s | 485760 ko | fiat-zig/src/p256_32.zig | 0m14.58s | 485632 ko || -0m00.08s || 128 ko | -0.54% | +0.02% 0m14.46s | 1902592 ko | ExtractionHaskell/dettman_multiplication.hs | 0m14.18s | 1884012 ko || +0m00.28s || 18580 ko | +1.97% | +0.98% 0m14.43s | 480256 ko | fiat-c/src/p256_32.c | 0m14.49s | 478808 ko || -0m00.06s || 1448 ko | -0.41% | +0.30% 0m14.29s | 1894708 ko | ExtractionHaskell/base_conversion.hs | 0m13.88s | 1860840 ko || +0m00.40s || 33868 ko | +2.95% | +1.82% 0m14.27s | 491324 ko | fiat-java/src/FiatP256.java | 0m14.56s | 487596 ko || -0m00.29s || 3728 ko | -1.99% | +0.76% 0m14.26s | 1882348 ko | ExtractionHaskell/saturated_solinas.hs | 0m13.98s | 1872892 ko || +0m00.27s || 9456 ko | +2.00% | +0.50% 0m12.87s | 1551852 ko | Bedrock/Field/Synthesis/New/WordByWordMontgomery.vo | 0m12.92s | 1551400 ko || -0m00.05s || 452 ko | -0.38% | +0.02% 0m10.51s | 225240 ko | fiat-json/src/p384_scalar_64.json | 0m10.51s | 251020 ko || +0m00.00s || -25780 ko | +0.00% | -10.27% 0m10.42s | 199480 ko | fiat-go/64/p384scalar/p384scalar.go | 0m10.43s | 209852 ko || -0m00.00s || -10372 ko | -0.09% | -4.94% 0m10.41s | 204396 ko | fiat-c/src/p384_scalar_64.c | 0m10.43s | 194600 ko || -0m00.01s || 9796 ko | -0.19% | +5.03% 0m10.38s | 206196 ko | fiat-rust/src/p384_scalar_64.rs | 0m10.35s | 206736 ko || +0m00.03s || -540 ko | +0.28% | -0.26% 0m10.23s | 1004972 ko | BoundsPipeline.vo | 0m10.20s | 1000116 ko || +0m00.03s || 4856 ko | +0.29% | +0.48% 0m10.11s | 204688 ko | fiat-zig/src/p384_scalar_64.zig | 0m10.06s | 181992 ko || +0m00.04s || 22696 ko | +0.49% | +12.47% 0m09.00s | 238480 ko | fiat-json/src/p384_64.json | 0m09.05s | 231740 ko || -0m00.05s || 6740 ko | -0.55% | +2.90% 0m08.90s | 1248708 ko | Bedrock/End2End/X25519/MontgomeryLadderProperties.vo | 0m09.07s | 1246884 ko || -0m00.16s || 1824 ko | -1.87% | +0.14% 0m08.86s | 212388 ko | fiat-go/64/p384/p384.go | 0m08.92s | 209760 ko || -0m00.06s || 2628 ko | -0.67% | +1.25% 0m08.75s | 204100 ko | fiat-rust/src/p384_64.rs | 0m08.83s | 193404 ko || -0m00.08s || 10696 ko | -0.90% | +5.53% 0m08.71s | 190620 ko | fiat-c/src/p384_64.c | 0m08.77s | 192560 ko || -0m00.05s || -1940 ko | -0.68% | -1.00% 0m08.55s | 309040 ko | fiat-java/src/FiatP224.java | 0m08.53s | 309016 ko || +0m00.02s || 24 ko | +0.23% | +0.00% 0m08.50s | 304704 ko | fiat-rust/src/p224_32.rs | 0m08.55s | 295280 ko || -0m00.05s || 9424 ko | -0.58% | +3.19% 0m08.45s | 298032 ko | fiat-go/32/p224/p224.go | 0m08.37s | 272988 ko || +0m00.08s || 25044 ko | +0.95% | +9.17% 0m08.45s | 197948 ko | fiat-zig/src/p384_64.zig | 0m08.86s | 194272 ko || -0m00.41s || 3676 ko | -4.62% | +1.89% 0m08.42s | 281584 ko | fiat-zig/src/p224_32.zig | 0m08.34s | 304508 ko || +0m00.08s || -22924 ko | +0.95% | -7.52% 0m08.36s | 292080 ko | fiat-c/src/p224_32.c | 0m08.37s | 294116 ko || -0m00.00s || -2036 ko | -0.11% | -0.69% 0m08.34s | 321564 ko | fiat-json/src/p224_32.json | 0m08.65s | 345908 ko || -0m00.31s || -24344 ko | -3.58% | -7.03% 0m08.14s | 140200 ko | fiat-json/src/p448_solinas_32.json | 0m08.21s | 138688 ko || -0m00.07s || 1512 ko | -0.85% | +1.09% 0m08.01s | 996516 ko | PushButtonSynthesis/BaseConversion.vo | 0m07.95s | 989088 ko || +0m00.05s || 7428 ko | +0.75% | +0.75% 0m07.97s | 632644 ko | Rewriter/Passes/RelaxBitwidthAdcSbb.vo | 0m08.17s | 630336 ko || -0m00.20s || 2308 ko | -2.44% | +0.36% 0m07.93s | 79400 ko | fiat-rust/src/p448_solinas_32.rs | 0m07.96s | 81460 ko || -0m00.03s || -2060 ko | -0.37% | -2.52% 0m07.83s | 73844 ko | fiat-zig/src/p448_solinas_32.zig | 0m07.79s | 81336 ko || +0m00.04s || -7492 ko | +0.51% | -9.21% 0m07.79s | 78732 ko | fiat-c/src/p448_solinas_32.c | 0m07.86s | 79276 ko || -0m00.07s || -544 ko | -0.89% | -0.68% 0m07.46s | 971276 ko | PushButtonSynthesis/SmallExamples.vo | 0m07.72s | 968540 ko || -0m00.25s || 2736 ko | -3.36% | +0.28% 0m07.19s | 1016968 ko | PushButtonSynthesis/Primitives.vo | 0m07.14s | 1013600 ko || +0m00.05s || 3368 ko | +0.70% | +0.33% 0m06.28s | 993068 ko | PushButtonSynthesis/SolinasReduction.vo | 0m06.34s | 997904 ko || -0m00.05s || -4836 ko | -0.94% | -0.48% 0m06.22s | 616388 ko | Rewriter/Passes/NoSelect.vo | 0m06.31s | 616404 ko || -0m00.08s || -16 ko | -1.42% | -0.00% 0m06.12s | 59732 ko | fiat-go/64/p521/p521.go | 0m06.14s | 60028 ko || -0m00.01s || -296 ko | -0.32% | -0.49% 0m05.42s | 61860 ko | fiat-json/src/p521_64.json | 0m05.44s | 61936 ko || -0m00.02s || -76 ko | -0.36% | -0.12% 0m05.37s | 1135900 ko | Bedrock/Field/Synthesis/New/UnsaturatedSolinas.vo | 0m05.40s | 1127820 ko || -0m00.03s || 8080 ko | -0.55% | +0.71% 0m05.36s | 75076 ko | fiat-bedrock2/src/p521_64.c | 0m04.85s | 79172 ko || +0m00.51s || -4096 ko | +10.51% | -5.17% 0m05.36s | 44612 ko | fiat-c/src/p521_64.c | 0m05.40s | 44276 ko || -0m00.04s || 336 ko | -0.74% | +0.75% 0m05.31s | 44092 ko | fiat-rust/src/p521_64.rs | 0m05.35s | 43908 ko || -0m00.04s || 184 ko | -0.74% | +0.41% 0m05.30s | 44932 ko | fiat-zig/src/p521_64.zig | 0m05.30s | 45176 ko || +0m00.00s || -244 ko | +0.00% | -0.54% 0m05.23s | 996920 ko | PushButtonSynthesis/BarrettReduction.vo | 0m05.23s | 989348 ko || +0m00.00s || 7572 ko | +0.00% | +0.76% 0m05.11s | 1049968 ko | CLI.vo | 0m05.12s | 1052144 ko || -0m00.00s || -2176 ko | -0.19% | -0.20% 0m04.27s | 975384 ko | PushButtonSynthesis/DettmanMultiplication.vo | 0m04.20s | 973544 ko || +0m00.06s || 1840 ko | +1.66% | +0.18% 0m04.01s | 1004524 ko | Bedrock/Field/Translation/Proofs/ValidComputable/Cmd.vo | 0m04.04s | 1002656 ko || -0m00.03s || 1868 ko | -0.74% | +0.18% 0m03.92s | 986288 ko | PushButtonSynthesis/SaturatedSolinas.vo | 0m04.00s | 986032 ko || -0m00.08s || 256 ko | -2.00% | +0.02% 0m03.89s | 1260988 ko | Everything.vo | 0m03.84s | 1259420 ko || +0m00.05s || 1568 ko | +1.30% | +0.12% 0m03.65s | 981568 ko | PushButtonSynthesis/FancyMontgomeryReduction.vo | 0m03.66s | 985616 ko || -0m00.01s || -4048 ko | -0.27% | -0.41% 0m03.45s | 1232876 ko | PerfTesting/PerfTestPrint.vo | 0m03.43s | 1231896 ko || +0m00.02s || 980 ko | +0.58% | +0.07% 0m03.30s | 1009032 ko | Rewriter/PerfTesting/Core.vo | 0m03.25s | 993788 ko || +0m00.04s || 15244 ko | +1.53% | +1.53% 0m03.13s | 568440 ko | Rewriter/Passes/ArithWithRelaxedCasts.vo | 0m03.12s | 568404 ko || +0m00.00s || 36 ko | +0.32% | +0.00% 0m03.11s | 1008240 ko | StandaloneMonadicUtils.vo | 0m03.17s | 1006332 ko || -0m00.06s || 1908 ko | -1.89% | +0.18% 0m03.07s | 938864 ko | Bedrock/Field/Translation/Cmd.vo | 0m03.10s | 942432 ko || -0m00.03s || -3568 ko | -0.96% | -0.37% 0m03.04s | 1036936 ko | Bedrock/Standalone/StandaloneHaskellMain.vo | 0m03.05s | 1035024 ko || -0m00.00s || 1912 ko | -0.32% | +0.18% 0m03.04s | 1035364 ko | Bedrock/Standalone/StandaloneJsOfOCamlMain.vo | 0m02.91s | 1033368 ko || +0m00.12s || 1996 ko | +4.46% | +0.19% 0m03.03s | 1037124 ko | Bedrock/Standalone/StandaloneOCamlMain.vo | 0m03.05s | 1035300 ko || -0m00.02s || 1824 ko | -0.65% | +0.17% 0m03.02s | 1005396 ko | StandaloneHaskellMain.vo | 0m03.06s | 1004508 ko || -0m00.04s || 888 ko | -1.30% | +0.08% 0m02.99s | 996484 ko | Bedrock/Field/Translation/Proofs/ValidComputable/Func.vo | 0m02.97s | 994484 ko || +0m00.02s || 2000 ko | +0.67% | +0.20% 0m02.97s | 939444 ko | Bedrock/Field/Translation/Func.vo | 0m02.94s | 942808 ko || +0m00.03s || -3364 ko | +1.02% | -0.35% 0m02.97s | 575436 ko | Rewriter/Passes/AddAssocLeft.vo | 0m02.96s | 575508 ko || +0m00.01s || -72 ko | +0.33% | -0.01% 0m02.96s | 999680 ko | Bedrock/Field/Stringification/Stringification.vo | 0m02.94s | 997464 ko || +0m00.02s || 2216 ko | +0.68% | +0.22% 0m02.93s | 1013008 ko | StandaloneJsOfOCamlMain.vo | 0m02.93s | 1011048 ko || +0m00.00s || 1960 ko | +0.00% | +0.19% 0m02.89s | 1012680 ko | StandaloneOCamlMain.vo | 0m02.94s | 1010756 ko || -0m00.04s || 1924 ko | -1.70% | +0.19% 0m02.83s | 971240 ko | Bedrock/Field/Translation/Parameters/Defaults32.vo | 0m02.85s | 974972 ko || -0m00.02s || -3732 ko | -0.70% | -0.38% 0m02.82s | 971312 ko | Bedrock/Field/Translation/Parameters/Defaults64.vo | 0m02.83s | 974976 ko || -0m00.01s || -3664 ko | -0.35% | -0.37% 0m02.80s | 971184 ko | Bedrock/Field/Translation/Parameters/FE310.vo | 0m02.88s | 974956 ko || -0m00.08s || -3772 ko | -2.77% | -0.38% 0m02.79s | 963668 ko | Bedrock/Field/Translation/Parameters/Defaults.vo | 0m02.80s | 967484 ko || -0m00.00s || -3816 ko | -0.35% | -0.39% 0m02.77s | 989712 ko | Bedrock/Field/Synthesis/New/ComputedOp.vo | 0m02.79s | 993364 ko || -0m00.02s || -3652 ko | -0.71% | -0.36% 0m02.72s | 1022452 ko | Rewriter/PerfTesting/StandaloneOCamlMain.vo | 0m02.92s | 1021420 ko || -0m00.19s || 1032 ko | -6.84% | +0.10% 0m02.70s | 87024 ko | fiat-json/src/secp256k1_montgomery_scalar_64.json | 0m02.69s | 89792 ko || +0m00.01s || -2768 ko | +0.37% | -3.08% 0m02.69s | 88536 ko | fiat-json/src/p256_scalar_64.json | 0m02.70s | 87080 ko || -0m00.01s || 1456 ko | -0.37% | +1.67% 0m02.68s | 78056 ko | fiat-go/64/secp256k1montgomeryscalar/secp256k1montgomeryscalar.go | 0m02.65s | 77448 ko || +0m00.03s || 608 ko | +1.13% | +0.78% 0m02.64s | 566836 ko | Rewriter/Passes/FlattenThunkedRects.vo | 0m02.58s | 566824 ko || +0m00.06s || 12 ko | +2.32% | +0.00% 0m02.64s | 77940 ko | fiat-go/64/p256scalar/p256scalar.go | 0m02.65s | 77108 ko || -0m00.00s || 832 ko | -0.37% | +1.07% 0m02.64s | 74068 ko | fiat-rust/src/secp256k1_montgomery_scalar_64.rs | 0m02.62s | 73192 ko || +0m00.02s || 876 ko | +0.76% | +1.19% 0m02.63s | 71360 ko | fiat-c/src/p256_scalar_64.c | 0m02.62s | 70824 ko || +0m00.00s || 536 ko | +0.38% | +0.75% 0m02.63s | 71752 ko | fiat-rust/src/p256_scalar_64.rs | 0m02.66s | 72480 ko || -0m00.03s || -728 ko | -1.12% | -1.00% 0m02.62s | 70460 ko | fiat-zig/src/secp256k1_montgomery_scalar_64.zig | 0m02.62s | 69520 ko || +0m00.00s || 940 ko | +0.00% | +1.35% 0m02.61s | 74116 ko | fiat-c/src/secp256k1_montgomery_scalar_64.c | 0m02.61s | 73576 ko || +0m00.00s || 540 ko | +0.00% | +0.73% 0m02.57s | 72276 ko | fiat-zig/src/p256_scalar_64.zig | 0m02.61s | 70560 ko || -0m00.04s || 1716 ko | -1.53% | +2.43% 0m02.54s | 57268 ko | fiat-go/64/p448solinas/p448solinas.go | 0m02.52s | 57916 ko || +0m00.02s || -648 ko | +0.79% | -1.11% 0m02.43s | 87696 ko | fiat-json/src/secp256k1_montgomery_64.json | 0m02.48s | 89372 ko || -0m00.04s || -1676 ko | -2.01% | -1.87% 0m02.40s | 74332 ko | fiat-go/64/secp256k1montgomery/secp256k1montgomery.go | 0m02.41s | 73928 ko || -0m00.01s || 404 ko | -0.41% | +0.54% 0m02.38s | 70228 ko | fiat-c/src/secp256k1_montgomery_64.c | 0m02.36s | 72916 ko || +0m00.02s || -2688 ko | +0.84% | -3.68% 0m02.38s | 72360 ko | fiat-rust/src/secp256k1_montgomery_64.rs | 0m02.42s | 72692 ko || -0m00.04s || -332 ko | -1.65% | -0.45% 0m02.36s | 71032 ko | fiat-zig/src/secp256k1_montgomery_64.zig | 0m02.37s | 70800 ko || -0m00.01s || 232 ko | -0.42% | +0.32% 0m02.26s | 85160 ko | fiat-json/src/curve25519_scalar_64.json | 0m02.26s | 86724 ko || +0m00.00s || -1564 ko | +0.00% | -1.80% 0m02.23s | 69924 ko | fiat-c/src/curve25519_scalar_64.c | 0m02.19s | 69180 ko || +0m00.04s || 744 ko | +1.82% | +1.07% 0m02.22s | 70000 ko | fiat-zig/src/curve25519_scalar_64.zig | 0m02.22s | 68600 ko || +0m00.00s || 1400 ko | +0.00% | +2.04% 0m02.21s | 71756 ko | fiat-rust/src/curve25519_scalar_64.rs | 0m02.22s | 71176 ko || -0m00.01s || 580 ko | -0.45% | +0.81% 0m02.20s | 563992 ko | Rewriter/Passes/StripLiteralCasts.vo | 0m02.23s | 563936 ko || -0m00.02s || 56 ko | -1.34% | +0.00% 0m02.19s | 75236 ko | fiat-go/64/curve25519scalar/curve25519scalar.go | 0m02.23s | 72760 ko || -0m00.04s || 2476 ko | -1.79% | +3.40% 0m02.18s | 566468 ko | Rewriter/Passes/UnfoldValueBarrier.vo | 0m02.24s | 566448 ko || -0m00.06s || 20 ko | -2.67% | +0.00% 0m02.07s | 44876 ko | fiat-go/32/curve25519/curve25519.go | 0m02.08s | 43820 ko || -0m00.01s || 1056 ko | -0.48% | +2.40% 0m02.06s | 567120 ko | Rewriter/Passes/ToFancy.vo | 0m02.11s | 567120 ko || -0m00.04s || 0 ko | -2.36% | +0.00% 0m02.04s | 77844 ko | fiat-bedrock2/src/p448_solinas_64.c | 0m02.04s | 76924 ko || +0m00.00s || 920 ko | +0.00% | +1.19% 0m01.99s | 60264 ko | fiat-json/src/p448_solinas_64.json | 0m01.98s | 59236 ko || +0m00.01s || 1028 ko | +0.50% | +1.73% 0m01.94s | 42296 ko | fiat-rust/src/p448_solinas_64.rs | 0m01.92s | 43556 ko || +0m00.02s || -1260 ko | +1.04% | -2.89% 0m01.89s | 42540 ko | fiat-c/src/p448_solinas_64.c | 0m01.89s | 42128 ko || +0m00.00s || 412 ko | +0.00% | +0.97% 0m01.88s | 75780 ko | fiat-bedrock2/src/curve25519_32.c | 0m01.89s | 76316 ko || -0m00.01s || -536 ko | -0.52% | -0.70% 0m01.87s | 59136 ko | fiat-json/src/curve25519_32.json | 0m01.82s | 60668 ko || +0m00.05s || -1532 ko | +2.74% | -2.52% 0m01.85s | 85200 ko | fiat-json/src/p224_64.json | 0m01.76s | 88252 ko || +0m00.09s || -3052 ko | +5.11% | -3.45% 0m01.83s | 43660 ko | fiat-zig/src/p448_solinas_64.zig | 0m01.90s | 42244 ko || -0m00.06s || 1416 ko | -3.68% | +3.35% 0m01.81s | 87256 ko | fiat-json/src/p256_64.json | 0m01.78s | 86468 ko || +0m00.03s || 788 ko | +1.68% | +0.91% 0m01.78s | 41772 ko | fiat-zig/src/curve25519_32.zig | 0m01.78s | 41288 ko || +0m00.00s || 484 ko | +0.00% | +1.17% 0m01.77s | 40472 ko | fiat-c/src/curve25519_32.c | 0m01.75s | 40936 ko || +0m00.02s || -464 ko | +1.14% | -1.13% 0m01.77s | 73372 ko | fiat-go/64/p256/p256.go | 0m01.72s | 71408 ko || +0m00.05s || 1964 ko | +2.90% | +2.75% 0m01.76s | 73804 ko | fiat-go/64/p224/p224.go | 0m01.80s | 73552 ko || -0m00.04s || 252 ko | -2.22% | +0.34% 0m01.76s | 41092 ko | fiat-rust/src/curve25519_32.rs | 0m01.73s | 41988 ko || +0m00.03s || -896 ko | +1.73% | -2.13% 0m01.74s | 68544 ko | fiat-c/src/p224_64.c | 0m01.74s | 69316 ko || +0m00.00s || -772 ko | +0.00% | -1.11% 0m01.74s | 41964 ko | fiat-java/src/FiatCurve25519.java | 0m01.76s | 42384 ko || -0m00.02s || -420 ko | -1.13% | -0.99% 0m01.74s | 69496 ko | fiat-rust/src/p256_64.rs | 0m01.70s | 71088 ko || +0m00.04s || -1592 ko | +2.35% | -2.23% 0m01.74s | 69712 ko | fiat-zig/src/p224_64.zig | 0m01.74s | 69472 ko || +0m00.00s || 240 ko | +0.00% | +0.34% 0m01.73s | 71260 ko | fiat-rust/src/p224_64.rs | 0m01.74s | 68428 ko || -0m00.01s || 2832 ko | -0.57% | +4.13% 0m01.71s | 69352 ko | fiat-c/src/p256_64.c | 0m01.71s | 68088 ko || +0m00.00s || 1264 ko | +0.00% | +1.85% 0m01.71s | 69644 ko | fiat-zig/src/p256_64.zig | 0m01.72s | 70072 ko || -0m00.01s || -428 ko | -0.58% | -0.61% 0m01.62s | 617916 ko | CompilersTestCases.vo | 0m01.67s | 614276 ko || -0m00.04s || 3640 ko | -2.99% | +0.59% 0m00.92s | 571620 ko | Rewriter/All.vo | 0m00.96s | 566648 ko || -0m00.03s || 4972 ko | -4.16% | +0.87% 0m00.91s | 456024 ko | Rewriter/Rules.vo | 0m00.84s | 458148 ko || +0m00.07s || -2124 ko | +8.33% | -0.46% 0m00.59s | 37240 ko | fiat-go/64/curve25519/curve25519.go | 0m00.61s | 36360 ko || -0m00.02s || 880 ko | -3.27% | +2.42% 0m00.49s | 43716 ko | fiat-bedrock2/src/curve25519_64.c | 0m00.48s | 43712 ko || +0m00.01s || 4 ko | +2.08% | +0.00% 0m00.49s | 40156 ko | fiat-json/src/curve25519_64.json | 0m00.51s | 39776 ko || -0m00.02s || 380 ko | -3.92% | +0.95% 0m00.48s | 31880 ko | fiat-c/src/curve25519_64.c | 0m00.47s | 31008 ko || +0m00.01s || 872 ko | +2.12% | +2.81% 0m00.48s | 31544 ko | fiat-zig/src/curve25519_64.zig | 0m00.46s | 30612 ko || +0m00.01s || 932 ko | +4.34% | +3.04% 0m00.45s | 109596 ko | ExtractionOCaml/bedrock2_fiat_crypto.cmi | 0m00.45s | 109588 ko || +0m00.00s || 8 ko | +0.00% | +0.00% 0m00.45s | 107072 ko | ExtractionOCaml/fiat_crypto.cmi | 0m00.48s | 107100 ko || -0m00.02s || -28 ko | -6.24% | -0.02% 0m00.44s | 106988 ko | ExtractionOCaml/bedrock2_solinas_reduction.cmi | 0m00.45s | 106772 ko || -0m00.01s || 216 ko | -2.22% | +0.20% 0m00.44s | 104996 ko | ExtractionOCaml/solinas_reduction.cmi | 0m00.39s | 104852 ko || +0m00.04s || 144 ko | +12.82% | +0.13% 0m00.44s | 31724 ko | fiat-rust/src/curve25519_64.rs | 0m00.45s | 31432 ko || -0m00.01s || 292 ko | -2.22% | +0.92% 0m00.43s | 108484 ko | ExtractionOCaml/bedrock2_word_by_word_montgomery.cmi | 0m00.44s | 108552 ko || -0m00.01s || -68 ko | -2.27% | -0.06% 0m00.42s | 108792 ko | ExtractionOCaml/bedrock2_unsaturated_solinas.cmi | 0m00.43s | 108796 ko || -0m00.01s || -4 ko | -2.32% | -0.00% 0m00.42s | 106548 ko | ExtractionOCaml/with_bedrock2_solinas_reduction.cmi | 0m00.41s | 106696 ko || +0m00.01s || -148 ko | +2.43% | -0.13% 0m00.42s | 108120 ko | ExtractionOCaml/with_bedrock2_unsaturated_solinas.cmi | 0m00.41s | 108344 ko || +0m00.01s || -224 ko | +2.43% | -0.20% N/A | N/A | ExtractionOCaml/with_bedrock2_word_by_word_montgomery.cmi | 0m00.42s | 108592 ko || -0m00.42s || -108592 ko | -100.00% | -100.00% 0m00.41s | 106848 ko | ExtractionOCaml/bedrock2_saturated_solinas.cmi | 0m00.41s | 106912 ko || +0m00.00s || -64 ko | +0.00% | -0.05% 0m00.41s | 105788 ko | ExtractionOCaml/unsaturated_solinas.cmi | 0m00.42s | 106072 ko || -0m00.01s || -284 ko | -2.38% | -0.26% 0m00.41s | 107060 ko | ExtractionOCaml/with_bedrock2_base_conversion.cmi | 0m00.44s | 107368 ko || -0m00.03s || -308 ko | -6.81% | -0.28% 0m00.41s | 107376 ko | ExtractionOCaml/with_bedrock2_dettman_multiplication.cmi | 0m00.41s | 107572 ko || +0m00.00s || -196 ko | +0.00% | -0.18% 0m00.41s | 110628 ko | ExtractionOCaml/with_bedrock2_fiat_crypto.cmi | 0m00.47s | 110712 ko || -0m00.06s || -84 ko | -12.76% | -0.07% 0m00.41s | 106768 ko | ExtractionOCaml/with_bedrock2_saturated_solinas.cmi | 0m00.42s | 106780 ko || -0m00.01s || -12 ko | -2.38% | -0.01% 0m00.40s | 106936 ko | ExtractionOCaml/bedrock2_base_conversion.cmi | 0m00.40s | 107096 ko || +0m00.00s || -160 ko | +0.00% | -0.14% 0m00.40s | 104704 ko | ExtractionOCaml/saturated_solinas.cmi | 0m00.42s | 104776 ko || -0m00.01s || -72 ko | -4.76% | -0.06% 0m00.40s | 105528 ko | ExtractionOCaml/word_by_word_montgomery.cmi | 0m00.39s | 105420 ko || +0m00.01s || 108 ko | +2.56% | +0.10% N/A | N/A | fiat-json/src/curve25519_solinas_64.json | 0m00.40s | 46008 ko || -0m00.40s || -46008 ko | -100.00% | -100.00% 0m00.39s | 107648 ko | ExtractionOCaml/bedrock2_dettman_multiplication.cmi | 0m00.42s | 107532 ko || -0m00.02s || 116 ko | -7.14% | +0.10% N/A | N/A | ExtractionOCaml/dettman_multiplication.cmi | 0m00.39s | 104104 ko || -0m00.39s || -104104 ko | -100.00% | -100.00% N/A | N/A | fiat-c/src/curve25519_solinas_64.c | 0m00.39s | 42048 ko || -0m00.39s || -42048 ko | -100.00% | -100.00% N/A | N/A | fiat-go/64/curve25519solinas/curve25519solinas.go | 0m00.39s | 42940 ko || -0m00.39s || -42940 ko | -100.00% | -100.00% N/A | N/A | fiat-zig/src/curve25519_solinas_64.zig | 0m00.39s | 42164 ko || -0m00.39s || -42164 ko | -100.00% | -100.00% 0m00.38s | 105176 ko | ExtractionOCaml/base_conversion.cmi | 0m00.38s | 105136 ko || +0m00.00s || 40 ko | +0.00% | +0.03% 0m00.38s | 48488 ko | fiat-bedrock2/src/curve25519_solinas_64.c | 0m00.41s | 47512 ko || -0m00.02s || 976 ko | -7.31% | +2.05% N/A | N/A | fiat-rust/src/curve25519_solinas_64.rs | 0m00.38s | 42472 ko || -0m00.38s || -42472 ko | -100.00% | -100.00% 0m00.30s | 29796 ko | fiat-go/32/poly1305/poly1305.go | 0m00.29s | 29576 ko || +0m00.01s || 220 ko | +3.44% | +0.74% 0m00.26s | 38628 ko | fiat-bedrock2/src/poly1305_32.c | 0m00.24s | 38816 ko || +0m00.02s || -188 ko | +8.33% | -0.48% 0m00.24s | 28816 ko | fiat-java/src/FiatPoly1305.java | 0m00.21s | 28308 ko || +0m00.03s || 508 ko | +14.28% | +1.79% 0m00.24s | 35080 ko | fiat-json/src/poly1305_32.json | 0m00.24s | 34920 ko || +0m00.00s || 160 ko | +0.00% | +0.45% 0m00.22s | 28316 ko | fiat-c/src/poly1305_32.c | 0m00.25s | 28008 ko || -0m00.03s || 308 ko | -12.00% | +1.09% N/A | N/A | fiat-go/64/secp256k1dettman/secp256k1dettman.go | 0m00.22s | 28508 ko || -0m00.22s || -28508 ko | -100.00% | -100.00% 0m00.22s | 28476 ko | fiat-rust/src/poly1305_32.rs | 0m00.24s | 28484 ko || -0m00.01s || -8 ko | -8.33% | -0.02% N/A | N/A | fiat-bedrock2/src/secp256k1_dettman_64.c | 0m00.21s | 33628 ko || -0m00.21s || -33628 ko | -100.00% | -100.00% 0m00.21s | 28428 ko | fiat-zig/src/poly1305_32.zig | 0m00.21s | 28344 ko || +0m00.00s || 84 ko | +0.00% | +0.29% N/A | N/A | fiat-c/src/secp256k1_dettman_64.c | 0m00.19s | 24484 ko || -0m00.19s || -24484 ko | -100.00% | -100.00% N/A | N/A | fiat-json/src/secp256k1_dettman_64.json | 0m00.19s | 28256 ko || -0m00.19s || -28256 ko | -100.00% | -100.00% N/A | N/A | fiat-rust/src/secp256k1_dettman_64.rs | 0m00.18s | 24736 ko || -0m00.18s || -24736 ko | -100.00% | -100.00% N/A | N/A | fiat-zig/src/secp256k1_dettman_64.zig | 0m00.18s | 24564 ko || -0m00.18s || -24564 ko | -100.00% | -100.00% 0m00.17s | 29876 ko | fiat-go/64/poly1305/poly1305.go | 0m00.18s | 29452 ko || -0m00.00s || 424 ko | -5.55% | +1.43% 0m00.16s | 61844 ko | ExtractionOCaml/perf_unsaturated_solinas.cmi | 0m00.18s | 61920 ko || -0m00.01s || -76 ko | -11.11% | -0.12% 0m00.16s | 61640 ko | ExtractionOCaml/perf_word_by_word_montgomery.cmi | 0m00.18s | 61720 ko || -0m00.01s || -80 ko | -11.11% | -0.12% 0m00.13s | 26840 ko | fiat-c/src/poly1305_64.c | 0m00.13s | 26520 ko || +0m00.00s || 320 ko | +0.00% | +1.20% 0m00.13s | 31516 ko | fiat-json/src/poly1305_64.json | 0m00.12s | 31220 ko || +0m00.01s || 296 ko | +8.33% | +0.94% 0m00.13s | 27116 ko | fiat-rust/src/poly1305_64.rs | 0m00.13s | 26708 ko || +0m00.00s || 408 ko | +0.00% | +1.52% 0m00.12s | 26824 ko | fiat-zig/src/poly1305_64.zig | 0m00.12s | 26772 ko || +0m00.00s || 52 ko | +0.00% | +0.19% 0m00.11s | 31524 ko | fiat-bedrock2/src/poly1305_64.c | 0m00.13s | 31756 ko || -0m00.02s || -232 ko | -15.38% | -0.73% 0m00.00s | 4632 ko | ExtractionJsOfOCaml/bedrock2_fiat_crypto.cmi | 0m00.00s | 4636 ko || +0m00.00s || -4 ko | N/A | -0.08% 0m00.00s | 4508 ko | ExtractionJsOfOCaml/fiat_crypto.cmi | 0m00.00s | 4448 ko || +0m00.00s || 60 ko | N/A | +1.34% 0m00.00s | 4496 ko | ExtractionJsOfOCaml/with_bedrock2_fiat_crypto.cmi | 0m00.00s | 4368 ko || +0m00.00s || 128 ko | N/A | +2.93% ``` </p> </details>
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>
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>
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>
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>
No description provided.