:- module profiling_builtin. :- use_module builtin, private_builtin, std_util. :- type (profiling_builtin:proc_static). :- pragma foreign_type(il, (profiling_builtin:proc_static), "class [mscorlib]System.Object"). :- pragma foreign_type(c, (profiling_builtin:proc_static), "MR_ProcStatic *"). :- type (profiling_builtin:proc_dynamic). :- pragma foreign_type(il, (profiling_builtin:proc_dynamic), "class [mscorlib]System.Object"). :- pragma foreign_type(c, (profiling_builtin:proc_dynamic), "MR_ProcDynamic *"). :- type (profiling_builtin:call_site_dynamic). :- pragma foreign_type(il, (profiling_builtin:call_site_dynamic), "class [mscorlib]System.Object"). :- pragma foreign_type(c, (profiling_builtin:call_site_dynamic), "MR_CallSiteDynamic *"). :- pragma foreign_import_module("C", profiling_builtin). :- pragma foreign_proc("C", profiling_builtin:prepare_for_normal_call(N :: (builtin:in)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ #ifdef MR_DEEP_PROFILING MR_CallSiteDynamic *csd; MR_ProcDynamic *pd; MR_CallSiteDynamic *child_csd; MR_enter_instrumentation(); csd = MR_current_call_site_dynamic; MR_deep_assert(csd, NULL, csd != NULL); pd = csd->MR_csd_callee_ptr; MR_deep_assert(csd, NULL, pd != NULL); child_csd = pd->MR_pd_call_site_ptr_ptrs[N]; #ifdef MR_DEEP_PROFILING_STATISTICS if (child_csd == NULL) { MR_deep_prof_prep_normal_new++; } else { MR_deep_prof_prep_normal_old++; } #endif if (child_csd == NULL) { MR_new_call_site_dynamic(child_csd); pd->MR_pd_call_site_ptr_ptrs[N] = child_csd; } MR_next_call_site_dynamic = child_csd; MR_leave_instrumentation(); #else MR_fatal_error(\"prepare_for_normal_call: deep profiling not enabled\"); #endif }"). :- pragma foreign_proc("C", profiling_builtin:prepare_for_special_call(CSN :: (builtin:in), TypeInfo :: (builtin:in)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ #ifdef MR_DEEP_PROFILING MR_CallSiteDynamic *csd; MR_ProcDynamic *pd; MR_CallSiteDynList *csdlist; #ifdef MR_DEEP_PROFILING_MOVE_TO_FRONT_LISTS MR_CallSiteDynList *prev = NULL; #endif MR_TypeCtorInfo type_ctor_info; MR_TypeInfo type_info; void *void_key; MR_enter_instrumentation(); csd = MR_current_call_site_dynamic; MR_deep_assert(csd, NULL, csd != NULL); pd = csd->MR_csd_callee_ptr; MR_deep_assert(csd, NULL, pd != NULL); type_info = (MR_TypeInfo) TypeInfo; type_ctor_info = MR_TYPEINFO_GET_TYPE_CTOR_INFO(type_info); void_key = (void *) type_ctor_info; MR_search_csdlist(csdlist, prev, pd, CSN, void_key); MR_maybe_deep_profile_update_special_history(); #ifdef MR_DEEP_PROFILING_STATISTICS if (csdlist != NULL) { MR_deep_prof_prep_special_old++; } else { MR_deep_prof_prep_special_new++; } #endif if (csdlist != NULL) { MR_next_call_site_dynamic = csdlist->MR_csdlist_call_site; } else { MR_CallSiteDynamic *newcsd; MR_new_call_site_dynamic(newcsd); MR_make_and_link_csdlist(csdlist, newcsd, pd, CSN, void_key); MR_next_call_site_dynamic = newcsd; } MR_leave_instrumentation(); #else MR_fatal_error( \"prepare_for_special_call: deep profiling not enabled\"); #endif }"). :- pragma foreign_proc("C", profiling_builtin:prepare_for_ho_call(CSN :: (builtin:in), Closure :: (builtin:in)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ #ifdef MR_DEEP_PROFILING MR_CallSiteDynamic *csd; MR_ProcDynamic *pd; MR_Closure *closure; MR_CallSiteDynList *csdlist; void *void_key; #ifdef MR_DEEP_PROFILING_MOVE_TO_FRONT_LISTS MR_CallSiteDynList *prev = NULL; #endif MR_enter_instrumentation(); closure = (MR_Closure *) Closure; csd = MR_current_call_site_dynamic; MR_deep_assert(csd, NULL, csd != NULL); pd = csd->MR_csd_callee_ptr; MR_deep_assert(csd, NULL, pd != NULL); #ifdef MR_DEEP_PROFILING_KEY_USES_ID void_key = (void *) (closure->MR_closure_layout); #else void_key = (void *) (closure->MR_closure_code); #endif MR_search_csdlist(csdlist, prev, pd, CSN, void_key); MR_maybe_deep_profile_update_closure_history(); #ifdef MR_DEEP_PROFILING_STATISTICS if (csdlist != NULL) { MR_deep_prof_prep_ho_old++; } else { MR_deep_prof_prep_ho_new++; } #endif if (csdlist != NULL) { MR_next_call_site_dynamic = csdlist->MR_csdlist_call_site; } else { MR_CallSiteDynamic *newcsd; MR_new_call_site_dynamic(newcsd); MR_make_and_link_csdlist(csdlist, newcsd, pd, CSN, void_key); MR_next_call_site_dynamic = newcsd; } MR_leave_instrumentation(); #else MR_fatal_error(\"prepare_for_ho_call: deep profiling not enabled\"); #endif }"). :- pragma foreign_proc("C", profiling_builtin:prepare_for_method_call(CSN :: (builtin:in), TypeClassInfo :: (builtin:in), MethodNum :: (builtin:in)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ #ifdef MR_DEEP_PROFILING MR_CallSiteDynamic *csd; MR_ProcDynamic *pd; MR_CallSiteDynList *csdlist; void *void_key; #ifdef MR_DEEP_PROFILING_MOVE_TO_FRONT_LISTS MR_CallSiteDynList *prev = NULL; #endif MR_enter_instrumentation(); csd = MR_current_call_site_dynamic; MR_deep_assert(csd, NULL, csd != NULL); pd = csd->MR_csd_callee_ptr; MR_deep_assert(csd, NULL, pd != NULL); void_key = (void *) MR_typeclass_info_class_method(TypeClassInfo, MethodNum); MR_search_csdlist(csdlist, prev, pd, CSN, void_key); MR_maybe_deep_profile_update_method_history(); #ifdef MR_DEEP_PROFILING_STATISTICS if (csdlist != NULL) { MR_deep_prof_prep_method_old++; } else { MR_deep_prof_prep_method_new++; } #endif if (csdlist != NULL) { MR_next_call_site_dynamic = csdlist->MR_csdlist_call_site; } else { MR_CallSiteDynamic *newcsd; MR_new_call_site_dynamic(newcsd); MR_make_and_link_csdlist(csdlist, newcsd, pd, CSN, void_key); MR_next_call_site_dynamic = newcsd; } MR_leave_instrumentation(); #else MR_fatal_error(\"prepare_for_method_call: deep profiling not enabled\"); #endif }"). :- pragma foreign_proc("C", profiling_builtin:prepare_for_callback(CSN :: (builtin:in)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ #ifdef MR_DEEP_PROFILING MR_CallSiteDynamic *csd; MR_ProcDynamic *pd; MR_enter_instrumentation(); csd = MR_current_call_site_dynamic; MR_deep_assert(csd, NULL, csd != NULL); pd = csd->MR_csd_callee_ptr; MR_deep_assert(csd, NULL, pd != NULL); MR_current_callback_site = (MR_CallSiteDynList **) &(pd->MR_pd_call_site_ptr_ptrs[CSN]); MR_leave_instrumentation(); #else MR_fatal_error(\"prepare_for_callback: deep profiling not enabled\"); #endif }"). :- pragma foreign_proc("C", profiling_builtin:prepare_for_tail_call(CSN :: (builtin:in)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ #ifdef MR_DEEP_PROFILING MR_CallSiteDynamic *child_csd; MR_CallSiteDynamic *csd; MR_ProcDynamic *pd; MR_enter_instrumentation(); #ifdef MR_DEEP_PROFILING_LOWLEVEL_DEBUG if (MR_calldebug) { MR_print_deep_prof_vars(stdout, \"prepare_for_tail_call\"); } #endif csd = MR_current_call_site_dynamic; MR_deep_assert(csd, NULL, csd != NULL); pd = csd->MR_csd_callee_ptr; MR_deep_assert(csd, NULL, pd != NULL); child_csd = pd->MR_pd_call_site_ptr_ptrs[CSN]; #ifdef MR_DEEP_PROFILING_STATISTICS if (child_csd == NULL) { MR_deep_prof_prep_tail_new++; } else { MR_deep_prof_prep_tail_old++; } #endif if (child_csd == NULL) { MR_new_call_site_dynamic(child_csd); child_csd->MR_csd_callee_ptr = pd; pd->MR_pd_call_site_ptr_ptrs[CSN] = child_csd; } child_csd->MR_csd_depth_count++; MR_current_call_site_dynamic = child_csd; MR_leave_instrumentation(); #else MR_fatal_error(\"prepare_for_tail_call: deep profiling not enabled\"); #endif }"). :- pragma foreign_proc("C", profiling_builtin:save_and_zero_activation_info_ac(Count :: (builtin:out), Ptr :: (builtin:out)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ #ifdef MR_DEEP_PROFILING #ifdef MR_USE_ACTIVATION_COUNTS MR_CallSiteDynamic *csd; MR_ProcDynamic *pd; MR_ProcStatic *ps; MR_enter_instrumentation(); csd = MR_current_call_site_dynamic; MR_deep_assert(csd, NULL, csd != NULL); pd = csd->MR_csd_callee_ptr; MR_deep_assert(csd, NULL, pd != NULL); ps = pd->MR_pd_proc_static; Count = ps->MR_ps_activation_count; ps->MR_ps_activation_count = 0; Ptr = ps->MR_ps_outermost_activation_ptr; ps->MR_ps_outermost_activation_ptr = NULL; MR_leave_instrumentation(); #else MR_fatal_error(\"save_and_zero_activation_info_ac called when not using activation counts!\"); #endif #else MR_fatal_error(\"save_and_zero_activation_info_ac: deep profiling not enabled\"); #endif }"). :- pragma foreign_proc("C", profiling_builtin:save_and_zero_activation_info_sr(Ptr :: (builtin:out)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ #ifdef MR_DEEP_PROFILING #ifndef MR_USE_ACTIVATION_COUNTS MR_CallSiteDynamic *csd; MR_ProcDynamic *pd; MR_ProcStatic *ps; MR_enter_instrumentation(); csd = MR_current_call_site_dynamic; MR_deep_assert(csd, NULL, csd != NULL); pd = csd->MR_csd_callee_ptr; MR_deep_assert(csd, NULL, pd != NULL); ps = pd->MR_pd_proc_static; Ptr = ps->MR_ps_outermost_activation_ptr; ps->MR_ps_outermost_activation_ptr = NULL; MR_leave_instrumentation(); #else MR_fatal_error(\"save_and_zero_activation_info_sr called when using activation counts!\"); #endif #else MR_fatal_error(\"save_and_zero_activation_info_sr: deep profiling not enabled\"); #endif }"). :- pragma foreign_proc("C", profiling_builtin:rezero_activation_info_ac, [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ #ifdef MR_DEEP_PROFILING #ifdef MR_USE_ACTIVATION_COUNTS MR_CallSiteDynamic *csd; MR_ProcDynamic *pd; MR_ProcStatic *ps; MR_enter_instrumentation(); csd = MR_current_call_site_dynamic; MR_deep_assert(csd, NULL, csd != NULL); pd = csd->MR_csd_callee_ptr; MR_deep_assert(csd, NULL, pd != NULL); ps = pd->MR_pd_proc_static; ps->MR_ps_activation_count = 0; ps->MR_ps_outermost_activation_ptr = NULL; MR_leave_instrumentation(); #else MR_fatal_error(\"rezero_activation_info_ac called when not using activation counts!\"); #endif #else MR_fatal_error(\"rezero_activation_info_ac: deep profiling not enabled\"); #endif }"). :- pragma foreign_proc("C", profiling_builtin:rezero_activation_info_sr, [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ #ifdef MR_DEEP_PROFILING #ifndef MR_USE_ACTIVATION_COUNTS MR_CallSiteDynamic *csd; MR_ProcDynamic *pd; MR_ProcStatic *ps; MR_enter_instrumentation(); csd = MR_current_call_site_dynamic; MR_deep_assert(csd, NULL, csd != NULL); pd = csd->MR_csd_callee_ptr; MR_deep_assert(csd, NULL, pd != NULL); ps = pd->MR_pd_proc_static; ps->MR_ps_outermost_activation_ptr = NULL; MR_leave_instrumentation(); #else MR_fatal_error(\"rezero_activation_info_sr called when using activation counts!\"); #endif #else MR_fatal_error(\"rezero_activation_info_sr: deep profiling not enabled\"); #endif }"). :- pragma foreign_proc("C", profiling_builtin:reset_activation_info_ac(Count :: (builtin:in), Ptr :: (builtin:in)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ #ifdef MR_DEEP_PROFILING #ifdef MR_USE_ACTIVATION_COUNTS MR_CallSiteDynamic *csd; MR_ProcDynamic *pd; MR_ProcStatic *ps; MR_enter_instrumentation(); csd = MR_current_call_site_dynamic; MR_deep_assert(csd, NULL, csd != NULL); pd = csd->MR_csd_callee_ptr; MR_deep_assert(csd, NULL, pd != NULL); ps = pd->MR_pd_proc_static; ps->MR_ps_activation_count = Count; ps->MR_ps_outermost_activation_ptr = Ptr; MR_leave_instrumentation(); #else MR_fatal_error(\"reset_activation_info_ac called when not using activation counts!\"); #endif #else MR_fatal_error(\"reset_activation_info_ac: deep profiling not enabled\"); #endif }"). :- pragma foreign_proc("C", profiling_builtin:reset_activation_info_sr(Ptr :: (builtin:in)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ #ifdef MR_DEEP_PROFILING #ifndef MR_USE_ACTIVATION_COUNTS MR_CallSiteDynamic *csd; MR_ProcDynamic *pd; MR_ProcStatic *ps; MR_enter_instrumentation(); csd = MR_current_call_site_dynamic; MR_deep_assert(csd, NULL, csd != NULL); pd = csd->MR_csd_callee_ptr; MR_deep_assert(csd, NULL, pd != NULL); ps = pd->MR_pd_proc_static; ps->MR_ps_outermost_activation_ptr = Ptr; MR_leave_instrumentation(); #else MR_fatal_error(\"reset_activation_info_sr called when using activation counts!\"); #endif #else MR_fatal_error(\"reset_activation_info_sr: deep profiling not enabled\"); #endif }"). :- pragma foreign_proc("C", profiling_builtin:save_recursion_depth_1(CSD :: (builtin:in), CSN :: (builtin:in), OuterCount1 :: (builtin:out)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ /* shut up warning: CSD, CSN, OuterCount1 */ #define MR_PROCNAME \"save_recursion_depth_1\" #define MR_REC_DEPTH_BODY { \\ MR_SAVE_DEPTH_ACTION(OuterCount1, \\ CSN); \\ } #include \"mercury_deep_rec_depth_body.h\" #undef MR_PROCNAME #undef MR_REC_DEPTH_BODY }"). :- pragma foreign_proc("C", profiling_builtin:save_recursion_depth_2(CSD :: (builtin:in), CSNsVector :: (builtin:in), OuterCount1 :: (builtin:out), OuterCount2 :: (builtin:out)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ /* shut up warning: CSD, CSNsVector, OuterCount1, OuterCount2 */ #define MR_PROCNAME \"save_recursion_depth_2\" #define MR_REC_DEPTH_BODY { \\ MR_SAVE_DEPTH_ACTION(OuterCount1, \\ MR_csn_vector_field(CSNsVector, 0)); \\ MR_SAVE_DEPTH_ACTION(OuterCount2, \\ MR_csn_vector_field(CSNsVector, 1)); \\ } #include \"mercury_deep_rec_depth_body.h\" #undef MR_PROCNAME #undef MR_REC_DEPTH_BODY }"). :- pragma foreign_proc("C", profiling_builtin:save_recursion_depth_3(CSD :: (builtin:in), CSNsVector :: (builtin:in), OuterCount1 :: (builtin:out), OuterCount2 :: (builtin:out), OuterCount3 :: (builtin:out)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ /* shut up warning: CSD, CSNsVector, OuterCount1, OuterCount2, OuterCount3 */ #define MR_PROCNAME \"save_recursion_depth_3\" #define MR_REC_DEPTH_BODY { \\ MR_SAVE_DEPTH_ACTION(OuterCount1, \\ MR_csn_vector_field(CSNsVector, 0)); \\ MR_SAVE_DEPTH_ACTION(OuterCount2, \\ MR_csn_vector_field(CSNsVector, 1)); \\ MR_SAVE_DEPTH_ACTION(OuterCount3, \\ MR_csn_vector_field(CSNsVector, 2)); \\ } #include \"mercury_deep_rec_depth_body.h\" #undef MR_PROCNAME #undef MR_REC_DEPTH_BODY }"). :- pragma foreign_proc("C", profiling_builtin:save_recursion_depth_4(CSD :: (builtin:in), CSNsVector :: (builtin:in), OuterCount1 :: (builtin:out), OuterCount2 :: (builtin:out), OuterCount3 :: (builtin:out), OuterCount4 :: (builtin:out)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ /* shut up warning: CSD, CSNsVector, OuterCount1, OuterCount2, OuterCount3 */ /* shut up warning: OuterCount4 */ #define MR_PROCNAME \"save_recursion_depth_4\" #define MR_REC_DEPTH_BODY { \\ MR_SAVE_DEPTH_ACTION(OuterCount1, \\ MR_csn_vector_field(CSNsVector, 0)); \\ MR_SAVE_DEPTH_ACTION(OuterCount2, \\ MR_csn_vector_field(CSNsVector, 1)); \\ MR_SAVE_DEPTH_ACTION(OuterCount3, \\ MR_csn_vector_field(CSNsVector, 2)); \\ MR_SAVE_DEPTH_ACTION(OuterCount4, \\ MR_csn_vector_field(CSNsVector, 3)); \\ } #include \"mercury_deep_rec_depth_body.h\" #undef MR_PROCNAME #undef MR_REC_DEPTH_BODY }"). :- pragma foreign_proc("C", profiling_builtin:save_recursion_depth_5(CSD :: (builtin:in), CSNsVector :: (builtin:in), OuterCount1 :: (builtin:out), OuterCount2 :: (builtin:out), OuterCount3 :: (builtin:out), OuterCount4 :: (builtin:out), OuterCount5 :: (builtin:out)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ /* shut up warning: CSD, CSNsVector, OuterCount1, OuterCount2, OuterCount3 */ /* shut up warning: OuterCount4, OuterCount5 */ #define MR_PROCNAME \"save_recursion_depth_5\" #define MR_REC_DEPTH_BODY { \\ MR_SAVE_DEPTH_ACTION(OuterCount1, \\ MR_csn_vector_field(CSNsVector, 0)); \\ MR_SAVE_DEPTH_ACTION(OuterCount2, \\ MR_csn_vector_field(CSNsVector, 1)); \\ MR_SAVE_DEPTH_ACTION(OuterCount3, \\ MR_csn_vector_field(CSNsVector, 2)); \\ MR_SAVE_DEPTH_ACTION(OuterCount4, \\ MR_csn_vector_field(CSNsVector, 3)); \\ MR_SAVE_DEPTH_ACTION(OuterCount5, \\ MR_csn_vector_field(CSNsVector, 4)); \\ } #include \"mercury_deep_rec_depth_body.h\" #undef MR_PROCNAME #undef MR_REC_DEPTH_BODY }"). :- pragma foreign_proc("C", profiling_builtin:save_recursion_depth_6(CSD :: (builtin:in), CSNsVector :: (builtin:in), OuterCount1 :: (builtin:out), OuterCount2 :: (builtin:out), OuterCount3 :: (builtin:out), OuterCount4 :: (builtin:out), OuterCount5 :: (builtin:out), OuterCount6 :: (builtin:out)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ /* shut up warning: CSD, CSNsVector, OuterCount1, OuterCount2, OuterCount3 */ /* shut up warning: OuterCount4, OuterCount5, OuterCount6 */ #define MR_PROCNAME \"save_recursion_depth_6\" #define MR_REC_DEPTH_BODY { \\ MR_SAVE_DEPTH_ACTION(OuterCount1, \\ MR_csn_vector_field(CSNsVector, 0)); \\ MR_SAVE_DEPTH_ACTION(OuterCount2, \\ MR_csn_vector_field(CSNsVector, 1)); \\ MR_SAVE_DEPTH_ACTION(OuterCount3, \\ MR_csn_vector_field(CSNsVector, 2)); \\ MR_SAVE_DEPTH_ACTION(OuterCount4, \\ MR_csn_vector_field(CSNsVector, 3)); \\ MR_SAVE_DEPTH_ACTION(OuterCount5, \\ MR_csn_vector_field(CSNsVector, 4)); \\ MR_SAVE_DEPTH_ACTION(OuterCount6, \\ MR_csn_vector_field(CSNsVector, 5)); \\ } #include \"mercury_deep_rec_depth_body.h\" #undef MR_PROCNAME #undef MR_REC_DEPTH_BODY }"). :- pragma foreign_proc("C", profiling_builtin:save_recursion_depth_7(CSD :: (builtin:in), CSNsVector :: (builtin:in), OuterCount1 :: (builtin:out), OuterCount2 :: (builtin:out), OuterCount3 :: (builtin:out), OuterCount4 :: (builtin:out), OuterCount5 :: (builtin:out), OuterCount6 :: (builtin:out), OuterCount7 :: (builtin:out)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ /* shut up warning: CSD, CSNsVector, OuterCount1, OuterCount2, OuterCount3 */ /* shut up warning: OuterCount4, OuterCount5, OuterCount6, OuterCount7 */ #define MR_PROCNAME \"save_recursion_depth_7\" #define MR_REC_DEPTH_BODY { \\ MR_SAVE_DEPTH_ACTION(OuterCount1, \\ MR_csn_vector_field(CSNsVector, 0)); \\ MR_SAVE_DEPTH_ACTION(OuterCount2, \\ MR_csn_vector_field(CSNsVector, 1)); \\ MR_SAVE_DEPTH_ACTION(OuterCount3, \\ MR_csn_vector_field(CSNsVector, 2)); \\ MR_SAVE_DEPTH_ACTION(OuterCount4, \\ MR_csn_vector_field(CSNsVector, 3)); \\ MR_SAVE_DEPTH_ACTION(OuterCount5, \\ MR_csn_vector_field(CSNsVector, 4)); \\ MR_SAVE_DEPTH_ACTION(OuterCount6, \\ MR_csn_vector_field(CSNsVector, 5)); \\ MR_SAVE_DEPTH_ACTION(OuterCount7, \\ MR_csn_vector_field(CSNsVector, 6)); \\ } #include \"mercury_deep_rec_depth_body.h\" #undef MR_PROCNAME #undef MR_REC_DEPTH_BODY }"). :- pragma foreign_proc("C", profiling_builtin:save_recursion_depth_8(CSD :: (builtin:in), CSNsVector :: (builtin:in), OuterCount1 :: (builtin:out), OuterCount2 :: (builtin:out), OuterCount3 :: (builtin:out), OuterCount4 :: (builtin:out), OuterCount5 :: (builtin:out), OuterCount6 :: (builtin:out), OuterCount7 :: (builtin:out), OuterCount8 :: (builtin:out)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ /* shut up warning: CSD, CSNsVector, OuterCount1, OuterCount2, OuterCount3 */ /* shut up warning: OuterCount4, OuterCount5, OuterCount6, OuterCount7 */ /* shut up warning: OuterCount8 */ #define MR_PROCNAME \"save_recursion_depth_8\" #define MR_REC_DEPTH_BODY { \\ MR_SAVE_DEPTH_ACTION(OuterCount1, \\ MR_csn_vector_field(CSNsVector, 0)); \\ MR_SAVE_DEPTH_ACTION(OuterCount2, \\ MR_csn_vector_field(CSNsVector, 1)); \\ MR_SAVE_DEPTH_ACTION(OuterCount3, \\ MR_csn_vector_field(CSNsVector, 2)); \\ MR_SAVE_DEPTH_ACTION(OuterCount4, \\ MR_csn_vector_field(CSNsVector, 3)); \\ MR_SAVE_DEPTH_ACTION(OuterCount5, \\ MR_csn_vector_field(CSNsVector, 4)); \\ MR_SAVE_DEPTH_ACTION(OuterCount6, \\ MR_csn_vector_field(CSNsVector, 5)); \\ MR_SAVE_DEPTH_ACTION(OuterCount7, \\ MR_csn_vector_field(CSNsVector, 6)); \\ MR_SAVE_DEPTH_ACTION(OuterCount8, \\ MR_csn_vector_field(CSNsVector, 7)); \\ } #include \"mercury_deep_rec_depth_body.h\" #undef MR_PROCNAME #undef MR_REC_DEPTH_BODY }"). :- pragma foreign_proc("C", profiling_builtin:save_recursion_depth_9(CSD :: (builtin:in), CSNsVector :: (builtin:in), OuterCount1 :: (builtin:out), OuterCount2 :: (builtin:out), OuterCount3 :: (builtin:out), OuterCount4 :: (builtin:out), OuterCount5 :: (builtin:out), OuterCount6 :: (builtin:out), OuterCount7 :: (builtin:out), OuterCount8 :: (builtin:out), OuterCount9 :: (builtin:out)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ /* shut up warning: CSD, CSNsVector, OuterCount1, OuterCount2, OuterCount3 */ /* shut up warning: OuterCount4, OuterCount5, OuterCount6, OuterCount7 */ /* shut up warning: OuterCount8, OuterCount9 */ #define MR_PROCNAME \"save_recursion_depth_9\" #define MR_REC_DEPTH_BODY { \\ MR_SAVE_DEPTH_ACTION(OuterCount1, \\ MR_csn_vector_field(CSNsVector, 0)); \\ MR_SAVE_DEPTH_ACTION(OuterCount2, \\ MR_csn_vector_field(CSNsVector, 1)); \\ MR_SAVE_DEPTH_ACTION(OuterCount3, \\ MR_csn_vector_field(CSNsVector, 2)); \\ MR_SAVE_DEPTH_ACTION(OuterCount4, \\ MR_csn_vector_field(CSNsVector, 3)); \\ MR_SAVE_DEPTH_ACTION(OuterCount5, \\ MR_csn_vector_field(CSNsVector, 4)); \\ MR_SAVE_DEPTH_ACTION(OuterCount6, \\ MR_csn_vector_field(CSNsVector, 5)); \\ MR_SAVE_DEPTH_ACTION(OuterCount7, \\ MR_csn_vector_field(CSNsVector, 6)); \\ MR_SAVE_DEPTH_ACTION(OuterCount8, \\ MR_csn_vector_field(CSNsVector, 7)); \\ MR_SAVE_DEPTH_ACTION(OuterCount9, \\ MR_csn_vector_field(CSNsVector, 8)); \\ } #include \"mercury_deep_rec_depth_body.h\" #undef MR_PROCNAME #undef MR_REC_DEPTH_BODY }"). :- pragma foreign_proc("C", profiling_builtin:restore_recursion_depth_exit_1(CSD :: (builtin:in), CSN :: (builtin:in), OuterCount1 :: (builtin:in)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ /* shut up warning: CSD, CSN, OuterCount1 */ #define MR_PROCNAME \"restore_recursion_depth_exit_1\" #define MR_REC_DEPTH_BODY { \\ MR_RESTORE_DEPTH_EXIT(OuterCount1, \\ CSN); \\ } #include \"mercury_deep_rec_depth_body.h\" #undef MR_PROCNAME #undef MR_REC_DEPTH_BODY }"). :- pragma foreign_proc("C", profiling_builtin:restore_recursion_depth_exit_2(CSD :: (builtin:in), CSNsVector :: (builtin:in), OuterCount1 :: (builtin:in), OuterCount2 :: (builtin:in)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ /* shut up warning: CSD, CSNsVector, OuterCount1, OuterCount2 */ #define MR_PROCNAME \"restore_recursion_depth_exit_2\" #define MR_REC_DEPTH_BODY { \\ MR_RESTORE_DEPTH_EXIT(OuterCount1, \\ MR_csn_vector_field(CSNsVector, 0)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount2, \\ MR_csn_vector_field(CSNsVector, 1)); \\ } #include \"mercury_deep_rec_depth_body.h\" #undef MR_PROCNAME #undef MR_REC_DEPTH_BODY }"). :- pragma foreign_proc("C", profiling_builtin:restore_recursion_depth_exit_3(CSD :: (builtin:in), CSNsVector :: (builtin:in), OuterCount1 :: (builtin:in), OuterCount2 :: (builtin:in), OuterCount3 :: (builtin:in)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ /* shut up warning: CSD, CSNsVector, OuterCount1, OuterCount2, OuterCount3 */ #define MR_PROCNAME \"restore_recursion_depth_exit_3\" #define MR_REC_DEPTH_BODY { \\ MR_RESTORE_DEPTH_EXIT(OuterCount1, \\ MR_csn_vector_field(CSNsVector, 0)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount2, \\ MR_csn_vector_field(CSNsVector, 1)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount3, \\ MR_csn_vector_field(CSNsVector, 2)); \\ } #include \"mercury_deep_rec_depth_body.h\" #undef MR_PROCNAME #undef MR_REC_DEPTH_BODY }"). :- pragma foreign_proc("C", profiling_builtin:restore_recursion_depth_exit_4(CSD :: (builtin:in), CSNsVector :: (builtin:in), OuterCount1 :: (builtin:in), OuterCount2 :: (builtin:in), OuterCount3 :: (builtin:in), OuterCount4 :: (builtin:in)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ /* shut up warning: CSD, CSNsVector, OuterCount1, OuterCount2, OuterCount3 */ /* shut up warning: OuterCount4 */ #define MR_PROCNAME \"restore_recursion_depth_exit_4\" #define MR_REC_DEPTH_BODY { \\ MR_RESTORE_DEPTH_EXIT(OuterCount1, \\ MR_csn_vector_field(CSNsVector, 0)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount2, \\ MR_csn_vector_field(CSNsVector, 1)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount3, \\ MR_csn_vector_field(CSNsVector, 2)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount4, \\ MR_csn_vector_field(CSNsVector, 3)); \\ } #include \"mercury_deep_rec_depth_body.h\" #undef MR_PROCNAME #undef MR_REC_DEPTH_BODY }"). :- pragma foreign_proc("C", profiling_builtin:restore_recursion_depth_exit_5(CSD :: (builtin:in), CSNsVector :: (builtin:in), OuterCount1 :: (builtin:in), OuterCount2 :: (builtin:in), OuterCount3 :: (builtin:in), OuterCount4 :: (builtin:in), OuterCount5 :: (builtin:in)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ /* shut up warning: CSD, CSNsVector, OuterCount1, OuterCount2, OuterCount3 */ /* shut up warning: OuterCount4, OuterCount5 */ #define MR_PROCNAME \"restore_recursion_depth_exit_5\" #define MR_REC_DEPTH_BODY { \\ MR_RESTORE_DEPTH_EXIT(OuterCount1, \\ MR_csn_vector_field(CSNsVector, 0)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount2, \\ MR_csn_vector_field(CSNsVector, 1)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount3, \\ MR_csn_vector_field(CSNsVector, 2)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount4, \\ MR_csn_vector_field(CSNsVector, 3)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount5, \\ MR_csn_vector_field(CSNsVector, 4)); \\ } #include \"mercury_deep_rec_depth_body.h\" #undef MR_PROCNAME #undef MR_REC_DEPTH_BODY }"). :- pragma foreign_proc("C", profiling_builtin:restore_recursion_depth_exit_6(CSD :: (builtin:in), CSNsVector :: (builtin:in), OuterCount1 :: (builtin:in), OuterCount2 :: (builtin:in), OuterCount3 :: (builtin:in), OuterCount4 :: (builtin:in), OuterCount5 :: (builtin:in), OuterCount6 :: (builtin:in)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ /* shut up warning: CSD, CSNsVector, OuterCount1, OuterCount2, OuterCount3 */ /* shut up warning: OuterCount4, OuterCount5, OuterCount6 */ #define MR_PROCNAME \"restore_recursion_depth_exit_6\" #define MR_REC_DEPTH_BODY { \\ MR_RESTORE_DEPTH_EXIT(OuterCount1, \\ MR_csn_vector_field(CSNsVector, 0)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount2, \\ MR_csn_vector_field(CSNsVector, 1)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount3, \\ MR_csn_vector_field(CSNsVector, 2)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount4, \\ MR_csn_vector_field(CSNsVector, 3)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount5, \\ MR_csn_vector_field(CSNsVector, 4)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount6, \\ MR_csn_vector_field(CSNsVector, 5)); \\ } #include \"mercury_deep_rec_depth_body.h\" #undef MR_PROCNAME #undef MR_REC_DEPTH_BODY }"). :- pragma foreign_proc("C", profiling_builtin:restore_recursion_depth_exit_7(CSD :: (builtin:in), CSNsVector :: (builtin:in), OuterCount1 :: (builtin:in), OuterCount2 :: (builtin:in), OuterCount3 :: (builtin:in), OuterCount4 :: (builtin:in), OuterCount5 :: (builtin:in), OuterCount6 :: (builtin:in), OuterCount7 :: (builtin:in)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ /* shut up warning: CSD, CSNsVector, OuterCount1, OuterCount2, OuterCount3 */ /* shut up warning: OuterCount4, OuterCount5, OuterCount6, OuterCount7 */ #define MR_PROCNAME \"restore_recursion_depth_exit_7\" #define MR_REC_DEPTH_BODY { \\ MR_RESTORE_DEPTH_EXIT(OuterCount1, \\ MR_csn_vector_field(CSNsVector, 0)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount2, \\ MR_csn_vector_field(CSNsVector, 1)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount3, \\ MR_csn_vector_field(CSNsVector, 2)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount4, \\ MR_csn_vector_field(CSNsVector, 3)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount5, \\ MR_csn_vector_field(CSNsVector, 4)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount6, \\ MR_csn_vector_field(CSNsVector, 5)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount7, \\ MR_csn_vector_field(CSNsVector, 6)); \\ } #include \"mercury_deep_rec_depth_body.h\" #undef MR_PROCNAME #undef MR_REC_DEPTH_BODY }"). :- pragma foreign_proc("C", profiling_builtin:restore_recursion_depth_exit_8(CSD :: (builtin:in), CSNsVector :: (builtin:in), OuterCount1 :: (builtin:in), OuterCount2 :: (builtin:in), OuterCount3 :: (builtin:in), OuterCount4 :: (builtin:in), OuterCount5 :: (builtin:in), OuterCount6 :: (builtin:in), OuterCount7 :: (builtin:in), OuterCount8 :: (builtin:in)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ /* shut up warning: CSD, CSNsVector, OuterCount1, OuterCount2, OuterCount3 */ /* shut up warning: OuterCount4, OuterCount5, OuterCount6, OuterCount7 */ /* shut up warning: OuterCount8 */ #define MR_PROCNAME \"restore_recursion_depth_exit_8\" #define MR_REC_DEPTH_BODY { \\ MR_RESTORE_DEPTH_EXIT(OuterCount1, \\ MR_csn_vector_field(CSNsVector, 0)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount2, \\ MR_csn_vector_field(CSNsVector, 1)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount3, \\ MR_csn_vector_field(CSNsVector, 2)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount4, \\ MR_csn_vector_field(CSNsVector, 3)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount5, \\ MR_csn_vector_field(CSNsVector, 4)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount6, \\ MR_csn_vector_field(CSNsVector, 5)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount7, \\ MR_csn_vector_field(CSNsVector, 6)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount8, \\ MR_csn_vector_field(CSNsVector, 7)); \\ } #include \"mercury_deep_rec_depth_body.h\" #undef MR_PROCNAME #undef MR_REC_DEPTH_BODY }"). :- pragma foreign_proc("C", profiling_builtin:restore_recursion_depth_exit_9(CSD :: (builtin:in), CSNsVector :: (builtin:in), OuterCount1 :: (builtin:in), OuterCount2 :: (builtin:in), OuterCount3 :: (builtin:in), OuterCount4 :: (builtin:in), OuterCount5 :: (builtin:in), OuterCount6 :: (builtin:in), OuterCount7 :: (builtin:in), OuterCount8 :: (builtin:in), OuterCount9 :: (builtin:in)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ /* shut up warning: CSD, CSNsVector, OuterCount1, OuterCount2, OuterCount3 */ /* shut up warning: OuterCount4, OuterCount5, OuterCount6, OuterCount7 */ /* shut up warning: OuterCount8, OuterCount9 */ #define MR_PROCNAME \"restore_recursion_depth_exit_9\" #define MR_REC_DEPTH_BODY { \\ MR_RESTORE_DEPTH_EXIT(OuterCount1, \\ MR_csn_vector_field(CSNsVector, 0)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount2, \\ MR_csn_vector_field(CSNsVector, 1)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount3, \\ MR_csn_vector_field(CSNsVector, 2)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount4, \\ MR_csn_vector_field(CSNsVector, 3)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount5, \\ MR_csn_vector_field(CSNsVector, 4)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount6, \\ MR_csn_vector_field(CSNsVector, 5)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount7, \\ MR_csn_vector_field(CSNsVector, 6)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount8, \\ MR_csn_vector_field(CSNsVector, 7)); \\ MR_RESTORE_DEPTH_EXIT(OuterCount9, \\ MR_csn_vector_field(CSNsVector, 8)); \\ } #include \"mercury_deep_rec_depth_body.h\" #undef MR_PROCNAME #undef MR_REC_DEPTH_BODY }"). :- pragma foreign_proc("C", profiling_builtin:restore_recursion_depth_fail_1(CSD :: (builtin:in), CSN :: (builtin:in), OuterCount1 :: (builtin:in)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ /* shut up warning: CSD, CSN, OuterCount1 */ #define MR_PROCNAME \"restore_recursion_depth_fail_1\" #define MR_REC_DEPTH_BODY { \\ MR_RESTORE_DEPTH_FAIL(OuterCount1, \\ CSN); \\ } #include \"mercury_deep_rec_depth_body.h\" #undef MR_PROCNAME #undef MR_REC_DEPTH_BODY }"). :- pragma foreign_proc("C", profiling_builtin:restore_recursion_depth_fail_2(CSD :: (builtin:in), CSNsVector :: (builtin:in), OuterCount1 :: (builtin:in), OuterCount2 :: (builtin:in)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ /* shut up warning: CSD, CSNsVector, OuterCount1, OuterCount2 */ #define MR_PROCNAME \"restore_recursion_depth_fail_2\" #define MR_REC_DEPTH_BODY { \\ MR_RESTORE_DEPTH_FAIL(OuterCount1, \\ MR_csn_vector_field(CSNsVector, 0)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount2, \\ MR_csn_vector_field(CSNsVector, 1)); \\ } #include \"mercury_deep_rec_depth_body.h\" #undef MR_PROCNAME #undef MR_REC_DEPTH_BODY }"). :- pragma foreign_proc("C", profiling_builtin:restore_recursion_depth_fail_3(CSD :: (builtin:in), CSNsVector :: (builtin:in), OuterCount1 :: (builtin:in), OuterCount2 :: (builtin:in), OuterCount3 :: (builtin:in)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ /* shut up warning: CSD, CSNsVector, OuterCount1, OuterCount2, OuterCount3 */ #define MR_PROCNAME \"restore_recursion_depth_fail_3\" #define MR_REC_DEPTH_BODY { \\ MR_RESTORE_DEPTH_FAIL(OuterCount1, \\ MR_csn_vector_field(CSNsVector, 0)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount2, \\ MR_csn_vector_field(CSNsVector, 1)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount3, \\ MR_csn_vector_field(CSNsVector, 2)); \\ } #include \"mercury_deep_rec_depth_body.h\" #undef MR_PROCNAME #undef MR_REC_DEPTH_BODY }"). :- pragma foreign_proc("C", profiling_builtin:restore_recursion_depth_fail_4(CSD :: (builtin:in), CSNsVector :: (builtin:in), OuterCount1 :: (builtin:in), OuterCount2 :: (builtin:in), OuterCount3 :: (builtin:in), OuterCount4 :: (builtin:in)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ /* shut up warning: CSD, CSNsVector, OuterCount1, OuterCount2, OuterCount3 */ /* shut up warning: OuterCount4 */ #define MR_PROCNAME \"restore_recursion_depth_fail_4\" #define MR_REC_DEPTH_BODY { \\ MR_RESTORE_DEPTH_FAIL(OuterCount1, \\ MR_csn_vector_field(CSNsVector, 0)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount2, \\ MR_csn_vector_field(CSNsVector, 1)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount3, \\ MR_csn_vector_field(CSNsVector, 2)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount4, \\ MR_csn_vector_field(CSNsVector, 3)); \\ } #include \"mercury_deep_rec_depth_body.h\" #undef MR_PROCNAME #undef MR_REC_DEPTH_BODY }"). :- pragma foreign_proc("C", profiling_builtin:restore_recursion_depth_fail_5(CSD :: (builtin:in), CSNsVector :: (builtin:in), OuterCount1 :: (builtin:in), OuterCount2 :: (builtin:in), OuterCount3 :: (builtin:in), OuterCount4 :: (builtin:in), OuterCount5 :: (builtin:in)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ /* shut up warning: CSD, CSNsVector, OuterCount1, OuterCount2, OuterCount3 */ /* shut up warning: OuterCount4, OuterCount5 */ #define MR_PROCNAME \"restore_recursion_depth_fail_5\" #define MR_REC_DEPTH_BODY { \\ MR_RESTORE_DEPTH_FAIL(OuterCount1, \\ MR_csn_vector_field(CSNsVector, 0)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount2, \\ MR_csn_vector_field(CSNsVector, 1)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount3, \\ MR_csn_vector_field(CSNsVector, 2)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount4, \\ MR_csn_vector_field(CSNsVector, 3)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount5, \\ MR_csn_vector_field(CSNsVector, 4)); \\ } #include \"mercury_deep_rec_depth_body.h\" #undef MR_PROCNAME #undef MR_REC_DEPTH_BODY }"). :- pragma foreign_proc("C", profiling_builtin:restore_recursion_depth_fail_6(CSD :: (builtin:in), CSNsVector :: (builtin:in), OuterCount1 :: (builtin:in), OuterCount2 :: (builtin:in), OuterCount3 :: (builtin:in), OuterCount4 :: (builtin:in), OuterCount5 :: (builtin:in), OuterCount6 :: (builtin:in)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ /* shut up warning: CSD, CSNsVector, OuterCount1, OuterCount2, OuterCount3 */ /* shut up warning: OuterCount4, OuterCount5, OuterCount6 */ #define MR_PROCNAME \"restore_recursion_depth_fail_6\" #define MR_REC_DEPTH_BODY { \\ MR_RESTORE_DEPTH_FAIL(OuterCount1, \\ MR_csn_vector_field(CSNsVector, 0)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount2, \\ MR_csn_vector_field(CSNsVector, 1)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount3, \\ MR_csn_vector_field(CSNsVector, 2)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount4, \\ MR_csn_vector_field(CSNsVector, 3)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount5, \\ MR_csn_vector_field(CSNsVector, 4)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount6, \\ MR_csn_vector_field(CSNsVector, 5)); \\ } #include \"mercury_deep_rec_depth_body.h\" #undef MR_PROCNAME #undef MR_REC_DEPTH_BODY }"). :- pragma foreign_proc("C", profiling_builtin:restore_recursion_depth_fail_7(CSD :: (builtin:in), CSNsVector :: (builtin:in), OuterCount1 :: (builtin:in), OuterCount2 :: (builtin:in), OuterCount3 :: (builtin:in), OuterCount4 :: (builtin:in), OuterCount5 :: (builtin:in), OuterCount6 :: (builtin:in), OuterCount7 :: (builtin:in)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ /* shut up warning: CSD, CSNsVector, OuterCount1, OuterCount2, OuterCount3 */ /* shut up warning: OuterCount4, OuterCount5, OuterCount6, OuterCount7 */ #define MR_PROCNAME \"restore_recursion_depth_fail_7\" #define MR_REC_DEPTH_BODY { \\ MR_RESTORE_DEPTH_FAIL(OuterCount1, \\ MR_csn_vector_field(CSNsVector, 0)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount2, \\ MR_csn_vector_field(CSNsVector, 1)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount3, \\ MR_csn_vector_field(CSNsVector, 2)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount4, \\ MR_csn_vector_field(CSNsVector, 3)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount5, \\ MR_csn_vector_field(CSNsVector, 4)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount6, \\ MR_csn_vector_field(CSNsVector, 5)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount7, \\ MR_csn_vector_field(CSNsVector, 6)); \\ } #include \"mercury_deep_rec_depth_body.h\" #undef MR_PROCNAME #undef MR_REC_DEPTH_BODY }"). :- pragma foreign_proc("C", profiling_builtin:restore_recursion_depth_fail_8(CSD :: (builtin:in), CSNsVector :: (builtin:in), OuterCount1 :: (builtin:in), OuterCount2 :: (builtin:in), OuterCount3 :: (builtin:in), OuterCount4 :: (builtin:in), OuterCount5 :: (builtin:in), OuterCount6 :: (builtin:in), OuterCount7 :: (builtin:in), OuterCount8 :: (builtin:in)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ /* shut up warning: CSD, CSNsVector, OuterCount1, OuterCount2, OuterCount3 */ /* shut up warning: OuterCount4, OuterCount5, OuterCount6, OuterCount7 */ /* shut up warning: OuterCount8 */ #define MR_PROCNAME \"restore_recursion_depth_fail_8\" #define MR_REC_DEPTH_BODY { \\ MR_RESTORE_DEPTH_FAIL(OuterCount1, \\ MR_csn_vector_field(CSNsVector, 0)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount2, \\ MR_csn_vector_field(CSNsVector, 1)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount3, \\ MR_csn_vector_field(CSNsVector, 2)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount4, \\ MR_csn_vector_field(CSNsVector, 3)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount5, \\ MR_csn_vector_field(CSNsVector, 4)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount6, \\ MR_csn_vector_field(CSNsVector, 5)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount7, \\ MR_csn_vector_field(CSNsVector, 6)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount8, \\ MR_csn_vector_field(CSNsVector, 7)); \\ } #include \"mercury_deep_rec_depth_body.h\" #undef MR_PROCNAME #undef MR_REC_DEPTH_BODY }"). :- pragma foreign_proc("C", profiling_builtin:restore_recursion_depth_fail_9(CSD :: (builtin:in), CSNsVector :: (builtin:in), OuterCount1 :: (builtin:in), OuterCount2 :: (builtin:in), OuterCount3 :: (builtin:in), OuterCount4 :: (builtin:in), OuterCount5 :: (builtin:in), OuterCount6 :: (builtin:in), OuterCount7 :: (builtin:in), OuterCount8 :: (builtin:in), OuterCount9 :: (builtin:in)), [will_not_call_mercury, thread_safe, not_tabled_for_io], "{ /* shut up warning: CSD, CSNsVector, OuterCount1, OuterCount2, OuterCount3 */ /* shut up warning: OuterCount4, OuterCount5, OuterCount6, OuterCount7 */ /* shut up warning: OuterCount8, OuterCount9 */ #define MR_PROCNAME \"restore_recursion_depth_fail_9\" #define MR_REC_DEPTH_BODY { \\ MR_RESTORE_DEPTH_FAIL(OuterCount1, \\ MR_csn_vector_field(CSNsVector, 0)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount2, \\ MR_csn_vector_field(CSNsVector, 1)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount3, \\ MR_csn_vector_field(CSNsVector, 2)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount4, \\ MR_csn_vector_field(CSNsVector, 3)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount5, \\ MR_csn_vector_field(CSNsVector, 4)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount6, \\ MR_csn_vector_field(CSNsVector, 5)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount7, \\ MR_csn_vector_field(CSNsVector, 6)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount8, \\ MR_csn_vector_field(CSNsVector, 7)); \\ MR_RESTORE_DEPTH_FAIL(OuterCount9, \\ MR_csn_vector_field(CSNsVector, 8)); \\ } #include \"mercury_deep_rec_depth_body.h\" #undef MR_PROCNAME #undef MR_REC_DEPTH_BODY }"). :- pragma termination_info(profiling_builtin:prepare_for_normal_call((builtin:in)), finite(0, [no]), cannot_loop). :- pragma termination_info(profiling_builtin:prepare_for_special_call((builtin:in), (builtin:in)), finite(0, [no, no]), cannot_loop). :- pragma termination_info(profiling_builtin:prepare_for_ho_call((builtin:in), (builtin:in)), finite(0, [no, no]), cannot_loop). :- pragma termination_info(profiling_builtin:prepare_for_method_call((builtin:in), (builtin:in), (builtin:in)), finite(0, [no, no, no]), cannot_loop). :- pragma termination_info(profiling_builtin:prepare_for_callback((builtin:in)), finite(0, [no]), cannot_loop). :- pragma termination_info(profiling_builtin:prepare_for_tail_call((builtin:in)), finite(0, [no]), cannot_loop). :- pragma termination_info(profiling_builtin:save_and_zero_activation_info_ac((builtin:out), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(profiling_builtin:save_and_zero_activation_info_sr((builtin:out)), infinite, cannot_loop). :- pragma termination_info((profiling_builtin:rezero_activation_info_ac), finite(0, []), cannot_loop). :- pragma termination_info((profiling_builtin:rezero_activation_info_sr), finite(0, []), cannot_loop). :- pragma termination_info(profiling_builtin:reset_activation_info_ac((builtin:in), (builtin:in)), finite(0, [no, no]), cannot_loop). :- pragma termination_info(profiling_builtin:reset_activation_info_sr((builtin:in)), finite(0, [no]), cannot_loop). :- pragma termination_info(profiling_builtin:save_recursion_depth_1((builtin:in), (builtin:in), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(profiling_builtin:save_recursion_depth_2((builtin:in), (builtin:in), (builtin:out), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(profiling_builtin:save_recursion_depth_3((builtin:in), (builtin:in), (builtin:out), (builtin:out), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(profiling_builtin:save_recursion_depth_4((builtin:in), (builtin:in), (builtin:out), (builtin:out), (builtin:out), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(profiling_builtin:save_recursion_depth_5((builtin:in), (builtin:in), (builtin:out), (builtin:out), (builtin:out), (builtin:out), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(profiling_builtin:save_recursion_depth_6((builtin:in), (builtin:in), (builtin:out), (builtin:out), (builtin:out), (builtin:out), (builtin:out), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(profiling_builtin:save_recursion_depth_7((builtin:in), (builtin:in), (builtin:out), (builtin:out), (builtin:out), (builtin:out), (builtin:out), (builtin:out), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(profiling_builtin:save_recursion_depth_8((builtin:in), (builtin:in), (builtin:out), (builtin:out), (builtin:out), (builtin:out), (builtin:out), (builtin:out), (builtin:out), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(profiling_builtin:save_recursion_depth_9((builtin:in), (builtin:in), (builtin:out), (builtin:out), (builtin:out), (builtin:out), (builtin:out), (builtin:out), (builtin:out), (builtin:out), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(profiling_builtin:restore_recursion_depth_exit_1((builtin:in), (builtin:in), (builtin:in)), finite(0, [no, no, no]), cannot_loop). :- pragma termination_info(profiling_builtin:restore_recursion_depth_exit_2((builtin:in), (builtin:in), (builtin:in), (builtin:in)), finite(0, [no, no, no, no]), cannot_loop). :- pragma termination_info(profiling_builtin:restore_recursion_depth_exit_3((builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in)), finite(0, [no, no, no, no, no]), cannot_loop). :- pragma termination_info(profiling_builtin:restore_recursion_depth_exit_4((builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in)), finite(0, [no, no, no, no, no, no]), cannot_loop). :- pragma termination_info(profiling_builtin:restore_recursion_depth_exit_5((builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in)), finite(0, [no, no, no, no, no, no, no]), cannot_loop). :- pragma termination_info(profiling_builtin:restore_recursion_depth_exit_6((builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in)), finite(0, [no, no, no, no, no, no, no, no]), cannot_loop). :- pragma termination_info(profiling_builtin:restore_recursion_depth_exit_7((builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in)), finite(0, [no, no, no, no, no, no, no, no, no]), cannot_loop). :- pragma termination_info(profiling_builtin:restore_recursion_depth_exit_8((builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in)), finite(0, [no, no, no, no, no, no, no, no, no, no]), cannot_loop). :- pragma termination_info(profiling_builtin:restore_recursion_depth_exit_9((builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in)), finite(0, [no, no, no, no, no, no, no, no, no, no, no]), cannot_loop). :- pragma termination_info(profiling_builtin:restore_recursion_depth_fail_1((builtin:in), (builtin:in), (builtin:in)), finite(0, [no, no, no]), cannot_loop). :- pragma termination_info(profiling_builtin:restore_recursion_depth_fail_2((builtin:in), (builtin:in), (builtin:in), (builtin:in)), finite(0, [no, no, no, no]), cannot_loop). :- pragma termination_info(profiling_builtin:restore_recursion_depth_fail_3((builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in)), finite(0, [no, no, no, no, no]), cannot_loop). :- pragma termination_info(profiling_builtin:restore_recursion_depth_fail_4((builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in)), finite(0, [no, no, no, no, no, no]), cannot_loop). :- pragma termination_info(profiling_builtin:restore_recursion_depth_fail_5((builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in)), finite(0, [no, no, no, no, no, no, no]), cannot_loop). :- pragma termination_info(profiling_builtin:restore_recursion_depth_fail_6((builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in)), finite(0, [no, no, no, no, no, no, no, no]), cannot_loop). :- pragma termination_info(profiling_builtin:restore_recursion_depth_fail_7((builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in)), finite(0, [no, no, no, no, no, no, no, no, no]), cannot_loop). :- pragma termination_info(profiling_builtin:restore_recursion_depth_fail_8((builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in)), finite(0, [no, no, no, no, no, no, no, no, no, no]), cannot_loop). :- pragma termination_info(profiling_builtin:restore_recursion_depth_fail_9((builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:in)), finite(0, [no, no, no, no, no, no, no, no, no, no, no]), cannot_loop).