Mavryk_benchmarks_proto_alpha.Interpreter_workload
module Size = Mavryk_protocol_alpha.Protocol.Gas_input_size
val equal_id :
Mavryk_base.TzPervasives.String.t ->
Mavryk_base.TzPervasives.String.t ->
bool
type instruction_name =
| N_IDrop
| N_IDup
| N_ISwap
| N_IPush
| N_IUnit
| N_ICons_pair
| N_ICar
| N_ICdr
| N_IUnpair
| N_ICons_some
| N_ICons_none
| N_IIf_none
| N_IOpt_map_none
| N_IOpt_map_some
| N_ILeft
| N_IRight
| N_IIf_left
| N_ICons_list
| N_INil
| N_IIf_cons
| N_IList_map
| N_IList_iter
| N_IIter
| N_IList_size
| N_IEmpty_set
| N_ISet_iter
| N_ISet_mem
| N_ISet_update
| N_ISet_size
| N_IEmpty_map
| N_IMap_map
| N_IMap_iter
| N_IMap_mem
| N_IMap_get
| N_IMap_update
| N_IMap_get_and_update
| N_IMap_size
| N_IEmpty_big_map
| N_IBig_map_mem
| N_IBig_map_get
| N_IBig_map_update
| N_IBig_map_get_and_update
| N_IConcat_string
| N_IConcat_string_pair
| N_ISlice_string
| N_IString_size
| N_IConcat_bytes
| N_IConcat_bytes_pair
| N_ISlice_bytes
| N_IBytes_size
| N_IOr_bytes
| N_IAnd_bytes
| N_IXor_bytes
| N_INot_bytes
| N_ILsl_bytes
| N_ILsr_bytes
| N_IBytes_nat
| N_INat_bytes
| N_IBytes_int
| N_IInt_bytes
| N_IAdd_seconds_to_timestamp
| N_IAdd_timestamp_to_seconds
| N_ISub_timestamp_seconds
| N_IDiff_timestamps
| N_IAdd_tez
| N_ISub_tez
| N_ISub_tez_legacy
| N_IMul_teznat
| N_IMul_nattez
| N_IEdiv_teznat
| N_IEdiv_tez
| N_IOr
| N_IAnd
| N_IXor
| N_INot
| N_IIs_nat
| N_INeg
| N_IAbs_int
| N_IInt_nat
| N_IAdd_int
| N_IAdd_nat
| N_ISub_int
| N_IMul_int
| N_IMul_nat
| N_IEdiv_int
| N_IEdiv_nat
| N_ILsl_nat
| N_ILsr_nat
| N_IOr_nat
| N_IAnd_nat
| N_IAnd_int_nat
| N_IXor_nat
| N_INot_int
| N_IIf
| N_ILoop_in
| N_ILoop_out
| N_ILoop_left_in
| N_ILoop_left_out
| N_IDip
| N_IExec
| N_IApply
| N_ILambda_lam
| N_ILambda_lamrec
| N_IFailwith
| N_ICompare
| N_IEq
| N_INeq
| N_ILt
| N_IGt
| N_ILe
| N_IGe
| N_IAddress
| N_IContract
| N_ITransfer_tokens
| N_IImplicit_account
| N_ICreate_contract
| N_ISet_delegate
| N_INow
| N_IMin_block_time
| N_IBalance
| N_ILevel
| N_IView
| N_ICheck_signature_ed25519
| N_ICheck_signature_secp256k1
| N_ICheck_signature_p256
| N_ICheck_signature_bls
| N_IHash_key
| N_IPack
| N_IUnpack
| N_IBlake2b
| N_ISha256
| N_ISha512
| N_ISource
| N_ISender
| N_ISelf
| N_ISelf_address
| N_IAmount
| N_ISapling_empty_state
| N_ISapling_verify_update
| N_IDig
| N_IDug
| N_IDipN
| N_IDropN
| N_IChainId
| N_INever
| N_IVoting_power
| N_ITotal_voting_power
| N_IKeccak
| N_ISha3
| N_IAdd_bls12_381_g1
| N_IAdd_bls12_381_g2
| N_IAdd_bls12_381_fr
| N_IMul_bls12_381_g1
| N_IMul_bls12_381_g2
| N_IMul_bls12_381_fr
| N_INeg_bls12_381_g1
| N_INeg_bls12_381_g2
| N_INeg_bls12_381_fr
| N_IMul_bls12_381_fr_z
| N_IMul_bls12_381_z_fr
| N_IInt_bls12_381_z_fr
| N_IPairing_check_bls12_381
| N_IComb
| N_IUncomb
| N_IComb_get
| N_IComb_set
| N_IDupN
| N_ITicket
| N_IRead_ticket
| N_ISplit_ticket
| N_IJoin_tickets
| N_IHalt
| N_ILog
| N_IOpen_chest
| N_IEmit
val string_of_instruction_name : instruction_name -> string
val string_of_continuation_name : continuation_name -> string
val string_of_instr_or_cont : instr_or_cont_name -> string
type args = arg list
val nullary : args
val pp_arg : Stdlib.Format.formatter -> arg -> unit
val pp_args : Stdlib.Format.formatter -> arg list -> unit
type t = ir_sized_step list
val ir_sized_step : instruction_name -> args -> ir_sized_step
val cont_sized_step : continuation_name -> args -> ir_sized_step
val all_instructions : instruction_name list
val all_continuations : continuation_name list
val instruction_name_encoding :
instruction_name Mavryk_base.TzPervasives.Data_encoding.encoding
val continuation_name_encoding :
continuation_name Mavryk_base.TzPervasives.Data_encoding.encoding
val args_encoding : arg list Mavryk_base.TzPervasives.Data_encoding.encoding
val instr_or_cont_name_encoding :
instr_or_cont_name Mavryk_base.TzPervasives.Data_encoding.encoding
val ir_sized_step_encoding :
ir_sized_step Mavryk_base.TzPervasives.Data_encoding.encoding
val encoding :
ir_sized_step list Mavryk_base.TzPervasives.Data_encoding.encoding
module Instructions : sig ... end
module Control : sig ... end
val extract_compare_sized_step :
'a. 'a Mavryk_protocol_alpha.Protocol.Script_typed_ir.comparable_ty ->
'a ->
'a ->
ir_sized_step
val extract_ir_sized_step :
'bef_top 'bef 'res_top 'res. Mavryk_protocol_alpha.Protocol.Alpha_context.t ->
('bef_top, 'bef, 'res_top, 'res)
Mavryk_protocol_alpha.Protocol.Script_typed_ir.kinstr ->
('bef_top * 'bef) ->
ir_sized_step
val extract_control_trace :
('bef_top, 'bef, 'aft_top, 'aft)
Mavryk_protocol_alpha.Protocol.Script_typed_ir.continuation ->
ir_sized_step
Stop_bench
gets raised when a IFailwith
would be the next instruction. This allows us to recover the full execution trace, including the trace of the IFailwith
.
The actual benchmark will follow the same execution branch, but instead will raise an error
which will be ignored. Thus it is safe to end a benchmark with IFailwith
, but timings are expected to be different from ending with IHalt
. This means that, if we choose to include this behavior in any benchmark, IFailwith
must be benched.
val extract_deps :
Mavryk_raw_protocol_alpha.Alpha_context.context ->
Mavryk_raw_protocol_alpha.Script_typed_ir.step_constants ->
('bef_top, 'bef) Mavryk_protocol_alpha.Protocol.Script_typed_ir.stack_ty ->
('bef_top0, 'bef0, 'aft_top, 'aft)
Mavryk_protocol_alpha.Protocol.Script_typed_ir.kinstr ->
('bef_top1 * 'bef1) ->
ir_sized_step list
val extract_deps_continuation :
Mavryk_raw_protocol_alpha.Alpha_context.context ->
Mavryk_raw_protocol_alpha.Script_typed_ir.step_constants ->
('bef_top, 'bef) Mavryk_protocol_alpha.Protocol.Script_typed_ir.stack_ty ->
('bef_top0, 'bef0, 'aft_top, 'aft)
Mavryk_protocol_alpha.Protocol.Script_typed_ir.continuation ->
('bef_top1 * 'bef1) ->
ir_sized_step list
val sized_step_to_sparse_vec :
ir_sized_step ->
Mavryk_benchmark.Sparse_vec.String.t
val trace_to_sparse_vec :
ir_sized_step list ->
Mavryk_benchmark.Sparse_vec.String.t