:- module benchmarking.
:- use_module builtin, int, private_builtin, std_util.
:- type (benchmarking:int_reference)
	--->	int_reference((builtin:c_pointer))
	.
:- pragma foreign_import_module("C", benchmarking).
:- pragma foreign_proc("C", benchmarking:report_stats, [will_not_call_mercury, not_thread_safe, not_tabled_for_io], "
	ML_report_stats();
").
:- pragma foreign_proc("C", benchmarking:report_full_memory_stats, [will_not_call_mercury, not_thread_safe, not_tabled_for_io], "
#ifdef	MR_MPROF_PROFILE_MEMORY
	ML_report_full_memory_stats();
#endif
").
:- 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: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).
