Mavryk_benchmarks_proto_001_PtAtLas.Interpreter_workloadmodule Size = Mavryk_protocol_001_PtAtLas.Protocol.Gas_input_sizeval equal_id :
Mavryk_base.TzPervasives.String.t ->
Mavryk_base.TzPervasives.String.t ->
booltype 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_IEmitval string_of_instruction_name : instruction_name -> stringval string_of_continuation_name : continuation_name -> stringval string_of_instr_or_cont : instr_or_cont_name -> stringtype args = arg listval nullary : argsval pp_arg : Stdlib.Format.formatter -> arg -> unitval pp_args : Stdlib.Format.formatter -> arg list -> unittype t = ir_sized_step listval ir_sized_step : instruction_name -> args -> ir_sized_stepval cont_sized_step : continuation_name -> args -> ir_sized_stepval all_instructions : instruction_name listval all_continuations : continuation_name listval instruction_name_encoding :
instruction_name Mavryk_base.TzPervasives.Data_encoding.encodingval continuation_name_encoding :
continuation_name Mavryk_base.TzPervasives.Data_encoding.encodingval args_encoding : arg list Mavryk_base.TzPervasives.Data_encoding.encodingval instr_or_cont_name_encoding :
instr_or_cont_name Mavryk_base.TzPervasives.Data_encoding.encodingval ir_sized_step_encoding :
ir_sized_step Mavryk_base.TzPervasives.Data_encoding.encodingval encoding :
ir_sized_step list Mavryk_base.TzPervasives.Data_encoding.encodingmodule Instructions : sig ... endmodule Control : sig ... endval extract_compare_sized_step :
'a. 'a Mavryk_protocol_001_PtAtLas.Protocol.Script_typed_ir.comparable_ty ->
'a ->
'a ->
ir_sized_stepval extract_ir_sized_step :
'bef_top 'bef 'res_top 'res. Mavryk_protocol_001_PtAtLas.Protocol.Alpha_context.t ->
('bef_top, 'bef, 'res_top, 'res)
Mavryk_protocol_001_PtAtLas.Protocol.Script_typed_ir.kinstr ->
('bef_top * 'bef) ->
ir_sized_stepval extract_control_trace :
('bef_top, 'bef, 'aft_top, 'aft)
Mavryk_protocol_001_PtAtLas.Protocol.Script_typed_ir.continuation ->
ir_sized_stepStop_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_001_PtAtLas.Alpha_context.context ->
Mavryk_raw_protocol_001_PtAtLas.Script_typed_ir.step_constants ->
('bef_top, 'bef)
Mavryk_protocol_001_PtAtLas.Protocol.Script_typed_ir.stack_ty ->
('bef_top0, 'bef0, 'aft_top, 'aft)
Mavryk_protocol_001_PtAtLas.Protocol.Script_typed_ir.kinstr ->
('bef_top1 * 'bef1) ->
ir_sized_step listval extract_deps_continuation :
Mavryk_raw_protocol_001_PtAtLas.Alpha_context.context ->
Mavryk_raw_protocol_001_PtAtLas.Script_typed_ir.step_constants ->
('bef_top, 'bef)
Mavryk_protocol_001_PtAtLas.Protocol.Script_typed_ir.stack_ty ->
('bef_top0, 'bef0, 'aft_top, 'aft)
Mavryk_protocol_001_PtAtLas.Protocol.Script_typed_ir.continuation ->
('bef_top1 * 'bef1) ->
ir_sized_step listval sized_step_to_sparse_vec :
ir_sized_step ->
Mavryk_benchmark.Sparse_vec.String.tval trace_to_sparse_vec :
ir_sized_step list ->
Mavryk_benchmark.Sparse_vec.String.t