diff --git a/dev/bench/data.js b/dev/bench/data.js index 24c23bafe..fc234787a 100644 --- a/dev/bench/data.js +++ b/dev/bench/data.js @@ -1,5 +1,5 @@ window.BENCHMARK_DATA = { - "lastUpdate": 1725275589273, + "lastUpdate": 1725438442600, "repoUrl": "https://github.com/rems-project/cerberus", "entries": { "CN Benchmarks": [ @@ -2958,6 +2958,750 @@ window.BENCHMARK_DATA = { "unit": "Seconds" } ] + }, + { + "commit": { + "author": { + "email": "dc_mak@outlook.com", + "name": "Dhruv Makwana", + "username": "dc-mak" + }, + "committer": { + "email": "dc-mak@users.noreply.github.com", + "name": "Dhruv Makwana", + "username": "dc-mak" + }, + "distinct": true, + "id": "21b567000649aa6969696982a23e328d142a061c", + "message": "CN VIP: Add support for ptr diff\n\nThis commit adds support for the VIP ptr diff rule, which requires that\nboth pointers come from the same live allocation.\n\nTo accommodate this without excessive annotation burden, it does so by\n(a) inferring `base <= (u64) p <= (u64) p + sizeof(ct) <= base + len`\nfor `{ base, len } = allocs[(alloc_id)p]` from `Owned(p)` and (b)\naccepting an `Owned(p)` when looking for a `Alloc(q)` if `(alloc_id)\nq == (alloc_id) p` and `(u64) p <= (u64) q <= (u64) p + sizeof(ct)`.\n\nIt only does this for pointer difference for now (later, it will be used\nfor pointer relational operators, copy_alloc_id and integer to pointer\nround-trip casts) with a special flag `alloc_or_owned` in the resource\ninference algorithm.", + "timestamp": "2024-09-04T09:22:12+01:00", + "tree_id": "18cfd12576d1123f5b07d7c9cab71cfb7c655fcc", + "url": "https://github.com/rems-project/cerberus/commit/21b567000649aa6969696982a23e328d142a061c" + }, + "date": 1725438441332, + "tool": "customSmallerIsBetter", + "benches": [ + { + "name": "./cn/unsupported_union.error.c", + "value": 0.03, + "unit": "Seconds" + }, + { + "name": "./cn/bitwise_and_type_left.error.c", + "value": 0.02, + "unit": "Seconds" + }, + { + "name": "./cn/bitwise_compl_type.error.c", + "value": 0.05, + "unit": "Seconds" + }, + { + "name": "./cn/missing_resource.error.c", + "value": 0.16, + "unit": "Seconds" + }, + { + "name": "./cn/multifile/f.c", + "value": 1.03, + "unit": "Seconds" + }, + { + "name": "./cn/multifile/g.c", + "value": 0.8, + "unit": "Seconds" + }, + { + "name": "./cn/spec_null_shift.error.c", + "value": 0.2, + "unit": "Seconds" + }, + { + "name": "./cn/swap_pair.c", + "value": 0.51, + "unit": "Seconds" + }, + { + "name": "./cn/bitwise_and_type_right.error.c", + "value": 0.05, + "unit": "Seconds" + }, + { + "name": "./cn/bad_constructor_user.error.c", + "value": 0.04, + "unit": "Seconds" + }, + { + "name": "./cn/use_enum.c", + "value": 0.08, + "unit": "Seconds" + }, + { + "name": "./cn/mask_ptr.c", + "value": 0.66, + "unit": "Seconds" + }, + { + "name": "./cn/bad_record2.error.c", + "value": 0.02, + "unit": "Seconds" + }, + { + "name": "./cn/ownership_at_negative_index.c", + "value": 0.18, + "unit": "Seconds" + }, + { + "name": "./cn/cn_inline.c", + "value": 0.64, + "unit": "Seconds" + }, + { + "name": "./cn/type_synonym.c", + "value": 0.16, + "unit": "Seconds" + }, + { + "name": "./cn/copy_alloc_id.c", + "value": 0.44, + "unit": "Seconds" + }, + { + "name": "./cn/division_with_constants.c", + "value": 0.38, + "unit": "Seconds" + }, + { + "name": "./cn/forloop_with_decl.c", + "value": 0.41, + "unit": "Seconds" + }, + { + "name": "./cn/pointer_to_char_cast.error.c", + "value": 0.44, + "unit": "Seconds" + }, + { + "name": "./cn/incomplete_match.error.c", + "value": 0.04, + "unit": "Seconds" + }, + { + "name": "./cn/extract_verbose.c", + "value": 0.35, + "unit": "Seconds" + }, + { + "name": "./cn/copy_alloc_id.error.c", + "value": 0.42, + "unit": "Seconds" + }, + { + "name": "./cn/merging_arrays.error.c", + "value": 0.63, + "unit": "Seconds" + }, + { + "name": "./cn/unary_negation.error.c", + "value": 0.03, + "unit": "Seconds" + }, + { + "name": "./cn/pred_def01.c", + "value": 0.2, + "unit": "Seconds" + }, + { + "name": "./cn/has_alloc_id_ptr_eq2.error.c", + "value": 0.28, + "unit": "Seconds" + }, + { + "name": "./cn/bad_function_call.error.c", + "value": 0.04, + "unit": "Seconds" + }, + { + "name": "./cn/cnfunction_mismatched_args4.error.c", + "value": 0.04, + "unit": "Seconds" + }, + { + "name": "./cn/division_return_sign.error.c", + "value": 0.06, + "unit": "Seconds" + }, + { + "name": "./cn/mod.c", + "value": 0.23, + "unit": "Seconds" + }, + { + "name": "./cn/duplicate_pattern_var.error.c", + "value": 0.02, + "unit": "Seconds" + }, + { + "name": "./cn/bad_col.error.c", + "value": 0.02, + "unit": "Seconds" + }, + { + "name": "./cn/pred_def02.c", + "value": 0.11, + "unit": "Seconds" + }, + { + "name": "./cn/failing_precond.error.c", + "value": 0.04, + "unit": "Seconds" + }, + { + "name": "./cn/b_xor.c", + "value": 0.15, + "unit": "Seconds" + }, + { + "name": "./cn/unconstrained_ptr_eq.error.c", + "value": 0.26, + "unit": "Seconds" + }, + { + "name": "./cn/spec_after_curly_brace.error.c", + "value": 0.02, + "unit": "Seconds" + }, + { + "name": "./cn/get_from_arr.c", + "value": 0.31, + "unit": "Seconds" + }, + { + "name": "./cn/shift_diff_sz.c", + "value": 0.27, + "unit": "Seconds" + }, + { + "name": "./cn/bitwise_compl_precedence.c", + "value": 0.06, + "unit": "Seconds" + }, + { + "name": "./cn/ptr_diff2.error.c", + "value": 0.29, + "unit": "Seconds" + }, + { + "name": "./cn/append.c", + "value": 5.62, + "unit": "Seconds" + }, + { + "name": "./cn/reverse.error.c", + "value": 2.81, + "unit": "Seconds" + }, + { + "name": "./cn/map_set.error.c", + "value": 0.02, + "unit": "Seconds" + }, + { + "name": "./cn/mod_return_size.error.c", + "value": 3.43, + "unit": "Seconds" + }, + { + "name": "./cn/simplify_add_0.c", + "value": 0.7, + "unit": "Seconds" + }, + { + "name": "./cn/reverse.c", + "value": 2.34, + "unit": "Seconds" + }, + { + "name": "./cn/fun_addrs_cn_stmt.c", + "value": 0.27, + "unit": "Seconds" + }, + { + "name": "./cn/implies_associativity.c", + "value": 0.06, + "unit": "Seconds" + }, + { + "name": "./cn/gnu_types_compatible.c", + "value": 0.48, + "unit": "Seconds" + }, + { + "name": "./cn/duplicate_datatype_var.error.c", + "value": 0.02, + "unit": "Seconds" + }, + { + "name": "./cn/implies3.error.c", + "value": 0.04, + "unit": "Seconds" + }, + { + "name": "./cn/simplify_array_shift.c", + "value": 1.16, + "unit": "Seconds" + }, + { + "name": "./cn/inconsistent2.c", + "value": 0.12, + "unit": "Seconds" + }, + { + "name": "./cn/enum_and_and.c", + "value": 0.29, + "unit": "Seconds" + }, + { + "name": "./cn/pointer_to_unsigned_int_cast.error.c", + "value": 0.2, + "unit": "Seconds" + }, + { + "name": "./cn/has_alloc_id.c", + "value": 0.44, + "unit": "Seconds" + }, + { + "name": "./cn/arrow_access.c", + "value": 0.42, + "unit": "Seconds" + }, + { + "name": "./cn/doubling.c", + "value": 0.38, + "unit": "Seconds" + }, + { + "name": "./cn/match.c", + "value": 0.24, + "unit": "Seconds" + }, + { + "name": "./cn/swap.c", + "value": 0.51, + "unit": "Seconds" + }, + { + "name": "./cn/fun_ptr_extern.c", + "value": 1.73, + "unit": "Seconds" + }, + { + "name": "./cn/list_literal_type.error.c", + "value": 0.02, + "unit": "Seconds" + }, + { + "name": "./cn/pointer_to_int_cast.error.c", + "value": 0.12, + "unit": "Seconds" + }, + { + "name": "./cn/alloc_token.c", + "value": 0.09, + "unit": "Seconds" + }, + { + "name": "./cn/ghost_pointer_to_bitvec_cast.c", + "value": 0.29, + "unit": "Seconds" + }, + { + "name": "./cn/division_casting.c", + "value": 0.2, + "unit": "Seconds" + }, + { + "name": "./cn/simple_loop.c", + "value": 0.24, + "unit": "Seconds" + }, + { + "name": "./cn/magic_comment_not_closed.c", + "value": 0.06, + "unit": "Seconds" + }, + { + "name": "./cn/bad_recursion.error.c", + "value": 0.02, + "unit": "Seconds" + }, + { + "name": "./cn/inconsistent.error.c", + "value": 0.03, + "unit": "Seconds" + }, + { + "name": "./cn/implies.c", + "value": 0.19, + "unit": "Seconds" + }, + { + "name": "./cn/void_star_arg.c", + "value": 1.06, + "unit": "Seconds" + }, + { + "name": "./cn/mod_by_0.error.c", + "value": 0.23, + "unit": "Seconds" + }, + { + "name": "./cn/redundant_pattern.error.c", + "value": 0.04, + "unit": "Seconds" + }, + { + "name": "./cn/ptr_diff2.c", + "value": 0.27, + "unit": "Seconds" + }, + { + "name": "./cn/division.c", + "value": 0.24, + "unit": "Seconds" + }, + { + "name": "./cn/inconsistent.c", + "value": 0.14, + "unit": "Seconds" + }, + { + "name": "./cn/missing_resource_indirect.error.c", + "value": 0.19, + "unit": "Seconds" + }, + { + "name": "./cn/mod_casting.c", + "value": 0.2, + "unit": "Seconds" + }, + { + "name": "./cn/split_case.c", + "value": 1.29, + "unit": "Seconds" + }, + { + "name": "./cn/left_shift_const.c", + "value": 0.39, + "unit": "Seconds" + }, + { + "name": "./cn/disj_nonnull.c", + "value": 0.42, + "unit": "Seconds" + }, + { + "name": "./cn/struct_updates2.error.c", + "value": 0.02, + "unit": "Seconds" + }, + { + "name": "./cn/mergesort.c", + "value": 11.3, + "unit": "Seconds" + }, + { + "name": "./cn/unconstrained_ptr_eq2.error.c", + "value": 0.26, + "unit": "Seconds" + }, + { + "name": "./cn/has_alloc_id_ptr_eq.error.c", + "value": 0.28, + "unit": "Seconds" + }, + { + "name": "./cn/cnfunction_mismatched_args1.error.c", + "value": 0.03, + "unit": "Seconds" + }, + { + "name": "./cn/lexer_hack_parse.error.c", + "value": 0.02, + "unit": "Seconds" + }, + { + "name": "./cn/bitwise_and.c", + "value": 0.14, + "unit": "Seconds" + }, + { + "name": "./cn/tree_rev01.c", + "value": 1.55, + "unit": "Seconds" + }, + { + "name": "./cn/division_return_size.error.c", + "value": 0.39, + "unit": "Seconds" + }, + { + "name": "./cn/cnfunction_mismatched_args2.error.c", + "value": 0.04, + "unit": "Seconds" + }, + { + "name": "./cn/tag_defs.c", + "value": 0.13, + "unit": "Seconds" + }, + { + "name": "./cn/bitwise_compl.c", + "value": 0.14, + "unit": "Seconds" + }, + { + "name": "./cn/division_precedence.c", + "value": 0.44, + "unit": "Seconds" + }, + { + "name": "./cn/pointer_to_intptr_t_cast.c", + "value": 0.18, + "unit": "Seconds" + }, + { + "name": "./cn/division_by_0.error.c", + "value": 0.22, + "unit": "Seconds" + }, + { + "name": "./cn/pointer_to_char_cast.c", + "value": 0.35, + "unit": "Seconds" + }, + { + "name": "./cn/builtin_ctz.c", + "value": 1.13, + "unit": "Seconds" + }, + { + "name": "./cn/gnu_ffs.c", + "value": 0.41, + "unit": "Seconds" + }, + { + "name": "./cn/increments.c", + "value": 0.59, + "unit": "Seconds" + }, + { + "name": "./cn/gnu_ctz.c", + "value": 0.28, + "unit": "Seconds" + }, + { + "name": "./cn/max_min_consts.c", + "value": 0.16, + "unit": "Seconds" + }, + { + "name": "./cn/gnu_case_ranges.c", + "value": 0.34, + "unit": "Seconds" + }, + { + "name": "./cn/builtin_ctz_val.c", + "value": 0.61, + "unit": "Seconds" + }, + { + "name": "./cn/has_alloc_id_ptr_neq.c", + "value": 0.5, + "unit": "Seconds" + }, + { + "name": "./cn/bad_resource_var.error.c", + "value": 0.26, + "unit": "Seconds" + }, + { + "name": "./cn/arith_type.error.c", + "value": 0.03, + "unit": "Seconds" + }, + { + "name": "./cn/use_typedef.c", + "value": 0.12, + "unit": "Seconds" + }, + { + "name": "./cn/fun_ptr_three_opts.c", + "value": 3.24, + "unit": "Seconds" + }, + { + "name": "./cn/has_alloc_id.error.c", + "value": 0.06, + "unit": "Seconds" + }, + { + "name": "./cn/unary_negation.c", + "value": 0.07, + "unit": "Seconds" + }, + { + "name": "./cn/mutual_rec/mutual_rec.c", + "value": 16.69, + "unit": "Seconds" + }, + { + "name": "./cn/list_rev01.c", + "value": 1.69, + "unit": "Seconds" + }, + { + "name": "./cn/implies2.error.c", + "value": 0.19, + "unit": "Seconds" + }, + { + "name": "./cn/memcpy.c", + "value": 1.11, + "unit": "Seconds" + }, + { + "name": "./cn/mod_with_constants.c", + "value": 0.37, + "unit": "Seconds" + }, + { + "name": "./cn/cnfunction_mismatched_args3.error.c", + "value": 0.03, + "unit": "Seconds" + }, + { + "name": "./cn/tree16/as_mutual_dt/tree16.c", + "value": 12.4, + "unit": "Seconds" + }, + { + "name": "./cn/tree16/as_partial_map/tree16.c", + "value": 6.47, + "unit": "Seconds" + }, + { + "name": "./cn/tree16/as_auto_mutual_dt/tree16.error.c", + "value": 0.02, + "unit": "Seconds" + }, + { + "name": "./cn/pred_def04.c", + "value": 0.08, + "unit": "Seconds" + }, + { + "name": "./cn/and_or_precedence.error.c", + "value": 0.29, + "unit": "Seconds" + }, + { + "name": "./cn/bad_record.error.c", + "value": 0.02, + "unit": "Seconds" + }, + { + "name": "./cn/assert_on_toplevel.error.c", + "value": 0.02, + "unit": "Seconds" + }, + { + "name": "./cn/ptr_diff.c", + "value": 0.82, + "unit": "Seconds" + }, + { + "name": "./cn/mod_precedence.c", + "value": 0.43, + "unit": "Seconds" + }, + { + "name": "./cn/implies_precedence.c", + "value": 0.19, + "unit": "Seconds" + }, + { + "name": "./cn/unsupported_flexible_array_member.error.c", + "value": 0.02, + "unit": "Seconds" + }, + { + "name": "./cn/pointer_to_uintptr_t_cast.c", + "value": 0.18, + "unit": "Seconds" + }, + { + "name": "./cn/spec_null_shift.c", + "value": 0.23, + "unit": "Seconds" + }, + { + "name": "./cn/has_alloc_id_ptr_neq.error.c", + "value": 0.27, + "unit": "Seconds" + }, + { + "name": "./cn/b_or.c", + "value": 0.15, + "unit": "Seconds" + }, + { + "name": "./cn/pred_def03.error.c", + "value": 0.02, + "unit": "Seconds" + }, + { + "name": "./cn/get_from_array.c", + "value": 0.73, + "unit": "Seconds" + }, + { + "name": "./cn/gnu_choose.c", + "value": 0.32, + "unit": "Seconds" + }, + { + "name": "./cn/struct_updates.error.c", + "value": 0.03, + "unit": "Seconds" + }, + { + "name": "./cn/failing_postcond.error.c", + "value": 0.16, + "unit": "Seconds" + }, + { + "name": "./cn/fun_ptr_known.c", + "value": 1.44, + "unit": "Seconds" + }, + { + "name": "./cn/mod_return_sign.error.c", + "value": 0.06, + "unit": "Seconds" + }, + { + "name": "./cn/alloc_create.c", + "value": 0.17, + "unit": "Seconds" + }, + { + "name": "./cn/block_type.c", + "value": 0.24, + "unit": "Seconds" + } + ] } ] }