:- module benchmarking.
:- pragma termination_info((benchmarking.report_stats), finite(0, []), cannot_loop).
:- pragma termination_info((benchmarking.report_full_memory_stats), finite(0, []), cannot_loop).
:- pragma termination_info(benchmarking.report_memory_attribution((builtin.in), (builtin.di), (builtin.uo)), finite(0, [no, yes, no]), cannot_loop).
:- pragma termination_info(benchmarking.report_memory_attribution((builtin.in)), finite(0, [no]), cannot_loop).
:- pragma termination_info(benchmarking.benchmark_det((pred((builtin.in), (builtin.out)) is det), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(benchmarking.benchmark_det((pred((builtin.in), (builtin.out)) is cc_multi), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(benchmarking.benchmark_func((func((builtin.in)) = (builtin.out) is det), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(benchmarking.benchmark_det_io((pred((builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.out), (builtin.di), (builtin.uo), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(benchmarking.benchmark_nondet((pred((builtin.in), (builtin.out)) is nondet), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(benchmarking.turn_off_profiling((builtin.di), (builtin.uo)), finite(0, [yes, no]), cannot_loop).
:- pragma termination_info(benchmarking.turn_on_profiling((builtin.di), (builtin.uo)), finite(0, [yes, no]), cannot_loop).
:- pragma termination_info((benchmarking.turn_off_profiling), finite(0, []), cannot_loop).
:- pragma termination_info((benchmarking.turn_on_profiling), finite(0, []), cannot_loop).
:- pragma termination_info(benchmarking.turn_off_call_profiling((builtin.di), (builtin.uo)), finite(0, [yes, no]), cannot_loop).
:- pragma termination_info(benchmarking.turn_on_call_profiling((builtin.di), (builtin.uo)), finite(0, [yes, no]), cannot_loop).
:- pragma termination_info((benchmarking.turn_off_call_profiling), finite(0, []), cannot_loop).
:- pragma termination_info((benchmarking.turn_on_call_profiling), finite(0, []), cannot_loop).
:- pragma termination_info(benchmarking.turn_off_time_profiling((builtin.di), (builtin.uo)), finite(0, [yes, no]), cannot_loop).
:- pragma termination_info(benchmarking.turn_on_time_profiling((builtin.di), (builtin.uo)), finite(0, [yes, no]), cannot_loop).
:- pragma termination_info((benchmarking.turn_off_time_profiling), finite(0, []), cannot_loop).
:- pragma termination_info((benchmarking.turn_on_time_profiling), finite(0, []), cannot_loop).
:- pragma termination_info(benchmarking.turn_off_heap_profiling((builtin.di), (builtin.uo)), finite(0, [yes, no]), cannot_loop).
:- pragma termination_info(benchmarking.turn_on_heap_profiling((builtin.di), (builtin.uo)), finite(0, [yes, no]), cannot_loop).
:- pragma termination_info((benchmarking.turn_off_heap_profiling), finite(0, []), cannot_loop).
:- pragma termination_info((benchmarking.turn_on_heap_profiling), finite(0, []), cannot_loop).
:- pragma termination_info(benchmarking.write_out_trace_counts((builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, cannot_loop).
:- pragma termination_info(benchmarking.log_threadscope_message((builtin.in), (builtin.di), (builtin.uo)), infinite, cannot_loop).
:- pragma exceptions(predicate, (benchmarking.report_stats), 0, 0, will_not_throw).
:- pragma exceptions(predicate, (benchmarking.report_full_memory_stats), 0, 0, will_not_throw).
:- pragma exceptions(predicate, (benchmarking.report_memory_attribution), 3, 0, will_not_throw).
:- pragma exceptions(predicate, (benchmarking.report_memory_attribution), 1, 0, will_not_throw).
:- pragma exceptions(predicate, (benchmarking.benchmark_det), 5, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (benchmarking.benchmark_det), 5, 1, may_throw(user_exception)).
:- pragma exceptions(predicate, (benchmarking.benchmark_func), 5, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (benchmarking.benchmark_det_io), 7, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (benchmarking.benchmark_nondet), 5, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (benchmarking.turn_off_profiling), 2, 0, will_not_throw).
:- pragma exceptions(predicate, (benchmarking.turn_on_profiling), 2, 0, will_not_throw).
:- pragma exceptions(predicate, (benchmarking.turn_off_profiling), 0, 0, will_not_throw).
:- pragma exceptions(predicate, (benchmarking.turn_on_profiling), 0, 0, will_not_throw).
:- pragma exceptions(predicate, (benchmarking.turn_off_call_profiling), 2, 0, will_not_throw).
:- pragma exceptions(predicate, (benchmarking.turn_on_call_profiling), 2, 0, will_not_throw).
:- pragma exceptions(predicate, (benchmarking.turn_off_call_profiling), 0, 0, will_not_throw).
:- pragma exceptions(predicate, (benchmarking.turn_on_call_profiling), 0, 0, will_not_throw).
:- pragma exceptions(predicate, (benchmarking.turn_off_time_profiling), 2, 0, will_not_throw).
:- pragma exceptions(predicate, (benchmarking.turn_on_time_profiling), 2, 0, will_not_throw).
:- pragma exceptions(predicate, (benchmarking.turn_off_time_profiling), 0, 0, will_not_throw).
:- pragma exceptions(predicate, (benchmarking.turn_on_time_profiling), 0, 0, will_not_throw).
:- pragma exceptions(predicate, (benchmarking.turn_off_heap_profiling), 2, 0, will_not_throw).
:- pragma exceptions(predicate, (benchmarking.turn_on_heap_profiling), 2, 0, will_not_throw).
:- pragma exceptions(predicate, (benchmarking.turn_off_heap_profiling), 0, 0, will_not_throw).
:- pragma exceptions(predicate, (benchmarking.turn_on_heap_profiling), 0, 0, will_not_throw).
:- pragma exceptions(predicate, (benchmarking.write_out_trace_counts), 4, 0, will_not_throw).
:- pragma exceptions(predicate, (benchmarking.log_threadscope_message), 3, 0, will_not_throw).
