Stage: Initial IR let (global print_string : (char*) -> int)(v_849) = let print_string_850 = $external(%print_string : (char*) -> int, v_849) in $return print_string_850 in let make_var_defs_851 : int = 0 in let (global print_int : (int) -> int)(v_852) = let print_int_853 = $external(%print_int : (int) -> int, v_852) in $return print_int_853 in let make_var_defs_854 : int = 0 in let type item_855 = struct { int index; char[10] data; } in let (global qsort : (item_855*, ((item_855, item_855) -> int)*, int) -> int)(a_856, compare_857, len_858) = let (make_seq_expr_fun_859 : (int) -> int)(make_seq_expr_arg_860) = $return make_seq_expr_arg_860 in let (global partition_861 : (int, int) -> int)(low_862, high_863) = let (make_seq_expr_fun_864 : (int) -> int)(make_seq_expr_arg_865) = $return make_seq_expr_arg_865 in let subscript_expr_866 : item_855 = a_856[low_862] in let x_867 : item_855 = copy(subscript_expr_866) in let make_var_defs_868 : int = 0 in let make_scalar_869 : int = 1 in let binop_expr_870 : int = low_862 - make_scalar_869 in let i_871 : int = copy(binop_expr_870) in let make_var_defs_872 : int = 0 in let make_scalar_873 : int = 1 in let binop_expr_874 : int = high_863 + make_scalar_873 in let j_875 : int = copy(binop_expr_874) in let make_var_defs_876 : int = 0 in let (break_sym_877 : () -> int)() = let make_while_expr_878 : int = 0 in make_seq_expr_fun_864(make_while_expr_878) in let (make_while_body_879 : () -> int)() = let make_scalar_880 : int = 1 in if make_scalar_880 == 0 then break_sym_877() else let (make_seq_expr_fun_881 : (int) -> int)( make_seq_expr_arg_882) = make_while_body_879() in let (break_sym_883 : () -> int)() = let make_while_expr_884 : int = 0 in let (break_sym_885 : () -> int)() = let make_while_expr_886 : int = 0 in let (relop_expr_fun_887 : (int) -> int)( relop_expr_888) = let (make_if_cont_fun_889 : (int) -> int)(make_if_cont_arg_890) = make_seq_expr_fun_881( make_if_cont_arg_890) in if relop_expr_888 == 0 then $return j_875 else let (make_seq_expr_fun_891 : (int) -> int)(make_seq_expr_arg_892) = make_if_cont_fun_889( make_seq_expr_arg_892) in let subscript_expr_893 : item_855 = a_856[i_871] in let temp_894 : item_855 = copy(subscript_expr_893) in let make_var_defs_895 : int = 0 in let subscript_expr_896 : item_855 = a_856[j_875] in let assign_subscript_897 : item_855 = subscript_expr_896 in a_856[i_871] : item_855 <- assign_subscript_897; let assign_subscript_898 : item_855 = temp_894 in a_856[j_875] : item_855 <- assign_subscript_898; let make_scalar_899 : int = 0 in make_seq_expr_fun_891( make_scalar_899) in if i_871 < j_875 then relop_expr_fun_887(1) else relop_expr_fun_887(0) in let (make_while_body_900 : () -> int)( ) = let compare_901 : (item_855, item_855) -> int = (fun) compare_857 in let uarith_expr_902 : int = i_871 + 1 in i_871 : int <- uarith_expr_902; let subscript_expr_903 : item_855 = a_856[uarith_expr_902] in let apply_expr_904 : int = compare_901(subscript_expr_903, x_867) in let make_scalar_905 : int = 0 in let (relop_expr_fun_906 : (int) -> int)( relop_expr_907) = if relop_expr_907 == 0 then break_sym_885() else let make_seq_expr_arg_908 : int = 0 in make_while_body_900( ) in if apply_expr_904 < make_scalar_905 then relop_expr_fun_906(1) else relop_expr_fun_906(0) in make_while_body_900() in let (make_while_body_909 : () -> int)() = let compare_910 : (item_855, item_855) -> int = (fun) compare_857 in let uarith_expr_911 : int = j_875 - 1 in j_875 : int <- uarith_expr_911; let subscript_expr_912 : item_855 = a_856[uarith_expr_911] in let apply_expr_913 : int = compare_910(subscript_expr_912, x_867) in let make_scalar_914 : int = 0 in let (relop_expr_fun_915 : (int) -> int)( relop_expr_916) = if relop_expr_916 == 0 then break_sym_883() else let make_seq_expr_arg_917 : int = 0 in make_while_body_909() in if apply_expr_913 > make_scalar_914 then relop_expr_fun_915(1) else relop_expr_fun_915(0) in make_while_body_909() in make_while_body_879() in let (global quicksort_918 : (int, int) -> int)(low_919, high_920) = let (make_seq_expr_fun_921 : (int) -> int)(make_seq_expr_arg_922) = $return make_seq_expr_arg_922 in let (relop_expr_fun_923 : (int) -> int)(relop_expr_924) = let (unot_expr_fun_925 : (int) -> int)(relop_expr_926) = let (make_if_cont_fun_927 : (int) -> int)( make_if_cont_arg_928) = let apply_expr_929 : int = partition_861(low_919, high_920) in let mid_930 : int = copy(apply_expr_929) in let make_var_defs_931 : int = 0 in let apply_expr_932 : int = quicksort_918(low_919, mid_930) in let make_scalar_933 : int = 1 in let binop_expr_934 : int = mid_930 + make_scalar_933 in let apply_expr_935 : int = quicksort_918(binop_expr_934, high_920) in make_seq_expr_fun_921(apply_expr_935) in if relop_expr_926 == 0 then make_if_cont_fun_927(0) else let make_scalar_936 : int = 0 in $return make_scalar_936 in if relop_expr_924 == 0 then unot_expr_fun_925(1) else unot_expr_fun_925(0) in if low_919 < high_920 then relop_expr_fun_923(1) else relop_expr_fun_923(0) in let make_scalar_937 : int = 0 in let make_scalar_938 : int = 1 in let binop_expr_939 : int = len_858 - make_scalar_938 in let apply_expr_940 : int = quicksort_918(make_scalar_937, binop_expr_939) in $return apply_expr_940 in let (global main : (int, char**) -> int)(argc_941, argv_942) = let (make_seq_expr_fun_943 : (int) -> int)(make_seq_expr_arg_944) = $return make_seq_expr_arg_944 in let a_945 : item_855[10] = uninitialized in let make_var_defs_946 : int = 0 in let i_947 : int = uninitialized in let make_var_defs_948 : int = 0 in let (global compare_949 : (item_855, item_855) -> int)(a_950, b_951) = let (make_seq_expr_fun_952 : (int) -> int)(make_seq_expr_arg_953) = $return make_seq_expr_arg_953 in let addr_of_var_954 : item_855* = &a_950 in let project_expr_955 : int = addr_of_var_954->index in let addr_of_var_956 : item_855* = &b_951 in let project_expr_957 : int = addr_of_var_956->index in let binop_expr_958 : int = project_expr_955 - project_expr_957 in make_seq_expr_fun_952(binop_expr_958) in let make_scalar_959 : int = 7 in let make_scalar_960 : int = 0 in let addr_of_subscript_961 : item_855* = &a_945[make_scalar_960] in let assign_project_962 : int = make_scalar_959 in addr_of_subscript_961->index : int <- make_scalar_959; let make_scalar_963 : int = 5 in let make_scalar_964 : int = 1 in let addr_of_subscript_965 : item_855* = &a_945[make_scalar_964] in let assign_project_966 : int = make_scalar_963 in addr_of_subscript_965->index : int <- make_scalar_963; let make_scalar_967 : int = 2 in let make_scalar_968 : int = 2 in let addr_of_subscript_969 : item_855* = &a_945[make_scalar_968] in let assign_project_970 : int = make_scalar_967 in addr_of_subscript_969->index : int <- make_scalar_967; let make_scalar_971 : int = 12 in let make_scalar_972 : int = 3 in let addr_of_subscript_973 : item_855* = &a_945[make_scalar_972] in let assign_project_974 : int = make_scalar_971 in addr_of_subscript_973->index : int <- make_scalar_971; let make_scalar_975 : int = 4 in let make_scalar_976 : int = 4 in let addr_of_subscript_977 : item_855* = &a_945[make_scalar_976] in let assign_project_978 : int = make_scalar_975 in addr_of_subscript_977->index : int <- make_scalar_975; let make_scalar_979 : int = 5 in let make_scalar_980 : int = 5 in let addr_of_subscript_981 : item_855* = &a_945[make_scalar_980] in let assign_project_982 : int = make_scalar_979 in addr_of_subscript_981->index : int <- make_scalar_979; let make_scalar_983 : int = 0 in let make_scalar_984 : int = 6 in let addr_of_subscript_985 : item_855* = &a_945[make_scalar_984] in let assign_project_986 : int = make_scalar_983 in addr_of_subscript_985->index : int <- make_scalar_983; let make_scalar_987 : int = 10 in let make_scalar_988 : int = 7 in let addr_of_subscript_989 : item_855* = &a_945[make_scalar_988] in let assign_project_990 : int = make_scalar_987 in addr_of_subscript_989->index : int <- make_scalar_987; let make_scalar_991 : int = 1 in let make_scalar_992 : int = 8 in let addr_of_subscript_993 : item_855* = &a_945[make_scalar_992] in let assign_project_994 : int = make_scalar_991 in addr_of_subscript_993->index : int <- make_scalar_991; let make_scalar_995 : int = 11 in let make_scalar_996 : int = 9 in let addr_of_subscript_997 : item_855* = &a_945[make_scalar_996] in let assign_project_998 : int = make_scalar_995 in addr_of_subscript_997->index : int <- make_scalar_995; let make_scalar_999 : int = 10 in let coerce_fun_pointer_1000 : ((item_855, item_855) -> int)* = (fun *) compare_949 in let apply_expr_1001 : int = qsort(a_945, coerce_fun_pointer_1000, make_scalar_999) in let (make_seq_expr_fun_1002 : (int) -> int)(make_seq_expr_arg_1003) = let make_scalar_1004 : int = 0 in $return make_scalar_1004 in let make_scalar_1005 : int = 0 in let assign_var_1006 : int = make_scalar_1005 in i_947 : int <- assign_var_1006; let (break_sym_1007 : () -> int)() = let make_while_expr_1008 : int = 0 in make_seq_expr_fun_1002(make_while_expr_1008) in let (make_while_body_1009 : () -> int)() = let make_scalar_1010 : int = 10 in let (relop_expr_fun_1011 : (int) -> int)(relop_expr_1012) = if relop_expr_1012 == 0 then break_sym_1007() else let (make_seq_expr_fun_1013 : (int) -> int)( make_seq_expr_arg_1014) = make_while_body_1009() in let (make_seq_expr_fun_1015 : (int) -> int)( make_seq_expr_arg_1016) = let uarith_expr_1017 : int = i_947 in let uarith_var_temp_1018 : int = i_947 + 1 in i_947 : int <- uarith_var_temp_1018; make_seq_expr_fun_1013(uarith_expr_1017) in let make_string_1019 = "a[" in let apply_expr_1020 : int = print_string(make_string_1019) in let apply_expr_1021 : int = print_int(i_947) in let make_string_1022 = "].index=" in let apply_expr_1023 : int = print_string(make_string_1022) in let addr_of_subscript_1024 : item_855* = &a_945[i_947] in let project_expr_1025 : int = addr_of_subscript_1024->index in let apply_expr_1026 : int = print_int(project_expr_1025) in let make_string_1027 = "\n" in let apply_expr_1028 : int = print_string(make_string_1027) in make_seq_expr_fun_1015(apply_expr_1028) in if i_947 != make_scalar_1010 then relop_expr_fun_1011(1) else relop_expr_fun_1011(0) in make_while_body_1009() in $return 0 Stage: CPS conversion let (print_string_1041 : ((int) -> int, char*) -> int)(exit_1042, v_1043) = let print_string_1044 = $external(%print_string : (char*) -> int, v_1043) in exit_1042(print_string_1044) in let make_var_defs_1045 : int = 0 in let (print_int_1046 : ((int) -> int, int) -> int)(exit_1047, v_1048) = let print_int_1049 = $external(%print_int : (int) -> int, v_1048) in exit_1047(print_int_1049) in let make_var_defs_1050 : int = 0 in let type item_1051 = struct { int index; char[10] data; } in let (global qsort : ((int) -> int, item_1051*, (((int) -> int, item_1051, item_1051) -> int)*, int) -> int)(exit_1052, a_1053, compare_1054, len_1055) = let (make_seq_expr_fun_1056 : (int) -> int)(make_seq_expr_arg_1057) = exit_1052(make_seq_expr_arg_1057) in let (global partition_1058 : ((int) -> int, int, int) -> int)( exit_1059, low_1060, high_1061) = let (make_seq_expr_fun_1062 : (int) -> int)(make_seq_expr_arg_1063) = exit_1059(make_seq_expr_arg_1063) in let subscript_expr_1064 : item_1051 = a_1053[low_1060] in let x_1065 : item_1051 = copy(subscript_expr_1064) in let make_var_defs_1066 : int = 0 in let make_scalar_1067 : int = 1 in let binop_expr_1068 : int = low_1060 - make_scalar_1067 in let i_1069 : int = copy(binop_expr_1068) in let make_var_defs_1070 : int = 0 in let make_scalar_1071 : int = 1 in let binop_expr_1072 : int = high_1061 + make_scalar_1071 in let j_1073 : int = copy(binop_expr_1072) in let make_var_defs_1074 : int = 0 in let (break_sym_1075 : () -> int)() = let make_while_expr_1076 : int = 0 in make_seq_expr_fun_1062(make_while_expr_1076) in let (make_while_body_1077 : () -> int)() = let make_scalar_1078 : int = 1 in if make_scalar_1078 == 0 then break_sym_1075() else let (make_seq_expr_fun_1079 : (int) -> int)( make_seq_expr_arg_1080) = make_while_body_1077() in let (break_sym_1081 : () -> int)() = let make_while_expr_1082 : int = 0 in let (break_sym_1083 : () -> int)() = let make_while_expr_1084 : int = 0 in let (relop_expr_fun_1085 : (int) -> int)( relop_expr_1086) = let (make_if_cont_fun_1087 : (int) -> int)(make_if_cont_arg_1088) = make_seq_expr_fun_1079( make_if_cont_arg_1088) in if relop_expr_1086 == 0 then exit_1059(j_1073) else let (make_seq_expr_fun_1089 : (int) -> int)(make_seq_expr_arg_1090) = make_if_cont_fun_1087( make_seq_expr_arg_1090) in let subscript_expr_1091 : item_1051 = a_1053[i_1069] in let temp_1092 : item_1051 = copy(subscript_expr_1091) in let make_var_defs_1093 : int = 0 in let subscript_expr_1094 : item_1051 = a_1053[j_1073] in let assign_subscript_1095 : item_1051 = subscript_expr_1094 in a_1053[i_1069] : item_1051 <- assign_subscript_1095; let assign_subscript_1096 : item_1051 = temp_1092 in a_1053[j_1073] : item_1051 <- assign_subscript_1096; let make_scalar_1097 : int = 0 in make_seq_expr_fun_1089( make_scalar_1097) in if i_1069 < j_1073 then relop_expr_fun_1085(1) else relop_expr_fun_1085(0) in let (make_while_body_1098 : () -> int)( ) = let compare_1099 : ((int) -> int, item_1051, item_1051) -> int = (fun) compare_1054 in let uarith_expr_1100 : int = i_1069 + 1 in i_1069 : int <- uarith_expr_1100; let subscript_expr_1101 : item_1051 = a_1053[uarith_expr_1100] in let (global cont_apply_expr_fun_1102 : (int) -> int)(apply_expr_1103) = let make_scalar_1104 : int = 0 in let (relop_expr_fun_1105 : (int) -> int)(relop_expr_1106) = if relop_expr_1106 == 0 then break_sym_1083( ) else let make_seq_expr_arg_1107 : int = 0 in make_while_body_1098( ) in if apply_expr_1103 < make_scalar_1104 then relop_expr_fun_1105( 1) else relop_expr_fun_1105(0) in compare_1099(cont_apply_expr_fun_1102, subscript_expr_1101, x_1065) in make_while_body_1098() in let (make_while_body_1108 : () -> int)() = let compare_1109 : ((int) -> int, item_1051, item_1051) -> int = (fun) compare_1054 in let uarith_expr_1110 : int = j_1073 - 1 in j_1073 : int <- uarith_expr_1110; let subscript_expr_1111 : item_1051 = a_1053[uarith_expr_1110] in let (global cont_apply_expr_fun_1112 : (int) -> int)(apply_expr_1113) = let make_scalar_1114 : int = 0 in let (relop_expr_fun_1115 : (int) -> int)( relop_expr_1116) = if relop_expr_1116 == 0 then break_sym_1081() else let make_seq_expr_arg_1117 : int = 0 in make_while_body_1108( ) in if apply_expr_1113 > make_scalar_1114 then relop_expr_fun_1115(1) else relop_expr_fun_1115(0) in compare_1109(cont_apply_expr_fun_1112, subscript_expr_1111, x_1065) in make_while_body_1108() in make_while_body_1077() in let (global quicksort_1118 : ((int) -> int, int, int) -> int)( exit_1119, low_1120, high_1121) = let (make_seq_expr_fun_1122 : (int) -> int)(make_seq_expr_arg_1123) = exit_1119(make_seq_expr_arg_1123) in let (relop_expr_fun_1124 : (int) -> int)(relop_expr_1125) = let (unot_expr_fun_1126 : (int) -> int)(relop_expr_1127) = let (make_if_cont_fun_1128 : (int) -> int)( make_if_cont_arg_1129) = let (global cont_apply_expr_fun_1130 : (int) -> int)(apply_expr_1131) = let mid_1132 : int = copy(apply_expr_1131) in let make_var_defs_1133 : int = 0 in let (global cont_apply_expr_fun_1134 : (int) -> int)(apply_expr_1135) = let make_scalar_1136 : int = 1 in let binop_expr_1137 : int = mid_1132 + make_scalar_1136 in let (global cont_apply_expr_fun_1138 : (int) -> int)(apply_expr_1139) = make_seq_expr_fun_1122( apply_expr_1139) in quicksort_1118(cont_apply_expr_fun_1138, binop_expr_1137, high_1121) in quicksort_1118(cont_apply_expr_fun_1134, low_1120, mid_1132) in partition_1058(cont_apply_expr_fun_1130, low_1120, high_1121) in if relop_expr_1127 == 0 then make_if_cont_fun_1128(0) else let make_scalar_1140 : int = 0 in exit_1119(make_scalar_1140) in if relop_expr_1125 == 0 then unot_expr_fun_1126(1) else unot_expr_fun_1126(0) in if low_1120 < high_1121 then relop_expr_fun_1124(1) else relop_expr_fun_1124(0) in let make_scalar_1141 : int = 0 in let make_scalar_1142 : int = 1 in let binop_expr_1143 : int = len_1055 - make_scalar_1142 in let (global cont_apply_expr_fun_1144 : (int) -> int)(apply_expr_1145) = exit_1052(apply_expr_1145) in quicksort_1118(cont_apply_expr_fun_1144, make_scalar_1141, binop_expr_1143) in let (global main : ((int) -> int, int, char**) -> int)(exit_1146, argc_1147, argv_1148) = let (make_seq_expr_fun_1149 : (int) -> int)(make_seq_expr_arg_1150) = exit_1146(make_seq_expr_arg_1150) in let a_1151 : item_1051[10] = uninitialized in let make_var_defs_1152 : int = 0 in let i_1153 : int = uninitialized in let make_var_defs_1154 : int = 0 in let (global compare_1155 : ((int) -> int, item_1051, item_1051) -> int)(exit_1156, a_1157, b_1158) = let (make_seq_expr_fun_1159 : (int) -> int)(make_seq_expr_arg_1160) = exit_1156(make_seq_expr_arg_1160) in let addr_of_var_1161 : item_1051* = &a_1157 in let project_expr_1162 : int = addr_of_var_1161->index in let addr_of_var_1163 : item_1051* = &b_1158 in let project_expr_1164 : int = addr_of_var_1163->index in let binop_expr_1165 : int = project_expr_1162 - project_expr_1164 in make_seq_expr_fun_1159(binop_expr_1165) in let make_scalar_1166 : int = 7 in let make_scalar_1167 : int = 0 in let addr_of_subscript_1168 : item_1051* = &a_1151[make_scalar_1167] in let assign_project_1169 : int = make_scalar_1166 in addr_of_subscript_1168->index : int <- make_scalar_1166; let make_scalar_1170 : int = 5 in let make_scalar_1171 : int = 1 in let addr_of_subscript_1172 : item_1051* = &a_1151[make_scalar_1171] in let assign_project_1173 : int = make_scalar_1170 in addr_of_subscript_1172->index : int <- make_scalar_1170; let make_scalar_1174 : int = 2 in let make_scalar_1175 : int = 2 in let addr_of_subscript_1176 : item_1051* = &a_1151[make_scalar_1175] in let assign_project_1177 : int = make_scalar_1174 in addr_of_subscript_1176->index : int <- make_scalar_1174; let make_scalar_1178 : int = 12 in let make_scalar_1179 : int = 3 in let addr_of_subscript_1180 : item_1051* = &a_1151[make_scalar_1179] in let assign_project_1181 : int = make_scalar_1178 in addr_of_subscript_1180->index : int <- make_scalar_1178; let make_scalar_1182 : int = 4 in let make_scalar_1183 : int = 4 in let addr_of_subscript_1184 : item_1051* = &a_1151[make_scalar_1183] in let assign_project_1185 : int = make_scalar_1182 in addr_of_subscript_1184->index : int <- make_scalar_1182; let make_scalar_1186 : int = 5 in let make_scalar_1187 : int = 5 in let addr_of_subscript_1188 : item_1051* = &a_1151[make_scalar_1187] in let assign_project_1189 : int = make_scalar_1186 in addr_of_subscript_1188->index : int <- make_scalar_1186; let make_scalar_1190 : int = 0 in let make_scalar_1191 : int = 6 in let addr_of_subscript_1192 : item_1051* = &a_1151[make_scalar_1191] in let assign_project_1193 : int = make_scalar_1190 in addr_of_subscript_1192->index : int <- make_scalar_1190; let make_scalar_1194 : int = 10 in let make_scalar_1195 : int = 7 in let addr_of_subscript_1196 : item_1051* = &a_1151[make_scalar_1195] in let assign_project_1197 : int = make_scalar_1194 in addr_of_subscript_1196->index : int <- make_scalar_1194; let make_scalar_1198 : int = 1 in let make_scalar_1199 : int = 8 in let addr_of_subscript_1200 : item_1051* = &a_1151[make_scalar_1199] in let assign_project_1201 : int = make_scalar_1198 in addr_of_subscript_1200->index : int <- make_scalar_1198; let make_scalar_1202 : int = 11 in let make_scalar_1203 : int = 9 in let addr_of_subscript_1204 : item_1051* = &a_1151[make_scalar_1203] in let assign_project_1205 : int = make_scalar_1202 in addr_of_subscript_1204->index : int <- make_scalar_1202; let make_scalar_1206 : int = 10 in let coerce_fun_pointer_1207 : (((int) -> int, item_1051, item_1051) -> int)* = (fun *) compare_1155 in let (global cont_apply_expr_fun_1208 : (int) -> int)(apply_expr_1209) = let (make_seq_expr_fun_1210 : (int) -> int)(make_seq_expr_arg_1211) = let make_scalar_1212 : int = 0 in exit_1146(make_scalar_1212) in let make_scalar_1213 : int = 0 in let assign_var_1214 : int = make_scalar_1213 in i_1153 : int <- assign_var_1214; let (break_sym_1215 : () -> int)() = let make_while_expr_1216 : int = 0 in make_seq_expr_fun_1210(make_while_expr_1216) in let (make_while_body_1217 : () -> int)() = let make_scalar_1218 : int = 10 in let (relop_expr_fun_1219 : (int) -> int)(relop_expr_1220) = if relop_expr_1220 == 0 then break_sym_1215() else let (make_seq_expr_fun_1221 : (int) -> int)( make_seq_expr_arg_1222) = make_while_body_1217() in let (make_seq_expr_fun_1223 : (int) -> int)( make_seq_expr_arg_1224) = let uarith_expr_1225 : int = i_1153 in let uarith_var_temp_1226 : int = i_1153 + 1 in i_1153 : int <- uarith_var_temp_1226; make_seq_expr_fun_1221(uarith_expr_1225) in let make_string_1227 = "a[" in let (global cont_apply_expr_fun_1228 : (int) -> int)(apply_expr_1229) = let (global cont_apply_expr_fun_1230 : (int) -> int)(apply_expr_1231) = let make_string_1232 = "].index=" in let (global cont_apply_expr_fun_1233 : (int) -> int)(apply_expr_1234) = let addr_of_subscript_1235 : item_1051* = &a_1151[i_1153] in let project_expr_1236 : int = addr_of_subscript_1235->index in let (global cont_apply_expr_fun_1237 : (int) -> int)( apply_expr_1238) = let make_string_1239 = "\n" in let (global cont_apply_expr_fun_1240 : (int) -> int)( apply_expr_1241) = make_seq_expr_fun_1223( apply_expr_1241) in print_string_1041( cont_apply_expr_fun_1240, make_string_1239) in print_int_1046( cont_apply_expr_fun_1237, project_expr_1236) in print_string_1041(cont_apply_expr_fun_1233, make_string_1232) in print_int_1046(cont_apply_expr_fun_1230, i_1153) in print_string_1041(cont_apply_expr_fun_1228, make_string_1227) in if i_1153 != make_scalar_1218 then relop_expr_fun_1219(1) else relop_expr_fun_1219(0) in make_while_body_1217() in qsort(cont_apply_expr_fun_1208, a_1151, coerce_fun_pointer_1207, make_scalar_1206) in exit(0) Stage: Escape analysis let (print_string_1288 : ((int) -> int, char*) -> int)(exit_1289, v_1290) = let print_string_1291 = $external(%print_string : (char*) -> int, v_1290) in exit_1289(print_string_1291) in let make_var_defs_1292 : int = 0 in let (print_int_1293 : ((int) -> int, int) -> int)(exit_1294, v_1295) = let print_int_1296 = $external(%print_int : (int) -> int, v_1295) in exit_1294(print_int_1296) in let make_var_defs_1297 : int = 0 in let type item_1051 = struct { int index; char[10] data; } in let (global qsort : ((int) -> int, item_1051*, (((int) -> int, item_1051*, item_1051*) -> int)*, int) -> int)(exit_1298, a_1299, compare_1300, len_1301) = let type frame_1242 = struct { (((int) -> int, item_1051*, item_1051*) -> int)* compare_1054; item_1051* a_1053; } in let frame_1302 : frame_1242* = alloc(frame_1242) in frame_1302->compare_1054 : (((int) -> int, item_1051*, item_1051*) -> int)* <- compare_1300; frame_1302->a_1053 : item_1051* <- a_1299; let (make_seq_expr_fun_1303 : (int) -> int)(make_seq_expr_arg_1304) = exit_1298(make_seq_expr_arg_1304) in let (partition_1305 : ((int) -> int, int, int) -> int)(exit_1306, low_1307, high_1308) = let type frame_1243 = struct { item_1051 subscript_expr_1111; item_1051 subscript_expr_1101; item_1051 subscript_expr_1094; item_1051 temp_1092; item_1051 subscript_expr_1091; item_1051 x_1065; item_1051 subscript_expr_1064; } in let frame_1309 : frame_1243* = alloc(frame_1243) in let (make_seq_expr_fun_1310 : (int) -> int)(make_seq_expr_arg_1311) = exit_1306(make_seq_expr_arg_1311) in let a_1312 : item_1051* = frame_1302->a_1053 in let subscript_expr_1313 : (struct { int index; char[10] data; })* = &a_1312[low_1307] in let subscript_expr_1314 : (struct { int index; char[10] data; })* = &frame_1309->subscript_expr_1064 in memcpy(subscript_expr_1314 : item_1051, subscript_expr_1313); let subscript_expr_1315 : (struct { int index; char[10] data; })* = &frame_1309->subscript_expr_1064 in let x_1316 : (struct { int index; char[10] data; })* = &frame_1309->x_1065 in memcpy(x_1316 : item_1051, subscript_expr_1315); let make_var_defs_1317 : int = 0 in let make_scalar_1318 : int = 1 in let binop_expr_1319 : int = low_1307 - make_scalar_1318 in let i_1320 : int = binop_expr_1319 in let make_var_defs_1321 : int = 0 in let make_scalar_1322 : int = 1 in let binop_expr_1323 : int = high_1308 + make_scalar_1322 in let j_1324 : int = binop_expr_1323 in let make_var_defs_1325 : int = 0 in let (break_sym_1326 : () -> int)() = let make_while_expr_1327 : int = 0 in make_seq_expr_fun_1310(make_while_expr_1327) in let (make_while_body_1328 : () -> int)() = let make_scalar_1329 : int = 1 in if make_scalar_1329 == 0 then break_sym_1326() else let (make_seq_expr_fun_1330 : (int) -> int)( make_seq_expr_arg_1331) = make_while_body_1328() in let (break_sym_1332 : () -> int)() = let make_while_expr_1333 : int = 0 in let (break_sym_1334 : () -> int)() = let make_while_expr_1335 : int = 0 in let (relop_expr_fun_1336 : (int) -> int)( relop_expr_1337) = let (make_if_cont_fun_1338 : (int) -> int)(make_if_cont_arg_1339) = make_seq_expr_fun_1330( make_if_cont_arg_1339) in if relop_expr_1337 == 0 then exit_1306(j_1324) else let (make_seq_expr_fun_1340 : (int) -> int)(make_seq_expr_arg_1341) = make_if_cont_fun_1338( make_seq_expr_arg_1341) in let a_1342 : item_1051* = frame_1302->a_1053 in let subscript_expr_1343 : (struct { int index; char[10] data; })* = &a_1342[i_1320] in let subscript_expr_1344 : (struct { int index; char[10] data; })* = &frame_1309->subscript_expr_1091 in memcpy(subscript_expr_1344 : item_1051, subscript_expr_1343); let subscript_expr_1345 : (struct { int index; char[10] data; })* = &frame_1309->subscript_expr_1091 in let temp_1346 : (struct { int index; char[10] data; })* = &frame_1309->temp_1092 in memcpy(temp_1346 : item_1051, subscript_expr_1345); let make_var_defs_1347 : int = 0 in let a_1348 : item_1051* = frame_1302->a_1053 in let subscript_expr_1349 : (struct { int index; char[10] data; })* = &a_1348[j_1324] in let subscript_expr_1350 : (struct { int index; char[10] data; })* = &frame_1309->subscript_expr_1094 in memcpy(subscript_expr_1350 : item_1051, subscript_expr_1349); let a_1351 : item_1051* = frame_1302->a_1053 in let subscript_expr_1352 : (struct { int index; char[10] data; })* = &frame_1309->subscript_expr_1094 in let aelim_set_subscript_expr_1353 : (struct { int index; char[10] data; })* = &a_1351[i_1320] in memcpy(aelim_set_subscript_expr_1353 : item_1051, subscript_expr_1352); let a_1354 : item_1051* = frame_1302->a_1053 in let temp_1355 : (struct { int index; char[10] data; })* = &frame_1309->temp_1092 in let aelim_set_subscript_expr_1356 : (struct { int index; char[10] data; })* = &a_1354[j_1324] in memcpy(aelim_set_subscript_expr_1356 : item_1051, temp_1355); let make_scalar_1357 : int = 0 in make_seq_expr_fun_1340( make_scalar_1357) in if i_1320 < j_1324 then relop_expr_fun_1336(1) else relop_expr_fun_1336(0) in let (make_while_body_1358 : () -> int)( ) = let compare_1359 : (((int) -> int, item_1051*, item_1051*) -> int)* = frame_1302->compare_1054 in let compare_1360 : ((int) -> int, item_1051*, item_1051*) -> int = (fun) compare_1359 in let uarith_expr_1361 : int = i_1320 + 1 in i_1320 : int <- uarith_expr_1361; let a_1362 : item_1051* = frame_1302->a_1053 in let subscript_expr_1363 : (struct { int index; char[10] data; })* = &a_1362[uarith_expr_1361] in let subscript_expr_1364 : (struct { int index; char[10] data; })* = &frame_1309->subscript_expr_1101 in memcpy(subscript_expr_1364 : item_1051, subscript_expr_1363); let (cont_apply_expr_fun_1365 : (int) -> int)(apply_expr_1366) = let type frame_1244 = struct { } in let frame_1367 : frame_1244* = alloc(frame_1244) in let make_scalar_1368 : int = 0 in let (relop_expr_fun_1369 : (int) -> int)(relop_expr_1370) = if relop_expr_1370 == 0 then break_sym_1334( ) else let make_seq_expr_arg_1371 : int = 0 in make_while_body_1358( ) in if apply_expr_1366 < make_scalar_1368 then relop_expr_fun_1369( 1) else relop_expr_fun_1369(0) in let subscript_expr_1372 : (struct { int index; char[10] data; })* = &frame_1309->subscript_expr_1101 in let x_1373 : (struct { int index; char[10] data; })* = &frame_1309->x_1065 in compare_1360(cont_apply_expr_fun_1365, subscript_expr_1372, x_1373) in make_while_body_1358() in let (make_while_body_1374 : () -> int)() = let compare_1375 : (((int) -> int, item_1051*, item_1051*) -> int)* = frame_1302->compare_1054 in let compare_1376 : ((int) -> int, item_1051*, item_1051*) -> int = (fun) compare_1375 in let uarith_expr_1377 : int = j_1324 - 1 in j_1324 : int <- uarith_expr_1377; let a_1378 : item_1051* = frame_1302->a_1053 in let subscript_expr_1379 : (struct { int index; char[10] data; })* = &a_1378[uarith_expr_1377] in let subscript_expr_1380 : (struct { int index; char[10] data; })* = &frame_1309->subscript_expr_1111 in memcpy(subscript_expr_1380 : item_1051, subscript_expr_1379); let (cont_apply_expr_fun_1381 : (int) -> int)( apply_expr_1382) = let type frame_1245 = struct { } in let frame_1383 : frame_1245* = alloc(frame_1245) in let make_scalar_1384 : int = 0 in let (relop_expr_fun_1385 : (int) -> int)( relop_expr_1386) = if relop_expr_1386 == 0 then break_sym_1332() else let make_seq_expr_arg_1387 : int = 0 in make_while_body_1374( ) in if apply_expr_1382 > make_scalar_1384 then relop_expr_fun_1385(1) else relop_expr_fun_1385(0) in let subscript_expr_1388 : (struct { int index; char[10] data; })* = &frame_1309->subscript_expr_1111 in let x_1389 : (struct { int index; char[10] data; })* = &frame_1309->x_1065 in compare_1376(cont_apply_expr_fun_1381, subscript_expr_1388, x_1389) in make_while_body_1374() in make_while_body_1328() in let (quicksort_1390 : ((int) -> int, int, int) -> int)(exit_1391, low_1392, high_1393) = let type frame_1246 = struct { int high_1121; int low_1120; } in let frame_1394 : frame_1246* = alloc(frame_1246) in frame_1394->high_1121 : int <- high_1393; frame_1394->low_1120 : int <- low_1392; let (make_seq_expr_fun_1395 : (int) -> int)(make_seq_expr_arg_1396) = exit_1391(make_seq_expr_arg_1396) in let (relop_expr_fun_1397 : (int) -> int)(relop_expr_1398) = let (unot_expr_fun_1399 : (int) -> int)(relop_expr_1400) = let (make_if_cont_fun_1401 : (int) -> int)( make_if_cont_arg_1402) = let (cont_apply_expr_fun_1403 : (int) -> int)(apply_expr_1404) = let type frame_1247 = struct { int mid_1132; } in let frame_1405 : frame_1247* = alloc(frame_1247) in frame_1405->mid_1132 : int <- apply_expr_1404; let make_var_defs_1406 : int = 0 in let (cont_apply_expr_fun_1407 : (int) -> int)(apply_expr_1408) = let type frame_1248 = struct { } in let frame_1409 : frame_1248* = alloc(frame_1248) in let make_scalar_1410 : int = 1 in let mid_1411 : int = frame_1405->mid_1132 in let binop_expr_1412 : int = mid_1411 + make_scalar_1410 in let (cont_apply_expr_fun_1413 : (int) -> int)(apply_expr_1414) = let type frame_1249 = struct { } in let frame_1415 : frame_1249* = alloc(frame_1249) in make_seq_expr_fun_1395( apply_expr_1414) in let high_1416 : int = frame_1394->high_1121 in quicksort_1390(cont_apply_expr_fun_1413, binop_expr_1412, high_1416) in let low_1417 : int = frame_1394->low_1120 in let mid_1418 : int = frame_1405->mid_1132 in quicksort_1390(cont_apply_expr_fun_1407, low_1417, mid_1418) in let low_1419 : int = frame_1394->low_1120 in let high_1420 : int = frame_1394->high_1121 in partition_1305(cont_apply_expr_fun_1403, low_1419, high_1420) in if relop_expr_1400 == 0 then make_if_cont_fun_1401(0) else let make_scalar_1421 : int = 0 in exit_1391(make_scalar_1421) in if relop_expr_1398 == 0 then unot_expr_fun_1399(1) else unot_expr_fun_1399(0) in let low_1422 : int = frame_1394->low_1120 in let high_1423 : int = frame_1394->high_1121 in if low_1422 < high_1423 then relop_expr_fun_1397(1) else relop_expr_fun_1397(0) in let make_scalar_1424 : int = 0 in let make_scalar_1425 : int = 1 in let binop_expr_1426 : int = len_1301 - make_scalar_1425 in let (cont_apply_expr_fun_1427 : (int) -> int)(apply_expr_1428) = let type frame_1250 = struct { } in let frame_1429 : frame_1250* = alloc(frame_1250) in exit_1298(apply_expr_1428) in quicksort_1390(cont_apply_expr_fun_1427, make_scalar_1424, binop_expr_1426) in let (global main : ((int) -> int, int, char**) -> int)(exit_1430, argc_1431, argv_1432) = let type frame_1251 = struct { int i_1153; item_1051[10] a_1151; } in let frame_1433 : frame_1251* = alloc(frame_1251) in let (make_seq_expr_fun_1434 : (int) -> int)(make_seq_expr_arg_1435) = exit_1430(make_seq_expr_arg_1435) in let make_var_defs_1436 : int = 0 in frame_1433->i_1153 : int <- 0; let make_var_defs_1437 : int = 0 in let (compare_1438 : ((int) -> int, item_1051*, item_1051*) -> int)( exit_1439, a_1440, b_1441) = let type frame_1252 = struct { item_1051 b_1158; item_1051 a_1157; } in let frame_1442 : frame_1252* = alloc(frame_1252) in let b_1443 : (struct { int index; char[10] data; })* = &frame_1442->b_1158 in memcpy(b_1443 : item_1051, b_1441); let a_1444 : (struct { int index; char[10] data; })* = &frame_1442->a_1157 in memcpy(a_1444 : item_1051, a_1440); let (make_seq_expr_fun_1445 : (int) -> int)(make_seq_expr_arg_1446) = exit_1439(make_seq_expr_arg_1446) in let a_1447 : (struct { int index; char[10] data; })* = &frame_1442->a_1157 in let addr_of_var_1448 : (struct { int index; char[10] data; })* = a_1447 in let project_expr_1449 : int = addr_of_var_1448->index in let b_1450 : (struct { int index; char[10] data; })* = &frame_1442->b_1158 in let addr_of_var_1451 : (struct { int index; char[10] data; })* = b_1450 in let project_expr_1452 : int = addr_of_var_1451->index in let binop_expr_1453 : int = project_expr_1449 - project_expr_1452 in make_seq_expr_fun_1445(binop_expr_1453) in let make_scalar_1454 : int = 7 in let make_scalar_1455 : int = 0 in let a_1456 : item_1051* = &frame_1433->a_1151 in let addr_of_subscript_1457 : item_1051* = &a_1456[make_scalar_1455] in let addr_of_subscript_1458 : item_1051* = addr_of_subscript_1457 in addr_of_subscript_1458->index : int <- make_scalar_1454; let make_scalar_1459 : int = 5 in let make_scalar_1460 : int = 1 in let a_1461 : item_1051* = &frame_1433->a_1151 in let addr_of_subscript_1462 : item_1051* = &a_1461[make_scalar_1460] in let addr_of_subscript_1463 : item_1051* = addr_of_subscript_1462 in addr_of_subscript_1463->index : int <- make_scalar_1459; let make_scalar_1464 : int = 2 in let make_scalar_1465 : int = 2 in let a_1466 : item_1051* = &frame_1433->a_1151 in let addr_of_subscript_1467 : item_1051* = &a_1466[make_scalar_1465] in let addr_of_subscript_1468 : item_1051* = addr_of_subscript_1467 in addr_of_subscript_1468->index : int <- make_scalar_1464; let make_scalar_1469 : int = 12 in let make_scalar_1470 : int = 3 in let a_1471 : item_1051* = &frame_1433->a_1151 in let addr_of_subscript_1472 : item_1051* = &a_1471[make_scalar_1470] in let addr_of_subscript_1473 : item_1051* = addr_of_subscript_1472 in addr_of_subscript_1473->index : int <- make_scalar_1469; let make_scalar_1474 : int = 4 in let make_scalar_1475 : int = 4 in let a_1476 : item_1051* = &frame_1433->a_1151 in let addr_of_subscript_1477 : item_1051* = &a_1476[make_scalar_1475] in let addr_of_subscript_1478 : item_1051* = addr_of_subscript_1477 in addr_of_subscript_1478->index : int <- make_scalar_1474; let make_scalar_1479 : int = 5 in let make_scalar_1480 : int = 5 in let a_1481 : item_1051* = &frame_1433->a_1151 in let addr_of_subscript_1482 : item_1051* = &a_1481[make_scalar_1480] in let addr_of_subscript_1483 : item_1051* = addr_of_subscript_1482 in addr_of_subscript_1483->index : int <- make_scalar_1479; let make_scalar_1484 : int = 0 in let make_scalar_1485 : int = 6 in let a_1486 : item_1051* = &frame_1433->a_1151 in let addr_of_subscript_1487 : item_1051* = &a_1486[make_scalar_1485] in let addr_of_subscript_1488 : item_1051* = addr_of_subscript_1487 in addr_of_subscript_1488->index : int <- make_scalar_1484; let make_scalar_1489 : int = 10 in let make_scalar_1490 : int = 7 in let a_1491 : item_1051* = &frame_1433->a_1151 in let addr_of_subscript_1492 : item_1051* = &a_1491[make_scalar_1490] in let addr_of_subscript_1493 : item_1051* = addr_of_subscript_1492 in addr_of_subscript_1493->index : int <- make_scalar_1489; let make_scalar_1494 : int = 1 in let make_scalar_1495 : int = 8 in let a_1496 : item_1051* = &frame_1433->a_1151 in let addr_of_subscript_1497 : item_1051* = &a_1496[make_scalar_1495] in let addr_of_subscript_1498 : item_1051* = addr_of_subscript_1497 in addr_of_subscript_1498->index : int <- make_scalar_1494; let make_scalar_1499 : int = 11 in let make_scalar_1500 : int = 9 in let a_1501 : item_1051* = &frame_1433->a_1151 in let addr_of_subscript_1502 : item_1051* = &a_1501[make_scalar_1500] in let addr_of_subscript_1503 : item_1051* = addr_of_subscript_1502 in addr_of_subscript_1503->index : int <- make_scalar_1499; let make_scalar_1504 : int = 10 in let coerce_fun_pointer_1505 : (((int) -> int, item_1051*, item_1051*) -> int)* = (fun *) compare_1438 in let (cont_apply_expr_fun_1506 : (int) -> int)(apply_expr_1507) = let type frame_1253 = struct { } in let frame_1508 : frame_1253* = alloc(frame_1253) in let (make_seq_expr_fun_1509 : (int) -> int)(make_seq_expr_arg_1510) = let make_scalar_1511 : int = 0 in exit_1430(make_scalar_1511) in let make_scalar_1512 : int = 0 in frame_1433->i_1153 : int <- make_scalar_1512; let (break_sym_1513 : () -> int)() = let make_while_expr_1514 : int = 0 in make_seq_expr_fun_1509(make_while_expr_1514) in let (make_while_body_1515 : () -> int)() = let make_scalar_1516 : int = 10 in let (relop_expr_fun_1517 : (int) -> int)(relop_expr_1518) = if relop_expr_1518 == 0 then break_sym_1513() else let (make_seq_expr_fun_1519 : (int) -> int)( make_seq_expr_arg_1520) = make_while_body_1515() in let (make_seq_expr_fun_1521 : (int) -> int)( make_seq_expr_arg_1522) = let i_1523 : int = frame_1433->i_1153 in let uarith_var_temp_1524 : int = i_1523 + 1 in frame_1433->i_1153 : int <- uarith_var_temp_1524; let i_1525 : int = frame_1433->i_1153 in make_seq_expr_fun_1519(i_1525) in let make_string_1526 = "a[" in let (cont_apply_expr_fun_1527 : (int) -> int)( apply_expr_1528) = let type frame_1254 = struct { } in let frame_1529 : frame_1254* = alloc(frame_1254) in let (cont_apply_expr_fun_1530 : (int) -> int)(apply_expr_1531) = let type frame_1255 = struct { } in let frame_1532 : frame_1255* = alloc(frame_1255) in let make_string_1533 = "].index=" in let (cont_apply_expr_fun_1534 : (int) -> int)(apply_expr_1535) = let type frame_1256 = struct { } in let frame_1536 : frame_1256* = alloc(frame_1256) in let a_1537 : item_1051* = &frame_1433->a_1151 in let i_1538 : int = frame_1433->i_1153 in let addr_of_subscript_1539 : item_1051* = &a_1537[i_1538] in let addr_of_subscript_1540 : item_1051* = addr_of_subscript_1539 in let project_expr_1541 : int = addr_of_subscript_1540->index in let (cont_apply_expr_fun_1542 : (int) -> int)( apply_expr_1543) = let type frame_1257 = struct { } in let frame_1544 : frame_1257* = alloc( frame_1257) in let make_string_1545 = "\n" in let (cont_apply_expr_fun_1546 : (int) -> int)( apply_expr_1547) = let type frame_1258 = struct { } in let frame_1548 : frame_1258* = alloc( frame_1258) in make_seq_expr_fun_1521( apply_expr_1547) in print_string_1288( cont_apply_expr_fun_1546, make_string_1545) in print_int_1293( cont_apply_expr_fun_1542, project_expr_1541) in print_string_1288(cont_apply_expr_fun_1534, make_string_1533) in let i_1549 : int = frame_1433->i_1153 in print_int_1293(cont_apply_expr_fun_1530, i_1549) in print_string_1288(cont_apply_expr_fun_1527, make_string_1526) in let i_1550 : int = frame_1433->i_1153 in if i_1550 != make_scalar_1516 then relop_expr_fun_1517(1) else relop_expr_fun_1517(0) in make_while_body_1515() in let a_1551 : item_1051* = &frame_1433->a_1151 in qsort(cont_apply_expr_fun_1506, a_1551, coerce_fun_pointer_1505, make_scalar_1504) in exit(0) Stage: Closure conversion let (print_string_1805 : ((int) -> int, char*) -> int)(exit_1806, v_1807) = let print_string_1808 = $external(%print_string : (char*) -> int, v_1807) in exit_1806(print_string_1808) in let make_var_defs_1809 : int = 0 in let (print_int_1810 : ((int) -> int, int) -> int)(exit_1811, v_1812) = let print_int_1813 = $external(%print_int : (int) -> int, v_1812) in exit_1811(print_int_1813) in let make_var_defs_1814 : int = 0 in let type item_1815 = struct { int index; char[10] data; } in let (global qsort : ((struct { })*, (int) -> int, item_1815*, (((int) -> int, item_1815*, item_1815*) -> int)*, int) -> int)(data_seg_1816, exit_1817, a_1818, compare_1819, len_1820) = let type frame_1821 = struct { (((int) -> int, item_1815*, item_1815*) -> int)* compare_1054; item_1815* a_1053; } in let frame_1822 : frame_1821* = alloc(frame_1821) in frame_1822->compare_1054 : (((int) -> int, item_1815*, item_1815*) -> int)* <- compare_1819; frame_1822->a_1053 : item_1815* <- a_1818; let (make_seq_expr_fun_1823 : ((int) -> int, int) -> int)(exit_1824, make_seq_expr_arg_1825) = exit_1824(make_seq_expr_arg_1825) in let (partition_1826 : (frame_1821*, (int) -> int, int, int) -> int)( frame_1827, exit_1828, low_1829, high_1830) = let type frame_1831 = struct { item_1815 subscript_expr_1111; item_1815 subscript_expr_1101; item_1815 subscript_expr_1094; item_1815 temp_1092; item_1815 subscript_expr_1091; item_1815 x_1065; item_1815 subscript_expr_1064; } in let frame_1832 : frame_1831* = alloc(frame_1831) in let (make_seq_expr_fun_1833 : ((int) -> int, int) -> int)( exit_1834, make_seq_expr_arg_1835) = exit_1834(make_seq_expr_arg_1835) in let a_1836 : item_1815* = frame_1827->a_1053 in let subscript_expr_1837 : (struct { int index; char[10] data; })* = &a_1836[low_1829] in let subscript_expr_1838 : (struct { int index; char[10] data; })* = &frame_1832->subscript_expr_1064 in memcpy(subscript_expr_1838 : item_1815, subscript_expr_1837); let subscript_expr_1839 : (struct { int index; char[10] data; })* = &frame_1832->subscript_expr_1064 in let x_1840 : (struct { int index; char[10] data; })* = &frame_1832->x_1065 in memcpy(x_1840 : item_1815, subscript_expr_1839); let make_var_defs_1841 : int = 0 in let make_scalar_1842 : int = 1 in let binop_expr_1843 : int = low_1829 - make_scalar_1842 in let i_1844 : int = binop_expr_1843 in let make_var_defs_1845 : int = 0 in let make_scalar_1846 : int = 1 in let binop_expr_1847 : int = high_1830 + make_scalar_1846 in let j_1848 : int = binop_expr_1847 in let make_var_defs_1849 : int = 0 in let (break_sym_1850 : ((int) -> int) -> int)(exit_1851) = let make_while_expr_1852 : int = 0 in make_seq_expr_fun_1833(exit_1851, make_while_expr_1852) in let (make_while_body_1853 : (frame_1821*, (int) -> int, frame_1831*, int, int) -> int)(frame_1854, exit_1855, frame_1856, i_1857, j_1858) = let make_scalar_1859 : int = 1 in if make_scalar_1859 == 0 then break_sym_1850(exit_1855) else let (make_seq_expr_fun_1860 : (frame_1821*, (int) -> int, frame_1831*, int, int, int) -> int)(frame_1861, exit_1862, frame_1863, i_1864, j_1865, make_seq_expr_arg_1866) = make_while_body_1853(frame_1861, exit_1862, frame_1863, i_1864, j_1865) in let (break_sym_1867 : (frame_1821*, (int) -> int, frame_1831*, int, int) -> int)(frame_1868, exit_1869, frame_1870, i_1871, j_1872) = let make_while_expr_1873 : int = 0 in let (break_sym_1874 : (frame_1821*, (int) -> int, frame_1831*, int, int) -> int)(frame_1875, exit_1876, frame_1877, i_1878, j_1879) = let make_while_expr_1880 : int = 0 in let (relop_expr_fun_1881 : (frame_1821*, (int) -> int, frame_1831*, int, int, int) -> int)( frame_1882, exit_1883, frame_1884, i_1885, j_1886, relop_expr_1887) = let (make_if_cont_fun_1888 : (frame_1821*, (int) -> int, frame_1831*, int, int, int) -> int)(frame_1889, exit_1890, frame_1891, i_1892, j_1893, make_if_cont_arg_1894) = make_seq_expr_fun_1860( frame_1889, exit_1890, frame_1891, i_1892, j_1893, make_if_cont_arg_1894) in if relop_expr_1887 == 0 then exit_1883(j_1886) else let (make_seq_expr_fun_1895 : (frame_1821*, (int) -> int, frame_1831*, int, int, int) -> int)(frame_1896, exit_1897, frame_1898, i_1899, j_1900, make_seq_expr_arg_1901) = make_if_cont_fun_1888( frame_1896, exit_1897, frame_1898, i_1899, j_1900, make_seq_expr_arg_1901) in let a_1902 : item_1815* = frame_1882->a_1053 in let subscript_expr_1903 : (struct { int index; char[10] data; })* = &a_1902[i_1885] in let subscript_expr_1904 : (struct { int index; char[10] data; })* = &frame_1884->subscript_expr_1091 in memcpy(subscript_expr_1904 : item_1815, subscript_expr_1903); let subscript_expr_1905 : (struct { int index; char[10] data; })* = &frame_1884->subscript_expr_1091 in let temp_1906 : (struct { int index; char[10] data; })* = &frame_1884->temp_1092 in memcpy(temp_1906 : item_1815, subscript_expr_1905); let make_var_defs_1907 : int = 0 in let a_1908 : item_1815* = frame_1882->a_1053 in let subscript_expr_1909 : (struct { int index; char[10] data; })* = &a_1908[j_1886] in let subscript_expr_1910 : (struct { int index; char[10] data; })* = &frame_1884->subscript_expr_1094 in memcpy(subscript_expr_1910 : item_1815, subscript_expr_1909); let a_1911 : item_1815* = frame_1882->a_1053 in let subscript_expr_1912 : (struct { int index; char[10] data; })* = &frame_1884->subscript_expr_1094 in let aelim_set_subscript_expr_1913 : (struct { int index; char[10] data; })* = &a_1911[i_1885] in memcpy(aelim_set_subscript_expr_1913 : item_1815, subscript_expr_1912); let a_1914 : item_1815* = frame_1882->a_1053 in let temp_1915 : (struct { int index; char[10] data; })* = &frame_1884->temp_1092 in let aelim_set_subscript_expr_1916 : (struct { int index; char[10] data; })* = &a_1914[j_1886] in memcpy(aelim_set_subscript_expr_1916 : item_1815, temp_1915); let make_scalar_1917 : int = 0 in make_seq_expr_fun_1895( frame_1882, exit_1883, frame_1884, i_1885, j_1886, make_scalar_1917) in if i_1878 < j_1879 then relop_expr_fun_1881(frame_1875, exit_1876, frame_1877, i_1878, j_1879, 1) else relop_expr_fun_1881(frame_1875, exit_1876, frame_1877, i_1878, j_1879, 0) in let (make_while_body_1918 : (frame_1821*, (int) -> int, frame_1831*, int, int) -> int)( frame_1919, exit_1920, frame_1921, i_1922, j_1923) = let compare_1924 : (((int) -> int, item_1815*, item_1815*) -> int)* = frame_1919->compare_1054 in let compare_1925 : ((int) -> int, item_1815*, item_1815*) -> int = (fun) compare_1924 in let uarith_expr_1926 : int = i_1922 + 1 in let i_1927 : int = uarith_expr_1926 in let a_1928 : item_1815* = frame_1919->a_1053 in let subscript_expr_1929 : (struct { int index; char[10] data; })* = &a_1928[uarith_expr_1926] in let subscript_expr_1930 : (struct { int index; char[10] data; })* = &frame_1921->subscript_expr_1101 in memcpy(subscript_expr_1930 : item_1815, subscript_expr_1929); let (cont_apply_expr_fun_1931 : (frame_1821*, (int) -> int, frame_1831*, int, int, int) -> int)(frame_1932, exit_1933, frame_1934, i_1935, j_1936, apply_expr_1937) = let type frame_1938 = struct { } in let frame_1939 : frame_1938* = alloc(frame_1938) in let make_scalar_1940 : int = 0 in let (relop_expr_fun_1941 : (frame_1821*, (int) -> int, frame_1831*, int, int, int) -> int)(frame_1942, exit_1943, frame_1944, i_1945, j_1946, relop_expr_1947) = if relop_expr_1947 == 0 then break_sym_1874( frame_1942, exit_1943, frame_1944, i_1945, j_1946) else let make_seq_expr_arg_1948 : int = 0 in make_while_body_1918( frame_1942, exit_1943, frame_1944, i_1945, j_1946) in if apply_expr_1937 < make_scalar_1940 then relop_expr_fun_1941( frame_1932, exit_1933, frame_1934, i_1935, j_1936, 1) else relop_expr_fun_1941( frame_1932, exit_1933, frame_1934, i_1935, j_1936, 0) in let subscript_expr_1949 : (struct { int index; char[10] data; })* = &frame_1921->subscript_expr_1101 in let x_1950 : (struct { int index; char[10] data; })* = &frame_1921->x_1065 in let closure (cont_apply_expr_fun_1951 : (int) -> int) = cont_apply_expr_fun_1931( frame_1919, exit_1920, frame_1921, i_1927, j_1923) in compare_1925(cont_apply_expr_fun_1951, subscript_expr_1949, x_1950) in make_while_body_1918(frame_1868, exit_1869, frame_1870, i_1871, j_1872) in let (make_while_body_1952 : (frame_1821*, (int) -> int, frame_1831*, int, int) -> int)(frame_1953, exit_1954, frame_1955, i_1956, j_1957) = let compare_1958 : (((int) -> int, item_1815*, item_1815*) -> int)* = frame_1953->compare_1054 in let compare_1959 : ((int) -> int, item_1815*, item_1815*) -> int = (fun) compare_1958 in let uarith_expr_1960 : int = j_1957 - 1 in let j_1961 : int = uarith_expr_1960 in let a_1962 : item_1815* = frame_1953->a_1053 in let subscript_expr_1963 : (struct { int index; char[10] data; })* = &a_1962[uarith_expr_1960] in let subscript_expr_1964 : (struct { int index; char[10] data; })* = &frame_1955->subscript_expr_1111 in memcpy(subscript_expr_1964 : item_1815, subscript_expr_1963); let (cont_apply_expr_fun_1965 : (frame_1821*, (int) -> int, frame_1831*, int, int, int) -> int)( frame_1966, exit_1967, frame_1968, i_1969, j_1970, apply_expr_1971) = let type frame_1972 = struct { } in let frame_1973 : frame_1972* = alloc(frame_1972) in let make_scalar_1974 : int = 0 in let (relop_expr_fun_1975 : (frame_1821*, (int) -> int, frame_1831*, int, int, int) -> int)( frame_1976, exit_1977, frame_1978, i_1979, j_1980, relop_expr_1981) = if relop_expr_1981 == 0 then break_sym_1867(frame_1976, exit_1977, frame_1978, i_1979, j_1980) else let make_seq_expr_arg_1982 : int = 0 in make_while_body_1952( frame_1976, exit_1977, frame_1978, i_1979, j_1980) in if apply_expr_1971 > make_scalar_1974 then relop_expr_fun_1975(frame_1966, exit_1967, frame_1968, i_1969, j_1970, 1) else relop_expr_fun_1975(frame_1966, exit_1967, frame_1968, i_1969, j_1970, 0) in let subscript_expr_1983 : (struct { int index; char[10] data; })* = &frame_1955->subscript_expr_1111 in let x_1984 : (struct { int index; char[10] data; })* = &frame_1955->x_1065 in let closure (cont_apply_expr_fun_1985 : (int) -> int) = cont_apply_expr_fun_1965(frame_1953, exit_1954, frame_1955, i_1956, j_1961) in compare_1959(cont_apply_expr_fun_1985, subscript_expr_1983, x_1984) in make_while_body_1952(frame_1854, exit_1855, frame_1856, i_1857, j_1858) in make_while_body_1853(frame_1827, exit_1828, frame_1832, i_1844, j_1848) in let (quicksort_1986 : (frame_1821*, (int) -> int, int, int) -> int)( frame_1987, exit_1988, low_1989, high_1990) = let type frame_1991 = struct { int high_1121; int low_1120; } in let frame_1992 : frame_1991* = alloc(frame_1991) in frame_1992->high_1121 : int <- high_1990; frame_1992->low_1120 : int <- low_1989; let (make_seq_expr_fun_1993 : ((int) -> int, int) -> int)( exit_1994, make_seq_expr_arg_1995) = exit_1994(make_seq_expr_arg_1995) in let (relop_expr_fun_1996 : (frame_1821*, (int) -> int, frame_1991*, int) -> int)(frame_1997, exit_1998, frame_1999, relop_expr_2000) = let (unot_expr_fun_2001 : (frame_1821*, (int) -> int, frame_1991*, int) -> int)(frame_2002, exit_2003, frame_2004, relop_expr_2005) = let (make_if_cont_fun_2006 : (frame_1821*, (int) -> int, frame_1991*, int) -> int)(frame_2007, exit_2008, frame_2009, make_if_cont_arg_2010) = let (cont_apply_expr_fun_2011 : (frame_1821*, (int) -> int, frame_1991*, int) -> int)(frame_2012, exit_2013, frame_2014, apply_expr_2015) = let type frame_2016 = struct { int mid_1132; } in let frame_2017 : frame_2016* = alloc(frame_2016) in frame_2017->mid_1132 : int <- apply_expr_2015; let make_var_defs_2018 : int = 0 in let (cont_apply_expr_fun_2019 : (frame_1821*, (int) -> int, frame_1991*, frame_2016*, int) -> int)(frame_2020, exit_2021, frame_2022, frame_2023, apply_expr_2024) = let type frame_2025 = struct { } in let frame_2026 : frame_2025* = alloc(frame_2025) in let make_scalar_2027 : int = 1 in let mid_2028 : int = frame_2023->mid_1132 in let binop_expr_2029 : int = mid_2028 + make_scalar_2027 in let (cont_apply_expr_fun_2030 : ((int) -> int, int) -> int)(exit_2031, apply_expr_2032) = let type frame_2033 = struct { } in let frame_2034 : frame_2033* = alloc(frame_2033) in make_seq_expr_fun_1993( exit_2031, apply_expr_2032) in let high_2035 : int = frame_2022->high_1121 in let closure (cont_apply_expr_fun_2036 : (int) -> int) = cont_apply_expr_fun_2030( exit_2021) in quicksort_1986(frame_2020, cont_apply_expr_fun_2036, binop_expr_2029, high_2035) in let low_2037 : int = frame_2014->low_1120 in let mid_2038 : int = frame_2017->mid_1132 in let closure (cont_apply_expr_fun_2039 : (int) -> int) = cont_apply_expr_fun_2019( frame_2012, exit_2013, frame_2014, frame_2017) in quicksort_1986(frame_2012, cont_apply_expr_fun_2039, low_2037, mid_2038) in let low_2040 : int = frame_2009->low_1120 in let high_2041 : int = frame_2009->high_1121 in let closure (cont_apply_expr_fun_2042 : (int) -> int) = cont_apply_expr_fun_2011(frame_2007, exit_2008, frame_2009) in partition_1826(frame_2007, cont_apply_expr_fun_2042, low_2040, high_2041) in if relop_expr_2005 == 0 then make_if_cont_fun_2006(frame_2002, exit_2003, frame_2004, 0) else let make_scalar_2043 : int = 0 in exit_2003(make_scalar_2043) in if relop_expr_2000 == 0 then unot_expr_fun_2001(frame_1997, exit_1998, frame_1999, 1) else unot_expr_fun_2001(frame_1997, exit_1998, frame_1999, 0) in let low_2044 : int = frame_1992->low_1120 in let high_2045 : int = frame_1992->high_1121 in if low_2044 < high_2045 then relop_expr_fun_1996(frame_1987, exit_1988, frame_1992, 1) else relop_expr_fun_1996(frame_1987, exit_1988, frame_1992, 0) in let make_scalar_2046 : int = 0 in let make_scalar_2047 : int = 1 in let binop_expr_2048 : int = len_1820 - make_scalar_2047 in let (cont_apply_expr_fun_2049 : ((int) -> int, int) -> int)( exit_2050, apply_expr_2051) = let type frame_2052 = struct { } in let frame_2053 : frame_2052* = alloc(frame_2052) in exit_2050(apply_expr_2051) in let closure (cont_apply_expr_fun_2054 : (int) -> int) = cont_apply_expr_fun_2049(exit_1817) in quicksort_1986(frame_1822, cont_apply_expr_fun_2054, make_scalar_2046, binop_expr_2048) in let (global main : ((struct { })*, (int) -> int, int, char**) -> int)( data_seg_2055, exit_2056, argc_2057, argv_2058) = let type frame_2059 = struct { int i_1153; item_1815[10] a_1151; } in let frame_2060 : frame_2059* = alloc(frame_2059) in let (make_seq_expr_fun_2061 : ((int) -> int, int) -> int)(exit_2062, make_seq_expr_arg_2063) = exit_2062(make_seq_expr_arg_2063) in let make_var_defs_2064 : int = 0 in frame_2060->i_1153 : int <- 0; let make_var_defs_2065 : int = 0 in let (compare_2066 : ((int) -> int, item_1815*, item_1815*) -> int)( exit_2067, a_2068, b_2069) = let type frame_2070 = struct { item_1815 b_1158; item_1815 a_1157; } in let frame_2071 : frame_2070* = alloc(frame_2070) in let b_2072 : (struct { int index; char[10] data; })* = &frame_2071->b_1158 in memcpy(b_2072 : item_1815, b_2069); let a_2073 : (struct { int index; char[10] data; })* = &frame_2071->a_1157 in memcpy(a_2073 : item_1815, a_2068); let (make_seq_expr_fun_2074 : ((int) -> int, int) -> int)( exit_2075, make_seq_expr_arg_2076) = exit_2075(make_seq_expr_arg_2076) in let a_2077 : (struct { int index; char[10] data; })* = &frame_2071->a_1157 in let addr_of_var_2078 : (struct { int index; char[10] data; })* = a_2077 in let project_expr_2079 : int = addr_of_var_2078->index in let b_2080 : (struct { int index; char[10] data; })* = &frame_2071->b_1158 in let addr_of_var_2081 : (struct { int index; char[10] data; })* = b_2080 in let project_expr_2082 : int = addr_of_var_2081->index in let binop_expr_2083 : int = project_expr_2079 - project_expr_2082 in make_seq_expr_fun_2074(exit_2067, binop_expr_2083) in let make_scalar_2084 : int = 7 in let make_scalar_2085 : int = 0 in let a_2086 : item_1815* = &frame_2060->a_1151 in let addr_of_subscript_2087 : item_1815* = &a_2086[make_scalar_2085] in let addr_of_subscript_2088 : item_1815* = addr_of_subscript_2087 in addr_of_subscript_2088->index : int <- make_scalar_2084; let make_scalar_2089 : int = 5 in let make_scalar_2090 : int = 1 in let a_2091 : item_1815* = &frame_2060->a_1151 in let addr_of_subscript_2092 : item_1815* = &a_2091[make_scalar_2090] in let addr_of_subscript_2093 : item_1815* = addr_of_subscript_2092 in addr_of_subscript_2093->index : int <- make_scalar_2089; let make_scalar_2094 : int = 2 in let make_scalar_2095 : int = 2 in let a_2096 : item_1815* = &frame_2060->a_1151 in let addr_of_subscript_2097 : item_1815* = &a_2096[make_scalar_2095] in let addr_of_subscript_2098 : item_1815* = addr_of_subscript_2097 in addr_of_subscript_2098->index : int <- make_scalar_2094; let make_scalar_2099 : int = 12 in let make_scalar_2100 : int = 3 in let a_2101 : item_1815* = &frame_2060->a_1151 in let addr_of_subscript_2102 : item_1815* = &a_2101[make_scalar_2100] in let addr_of_subscript_2103 : item_1815* = addr_of_subscript_2102 in addr_of_subscript_2103->index : int <- make_scalar_2099; let make_scalar_2104 : int = 4 in let make_scalar_2105 : int = 4 in let a_2106 : item_1815* = &frame_2060->a_1151 in let addr_of_subscript_2107 : item_1815* = &a_2106[make_scalar_2105] in let addr_of_subscript_2108 : item_1815* = addr_of_subscript_2107 in addr_of_subscript_2108->index : int <- make_scalar_2104; let make_scalar_2109 : int = 5 in let make_scalar_2110 : int = 5 in let a_2111 : item_1815* = &frame_2060->a_1151 in let addr_of_subscript_2112 : item_1815* = &a_2111[make_scalar_2110] in let addr_of_subscript_2113 : item_1815* = addr_of_subscript_2112 in addr_of_subscript_2113->index : int <- make_scalar_2109; let make_scalar_2114 : int = 0 in let make_scalar_2115 : int = 6 in let a_2116 : item_1815* = &frame_2060->a_1151 in let addr_of_subscript_2117 : item_1815* = &a_2116[make_scalar_2115] in let addr_of_subscript_2118 : item_1815* = addr_of_subscript_2117 in addr_of_subscript_2118->index : int <- make_scalar_2114; let make_scalar_2119 : int = 10 in let make_scalar_2120 : int = 7 in let a_2121 : item_1815* = &frame_2060->a_1151 in let addr_of_subscript_2122 : item_1815* = &a_2121[make_scalar_2120] in let addr_of_subscript_2123 : item_1815* = addr_of_subscript_2122 in addr_of_subscript_2123->index : int <- make_scalar_2119; let make_scalar_2124 : int = 1 in let make_scalar_2125 : int = 8 in let a_2126 : item_1815* = &frame_2060->a_1151 in let addr_of_subscript_2127 : item_1815* = &a_2126[make_scalar_2125] in let addr_of_subscript_2128 : item_1815* = addr_of_subscript_2127 in addr_of_subscript_2128->index : int <- make_scalar_2124; let make_scalar_2129 : int = 11 in let make_scalar_2130 : int = 9 in let a_2131 : item_1815* = &frame_2060->a_1151 in let addr_of_subscript_2132 : item_1815* = &a_2131[make_scalar_2130] in let addr_of_subscript_2133 : item_1815* = addr_of_subscript_2132 in addr_of_subscript_2133->index : int <- make_scalar_2129; let make_scalar_2134 : int = 10 in let closure (compare_2135 : ((int) -> int, item_1815*, item_1815*) -> int) = compare_2066() in let coerce_fun_pointer_2136 : (((int) -> int, item_1815*, item_1815*) -> int)* = (fun *) compare_2135 in let (cont_apply_expr_fun_2137 : ((int) -> int, frame_2059*, int) -> int)(exit_2138, frame_2139, apply_expr_2140) = let type frame_2141 = struct { } in let frame_2142 : frame_2141* = alloc(frame_2141) in let (make_seq_expr_fun_2143 : ((int) -> int, int) -> int)( exit_2144, make_seq_expr_arg_2145) = let make_scalar_2146 : int = 0 in exit_2144(make_scalar_2146) in let make_scalar_2147 : int = 0 in frame_2139->i_1153 : int <- make_scalar_2147; let (break_sym_2148 : ((int) -> int) -> int)(exit_2149) = let make_while_expr_2150 : int = 0 in make_seq_expr_fun_2143(exit_2149, make_while_expr_2150) in let (make_while_body_2151 : ((int) -> int, frame_2059*) -> int)(exit_2152, frame_2153) = let make_scalar_2154 : int = 10 in let (relop_expr_fun_2155 : ((int) -> int, frame_2059*, int) -> int)(exit_2156, frame_2157, relop_expr_2158) = if relop_expr_2158 == 0 then break_sym_2148(exit_2156) else let (make_seq_expr_fun_2159 : ((int) -> int, frame_2059*, int) -> int)( exit_2160, frame_2161, make_seq_expr_arg_2162) = make_while_body_2151(exit_2160, frame_2161) in let (make_seq_expr_fun_2163 : ((int) -> int, frame_2059*, int) -> int)( exit_2164, frame_2165, make_seq_expr_arg_2166) = let i_2167 : int = frame_2165->i_1153 in let uarith_var_temp_2168 : int = i_2167 + 1 in frame_2165->i_1153 : int <- uarith_var_temp_2168; let i_2169 : int = frame_2165->i_1153 in make_seq_expr_fun_2159(exit_2164, frame_2165, i_2169) in let make_string_2170 = "a[" in let (cont_apply_expr_fun_2171 : ((int) -> int, frame_2059*, int) -> int)( exit_2172, frame_2173, apply_expr_2174) = let type frame_2175 = struct { } in let frame_2176 : frame_2175* = alloc(frame_2175) in let (cont_apply_expr_fun_2177 : ((int) -> int, frame_2059*, int) -> int)(exit_2178, frame_2179, apply_expr_2180) = let type frame_2181 = struct { } in let frame_2182 : frame_2181* = alloc(frame_2181) in let make_string_2183 = "].index=" in let (cont_apply_expr_fun_2184 : ((int) -> int, frame_2059*, int) -> int)(exit_2185, frame_2186, apply_expr_2187) = let type frame_2188 = struct { } in let frame_2189 : frame_2188* = alloc(frame_2188) in let a_2190 : item_1815* = &frame_2186->a_1151 in let i_2191 : int = frame_2186->i_1153 in let addr_of_subscript_2192 : item_1815* = &a_2190[i_2191] in let addr_of_subscript_2193 : item_1815* = addr_of_subscript_2192 in let project_expr_2194 : int = addr_of_subscript_2193->index in let (cont_apply_expr_fun_2195 : ((int) -> int, frame_2059*, int) -> int)( exit_2196, frame_2197, apply_expr_2198) = let type frame_2199 = struct { } in let frame_2200 : frame_2199* = alloc( frame_2199) in let make_string_2201 = "\n" in let (cont_apply_expr_fun_2202 : ((int) -> int, frame_2059*, int) -> int)( exit_2203, frame_2204, apply_expr_2205) = let type frame_2206 = struct { } in let frame_2207 : frame_2206* = alloc( frame_2206) in make_seq_expr_fun_2163( exit_2203, frame_2204, apply_expr_2205) in let closure (cont_apply_expr_fun_2208 : (int) -> int) = cont_apply_expr_fun_2202( exit_2196, frame_2197) in print_string_1805( cont_apply_expr_fun_2208, make_string_2201) in let closure (cont_apply_expr_fun_2209 : (int) -> int) = cont_apply_expr_fun_2195( exit_2185, frame_2186) in print_int_1810( cont_apply_expr_fun_2209, project_expr_2194) in let closure (cont_apply_expr_fun_2210 : (int) -> int) = cont_apply_expr_fun_2184( exit_2178, frame_2179) in print_string_1805(cont_apply_expr_fun_2210, make_string_2183) in let i_2211 : int = frame_2173->i_1153 in let closure (cont_apply_expr_fun_2212 : (int) -> int) = cont_apply_expr_fun_2177( exit_2172, frame_2173) in print_int_1810(cont_apply_expr_fun_2212, i_2211) in let closure (cont_apply_expr_fun_2213 : (int) -> int) = cont_apply_expr_fun_2171(exit_2156, frame_2157) in print_string_1805(cont_apply_expr_fun_2213, make_string_2170) in let i_2214 : int = frame_2153->i_1153 in if i_2214 != make_scalar_2154 then relop_expr_fun_2155(exit_2152, frame_2153, 1) else relop_expr_fun_2155(exit_2152, frame_2153, 0) in make_while_body_2151(exit_2138, frame_2139) in let a_2215 : item_1815* = &frame_2060->a_1151 in let closure (cont_apply_expr_fun_2216 : (int) -> int) = cont_apply_expr_fun_2137(exit_2056, frame_2060) in qsort(data_seg_2055, cont_apply_expr_fun_2216, a_2215, coerce_fun_pointer_2136, make_scalar_2134) in exit(0) Stage: Program closure Program: Data segment type: struct { } Init function: init_2290 Types: item_2241 = struct { int index; char[10] data; } frame_2240 = struct { (((int) -> int, item_2241*, item_2241*) -> int)* compare_1054; item_2241* a_1053; } frame_2239 = struct { item_2241 subscript_expr_1111; item_2241 subscript_expr_1101; item_2241 subscript_expr_1094; item_2241 temp_1092; item_2241 subscript_expr_1091; item_2241 x_1065; item_2241 subscript_expr_1064; } frame_2238 = struct { } frame_2237 = struct { } frame_2236 = struct { int high_1121; int low_1120; } frame_2235 = struct { int mid_1132; } frame_2234 = struct { } frame_2233 = struct { } frame_2232 = struct { } frame_2231 = struct { int i_1153; item_2241[10] a_1151; } frame_2230 = struct { item_2241 b_1158; item_2241 a_1157; } frame_2229 = struct { } frame_2228 = struct { } frame_2227 = struct { } frame_2226 = struct { } frame_2225 = struct { } frame_2224 = struct { } data_seg_2223 = struct { } Strings: make_string_2244 = "a[" make_string_2243 = "].index=" make_string_2242 = "\n" Functions: (init_2290 : ((struct { })*, (int) -> int) -> int)(data_seg_2642, exit_2643) = let make_var_defs_2644 : int = 0 in let make_var_defs_2645 : int = 0 in exit_2643(0) (global %init : () -> int)() = $internal(init_2290) : int (main_2289 : ((struct { })*, (int) -> int, int, char**) -> int)( data_seg_2580, exit_2581, argc_2582, argv_2583) = let frame_2584 : frame_2231* = alloc(frame_2231) in let make_var_defs_2585 : int = 0 in frame_2584->i_1153 : int <- 0; let make_var_defs_2586 : int = 0 in let make_scalar_2587 : int = 7 in let make_scalar_2588 : int = 0 in let a_2589 : item_2241* = &frame_2584->a_1151 in let addr_of_subscript_2590 : item_2241* = &a_2589[make_scalar_2588] in let addr_of_subscript_2591 : item_2241* = addr_of_subscript_2590 in addr_of_subscript_2591->index : int <- make_scalar_2587; let make_scalar_2592 : int = 5 in let make_scalar_2593 : int = 1 in let a_2594 : item_2241* = &frame_2584->a_1151 in let addr_of_subscript_2595 : item_2241* = &a_2594[make_scalar_2593] in let addr_of_subscript_2596 : item_2241* = addr_of_subscript_2595 in addr_of_subscript_2596->index : int <- make_scalar_2592; let make_scalar_2597 : int = 2 in let make_scalar_2598 : int = 2 in let a_2599 : item_2241* = &frame_2584->a_1151 in let addr_of_subscript_2600 : item_2241* = &a_2599[make_scalar_2598] in let addr_of_subscript_2601 : item_2241* = addr_of_subscript_2600 in addr_of_subscript_2601->index : int <- make_scalar_2597; let make_scalar_2602 : int = 12 in let make_scalar_2603 : int = 3 in let a_2604 : item_2241* = &frame_2584->a_1151 in let addr_of_subscript_2605 : item_2241* = &a_2604[make_scalar_2603] in let addr_of_subscript_2606 : item_2241* = addr_of_subscript_2605 in addr_of_subscript_2606->index : int <- make_scalar_2602; let make_scalar_2607 : int = 4 in let make_scalar_2608 : int = 4 in let a_2609 : item_2241* = &frame_2584->a_1151 in let addr_of_subscript_2610 : item_2241* = &a_2609[make_scalar_2608] in let addr_of_subscript_2611 : item_2241* = addr_of_subscript_2610 in addr_of_subscript_2611->index : int <- make_scalar_2607; let make_scalar_2612 : int = 5 in let make_scalar_2613 : int = 5 in let a_2614 : item_2241* = &frame_2584->a_1151 in let addr_of_subscript_2615 : item_2241* = &a_2614[make_scalar_2613] in let addr_of_subscript_2616 : item_2241* = addr_of_subscript_2615 in addr_of_subscript_2616->index : int <- make_scalar_2612; let make_scalar_2617 : int = 0 in let make_scalar_2618 : int = 6 in let a_2619 : item_2241* = &frame_2584->a_1151 in let addr_of_subscript_2620 : item_2241* = &a_2619[make_scalar_2618] in let addr_of_subscript_2621 : item_2241* = addr_of_subscript_2620 in addr_of_subscript_2621->index : int <- make_scalar_2617; let make_scalar_2622 : int = 10 in let make_scalar_2623 : int = 7 in let a_2624 : item_2241* = &frame_2584->a_1151 in let addr_of_subscript_2625 : item_2241* = &a_2624[make_scalar_2623] in let addr_of_subscript_2626 : item_2241* = addr_of_subscript_2625 in addr_of_subscript_2626->index : int <- make_scalar_2622; let make_scalar_2627 : int = 1 in let make_scalar_2628 : int = 8 in let a_2629 : item_2241* = &frame_2584->a_1151 in let addr_of_subscript_2630 : item_2241* = &a_2629[make_scalar_2628] in let addr_of_subscript_2631 : item_2241* = addr_of_subscript_2630 in addr_of_subscript_2631->index : int <- make_scalar_2627; let make_scalar_2632 : int = 11 in let make_scalar_2633 : int = 9 in let a_2634 : item_2241* = &frame_2584->a_1151 in let addr_of_subscript_2635 : item_2241* = &a_2634[make_scalar_2633] in let addr_of_subscript_2636 : item_2241* = addr_of_subscript_2635 in addr_of_subscript_2636->index : int <- make_scalar_2632; let make_scalar_2637 : int = 10 in let closure (compare_2638 : ((int) -> int, item_2241*, item_2241*) -> int) = compare_2276() in let coerce_fun_pointer_2639 : (((int) -> int, item_2241*, item_2241*) -> int)* = (fun *) compare_2638 in let a_2640 : item_2241* = &frame_2584->a_1151 in let closure (cont_apply_expr_fun_2641 : (int) -> int) = cont_apply_expr_fun_2288(exit_2581, frame_2584) in qsort_2273(data_seg_2580, cont_apply_expr_fun_2641, a_2640, coerce_fun_pointer_2639, make_scalar_2637) (global %main : (int, char**) -> int)(argc_2578, argv_2579) = $internal(main_2289, argc_2578, argv_2579) : int (cont_apply_expr_fun_2288 : ((int) -> int, frame_2231*, int) -> int)( exit_2573, frame_2574, apply_expr_2575) = let frame_2576 : frame_2229* = alloc(frame_2229) in let make_scalar_2577 : int = 0 in frame_2574->i_1153 : int <- make_scalar_2577; make_while_body_2287(exit_2573, frame_2574) (make_while_body_2287 : ((int) -> int, frame_2231*) -> int)( exit_2569, frame_2570) = let make_scalar_2571 : int = 10 in let i_2572 : int = frame_2570->i_1153 in if i_2572 != make_scalar_2571 then relop_expr_fun_2286(exit_2569, frame_2570, 1) else relop_expr_fun_2286(exit_2569, frame_2570, 0) (relop_expr_fun_2286 : ((int) -> int, frame_2231*, int) -> int)( exit_2565, frame_2566, relop_expr_2567) = if relop_expr_2567 == 0 then break_sym_2278(exit_2565) else let closure (cont_apply_expr_fun_2568 : (int) -> int) = cont_apply_expr_fun_2285(exit_2565, frame_2566) in print_string_2245(cont_apply_expr_fun_2568, make_string_2244) (cont_apply_expr_fun_2285 : ((int) -> int, frame_2231*, int) -> int)( exit_2559, frame_2560, apply_expr_2561) = let frame_2562 : frame_2228* = alloc(frame_2228) in let i_2563 : int = frame_2560->i_1153 in let closure (cont_apply_expr_fun_2564 : (int) -> int) = cont_apply_expr_fun_2284(exit_2559, frame_2560) in print_int_2246(cont_apply_expr_fun_2564, i_2563) (cont_apply_expr_fun_2284 : ((int) -> int, frame_2231*, int) -> int)( exit_2554, frame_2555, apply_expr_2556) = let frame_2557 : frame_2227* = alloc(frame_2227) in let closure (cont_apply_expr_fun_2558 : (int) -> int) = cont_apply_expr_fun_2283(exit_2554, frame_2555) in print_string_2245(cont_apply_expr_fun_2558, make_string_2243) (cont_apply_expr_fun_2283 : ((int) -> int, frame_2231*, int) -> int)( exit_2544, frame_2545, apply_expr_2546) = let frame_2547 : frame_2226* = alloc(frame_2226) in let a_2548 : item_2241* = &frame_2545->a_1151 in let i_2549 : int = frame_2545->i_1153 in let addr_of_subscript_2550 : item_2241* = &a_2548[i_2549] in let addr_of_subscript_2551 : item_2241* = addr_of_subscript_2550 in let project_expr_2552 : int = addr_of_subscript_2551->index in let closure (cont_apply_expr_fun_2553 : (int) -> int) = cont_apply_expr_fun_2282(exit_2544, frame_2545) in print_int_2246(cont_apply_expr_fun_2553, project_expr_2552) (cont_apply_expr_fun_2282 : ((int) -> int, frame_2231*, int) -> int)( exit_2539, frame_2540, apply_expr_2541) = let frame_2542 : frame_2225* = alloc(frame_2225) in let closure (cont_apply_expr_fun_2543 : (int) -> int) = cont_apply_expr_fun_2281(exit_2539, frame_2540) in print_string_2245(cont_apply_expr_fun_2543, make_string_2242) (cont_apply_expr_fun_2281 : ((int) -> int, frame_2231*, int) -> int)( exit_2535, frame_2536, apply_expr_2537) = let frame_2538 : frame_2224* = alloc(frame_2224) in make_seq_expr_fun_2280(exit_2535, frame_2536, apply_expr_2537) (make_seq_expr_fun_2280 : ((int) -> int, frame_2231*, int) -> int)( exit_2529, frame_2530, make_seq_expr_arg_2531) = let i_2532 : int = frame_2530->i_1153 in let uarith_var_temp_2533 : int = i_2532 + 1 in frame_2530->i_1153 : int <- uarith_var_temp_2533; let i_2534 : int = frame_2530->i_1153 in make_seq_expr_fun_2279(exit_2529, frame_2530, i_2534) (make_seq_expr_fun_2279 : ((int) -> int, frame_2231*, int) -> int)( exit_2526, frame_2527, make_seq_expr_arg_2528) = make_while_body_2287(exit_2526, frame_2527) (break_sym_2278 : ((int) -> int) -> int)(exit_2524) = let make_while_expr_2525 : int = 0 in make_seq_expr_fun_2277(exit_2524, make_while_expr_2525) (make_seq_expr_fun_2277 : ((int) -> int, int) -> int)(exit_2521, make_seq_expr_arg_2522) = let make_scalar_2523 : int = 0 in exit_2521(make_scalar_2523) (compare_2276 : ((int) -> int, item_2241*, item_2241*) -> int)( exit_2508, a_2509, b_2510) = let frame_2511 : frame_2230* = alloc(frame_2230) in let b_2512 : (struct { int index; char[10] data; })* = &frame_2511->b_1158 in memcpy(b_2512 : item_2241, b_2510); let a_2513 : (struct { int index; char[10] data; })* = &frame_2511->a_1157 in memcpy(a_2513 : item_2241, a_2509); let a_2514 : (struct { int index; char[10] data; })* = &frame_2511->a_1157 in let addr_of_var_2515 : (struct { int index; char[10] data; })* = a_2514 in let project_expr_2516 : int = addr_of_var_2515->index in let b_2517 : (struct { int index; char[10] data; })* = &frame_2511->b_1158 in let addr_of_var_2518 : (struct { int index; char[10] data; })* = b_2517 in let project_expr_2519 : int = addr_of_var_2518->index in let binop_expr_2520 : int = project_expr_2516 - project_expr_2519 in make_seq_expr_fun_2275(exit_2508, binop_expr_2520) (make_seq_expr_fun_2275 : ((int) -> int, int) -> int)(exit_2506, make_seq_expr_arg_2507) = exit_2506(make_seq_expr_arg_2507) (make_seq_expr_fun_2274 : ((int) -> int, int) -> int)(exit_2504, make_seq_expr_arg_2505) = exit_2504(make_seq_expr_arg_2505) (qsort_2273 : ((struct { })*, (int) -> int, item_2241*, (((int) -> int, item_2241*, item_2241*) -> int)*, int) -> int)(data_seg_2494, exit_2495, a_2496, compare_2497, len_2498) = let frame_2499 : frame_2240* = alloc(frame_2240) in frame_2499->compare_1054 : (((int) -> int, item_2241*, item_2241*) -> int)* <- compare_2497; frame_2499->a_1053 : item_2241* <- a_2496; let make_scalar_2500 : int = 0 in let make_scalar_2501 : int = 1 in let binop_expr_2502 : int = len_2498 - make_scalar_2501 in let closure (cont_apply_expr_fun_2503 : (int) -> int) = cont_apply_expr_fun_2272(exit_2495) in quicksort_2271(frame_2499, cont_apply_expr_fun_2503, make_scalar_2500, binop_expr_2502) (global %qsort : (item_2241*, (((int) -> int, item_2241*, item_2241*) -> int)*, int) -> int)(a_2491, compare_2492, len_2493) = $internal(qsort_2273, a_2491, compare_2492, len_2493) : int (cont_apply_expr_fun_2272 : ((int) -> int, int) -> int)(exit_2488, apply_expr_2489) = let frame_2490 : frame_2232* = alloc(frame_2232) in exit_2488(apply_expr_2489) (quicksort_2271 : (frame_2240*, (int) -> int, int, int) -> int)( frame_2481, exit_2482, low_2483, high_2484) = let frame_2485 : frame_2236* = alloc(frame_2236) in frame_2485->high_1121 : int <- high_2484; frame_2485->low_1120 : int <- low_2483; let low_2486 : int = frame_2485->low_1120 in let high_2487 : int = frame_2485->high_1121 in if low_2486 < high_2487 then relop_expr_fun_2270(frame_2481, exit_2482, frame_2485, 1) else relop_expr_fun_2270(frame_2481, exit_2482, frame_2485, 0) (relop_expr_fun_2270 : (frame_2240*, (int) -> int, frame_2236*, int) -> int)(frame_2477, exit_2478, frame_2479, relop_expr_2480) = if relop_expr_2480 == 0 then unot_expr_fun_2269(frame_2477, exit_2478, frame_2479, 1) else unot_expr_fun_2269(frame_2477, exit_2478, frame_2479, 0) (unot_expr_fun_2269 : (frame_2240*, (int) -> int, frame_2236*, int) -> int)(frame_2472, exit_2473, frame_2474, relop_expr_2475) = if relop_expr_2475 == 0 then make_if_cont_fun_2268(frame_2472, exit_2473, frame_2474, 0) else let make_scalar_2476 : int = 0 in exit_2473(make_scalar_2476) (make_if_cont_fun_2268 : (frame_2240*, (int) -> int, frame_2236*, int) -> int)(frame_2465, exit_2466, frame_2467, make_if_cont_arg_2468) = let low_2469 : int = frame_2467->low_1120 in let high_2470 : int = frame_2467->high_1121 in let closure (cont_apply_expr_fun_2471 : (int) -> int) = cont_apply_expr_fun_2267(frame_2465, exit_2466, frame_2467) in partition_2263(frame_2465, cont_apply_expr_fun_2471, low_2469, high_2470) (cont_apply_expr_fun_2267 : (frame_2240*, (int) -> int, frame_2236*, int) -> int)(frame_2456, exit_2457, frame_2458, apply_expr_2459) = let frame_2460 : frame_2235* = alloc(frame_2235) in frame_2460->mid_1132 : int <- apply_expr_2459; let make_var_defs_2461 : int = 0 in let low_2462 : int = frame_2458->low_1120 in let mid_2463 : int = frame_2460->mid_1132 in let closure (cont_apply_expr_fun_2464 : (int) -> int) = cont_apply_expr_fun_2266(frame_2456, exit_2457, frame_2458, frame_2460) in quicksort_2271(frame_2456, cont_apply_expr_fun_2464, low_2462, mid_2463) (cont_apply_expr_fun_2266 : (frame_2240*, (int) -> int, frame_2236*, frame_2235*, int) -> int)(frame_2445, exit_2446, frame_2447, frame_2448, apply_expr_2449) = let frame_2450 : frame_2234* = alloc(frame_2234) in let make_scalar_2451 : int = 1 in let mid_2452 : int = frame_2448->mid_1132 in let binop_expr_2453 : int = mid_2452 + make_scalar_2451 in let high_2454 : int = frame_2447->high_1121 in let closure (cont_apply_expr_fun_2455 : (int) -> int) = cont_apply_expr_fun_2265(exit_2446) in quicksort_2271(frame_2445, cont_apply_expr_fun_2455, binop_expr_2453, high_2454) (cont_apply_expr_fun_2265 : ((int) -> int, int) -> int)(exit_2442, apply_expr_2443) = let frame_2444 : frame_2233* = alloc(frame_2233) in make_seq_expr_fun_2264(exit_2442, apply_expr_2443) (make_seq_expr_fun_2264 : ((int) -> int, int) -> int)(exit_2440, make_seq_expr_arg_2441) = exit_2440(make_seq_expr_arg_2441) (partition_2263 : (frame_2240*, (int) -> int, int, int) -> int)( frame_2421, exit_2422, low_2423, high_2424) = let frame_2425 : frame_2239* = alloc(frame_2239) in let a_2426 : item_2241* = frame_2421->a_1053 in let subscript_expr_2427 : (struct { int index; char[10] data; })* = &a_2426[low_2423] in let subscript_expr_2428 : (struct { int index; char[10] data; })* = &frame_2425->subscript_expr_1064 in memcpy(subscript_expr_2428 : item_2241, subscript_expr_2427); let subscript_expr_2429 : (struct { int index; char[10] data; })* = &frame_2425->subscript_expr_1064 in let x_2430 : (struct { int index; char[10] data; })* = &frame_2425->x_1065 in memcpy(x_2430 : item_2241, subscript_expr_2429); let make_var_defs_2431 : int = 0 in let make_scalar_2432 : int = 1 in let binop_expr_2433 : int = low_2423 - make_scalar_2432 in let i_2434 : int = binop_expr_2433 in let make_var_defs_2435 : int = 0 in let make_scalar_2436 : int = 1 in let binop_expr_2437 : int = high_2424 + make_scalar_2436 in let j_2438 : int = binop_expr_2437 in let make_var_defs_2439 : int = 0 in make_while_body_2262(frame_2421, exit_2422, frame_2425, i_2434, j_2438) (make_while_body_2262 : (frame_2240*, (int) -> int, frame_2239*, int, int) -> int)(frame_2415, exit_2416, frame_2417, i_2418, j_2419) = let make_scalar_2420 : int = 1 in if make_scalar_2420 == 0 then break_sym_2249(exit_2416) else make_while_body_2261(frame_2415, exit_2416, frame_2417, i_2418, j_2419) (make_while_body_2261 : (frame_2240*, (int) -> int, frame_2239*, int, int) -> int)(frame_2400, exit_2401, frame_2402, i_2403, j_2404) = let compare_2405 : (((int) -> int, item_2241*, item_2241*) -> int)* = frame_2400->compare_1054 in let compare_2406 : ((int) -> int, item_2241*, item_2241*) -> int = (fun) compare_2405 in let uarith_expr_2407 : int = j_2404 - 1 in let j_2408 : int = uarith_expr_2407 in let a_2409 : item_2241* = frame_2400->a_1053 in let subscript_expr_2410 : (struct { int index; char[10] data; })* = &a_2409[uarith_expr_2407] in let subscript_expr_2411 : (struct { int index; char[10] data; })* = &frame_2402->subscript_expr_1111 in memcpy(subscript_expr_2411 : item_2241, subscript_expr_2410); let subscript_expr_2412 : (struct { int index; char[10] data; })* = &frame_2402->subscript_expr_1111 in let x_2413 : (struct { int index; char[10] data; })* = &frame_2402->x_1065 in let closure (cont_apply_expr_fun_2414 : (int) -> int) = cont_apply_expr_fun_2260(frame_2400, exit_2401, frame_2402, i_2403, j_2408) in compare_2406(cont_apply_expr_fun_2414, subscript_expr_2412, x_2413) (cont_apply_expr_fun_2260 : (frame_2240*, (int) -> int, frame_2239*, int, int, int) -> int)(frame_2392, exit_2393, frame_2394, i_2395, j_2396, apply_expr_2397) = let frame_2398 : frame_2237* = alloc(frame_2237) in let make_scalar_2399 : int = 0 in if apply_expr_2397 > make_scalar_2399 then relop_expr_fun_2259(frame_2392, exit_2393, frame_2394, i_2395, j_2396, 1) else relop_expr_fun_2259(frame_2392, exit_2393, frame_2394, i_2395, j_2396, 0) (relop_expr_fun_2259 : (frame_2240*, (int) -> int, frame_2239*, int, int, int) -> int)(frame_2385, exit_2386, frame_2387, i_2388, j_2389, relop_expr_2390) = if relop_expr_2390 == 0 then break_sym_2258(frame_2385, exit_2386, frame_2387, i_2388, j_2389) else let make_seq_expr_arg_2391 : int = 0 in make_while_body_2261(frame_2385, exit_2386, frame_2387, i_2388, j_2389) (break_sym_2258 : (frame_2240*, (int) -> int, frame_2239*, int, int) -> int)(frame_2379, exit_2380, frame_2381, i_2382, j_2383) = let make_while_expr_2384 : int = 0 in make_while_body_2257(frame_2379, exit_2380, frame_2381, i_2382, j_2383) (make_while_body_2257 : (frame_2240*, (int) -> int, frame_2239*, int, int) -> int)(frame_2364, exit_2365, frame_2366, i_2367, j_2368) = let compare_2369 : (((int) -> int, item_2241*, item_2241*) -> int)* = frame_2364->compare_1054 in let compare_2370 : ((int) -> int, item_2241*, item_2241*) -> int = (fun) compare_2369 in let uarith_expr_2371 : int = i_2367 + 1 in let i_2372 : int = uarith_expr_2371 in let a_2373 : item_2241* = frame_2364->a_1053 in let subscript_expr_2374 : (struct { int index; char[10] data; })* = &a_2373[uarith_expr_2371] in let subscript_expr_2375 : (struct { int index; char[10] data; })* = &frame_2366->subscript_expr_1101 in memcpy(subscript_expr_2375 : item_2241, subscript_expr_2374); let subscript_expr_2376 : (struct { int index; char[10] data; })* = &frame_2366->subscript_expr_1101 in let x_2377 : (struct { int index; char[10] data; })* = &frame_2366->x_1065 in let closure (cont_apply_expr_fun_2378 : (int) -> int) = cont_apply_expr_fun_2256(frame_2364, exit_2365, frame_2366, i_2372, j_2368) in compare_2370(cont_apply_expr_fun_2378, subscript_expr_2376, x_2377) (cont_apply_expr_fun_2256 : (frame_2240*, (int) -> int, frame_2239*, int, int, int) -> int)(frame_2356, exit_2357, frame_2358, i_2359, j_2360, apply_expr_2361) = let frame_2362 : frame_2238* = alloc(frame_2238) in let make_scalar_2363 : int = 0 in if apply_expr_2361 < make_scalar_2363 then relop_expr_fun_2255(frame_2356, exit_2357, frame_2358, i_2359, j_2360, 1) else relop_expr_fun_2255(frame_2356, exit_2357, frame_2358, i_2359, j_2360, 0) (relop_expr_fun_2255 : (frame_2240*, (int) -> int, frame_2239*, int, int, int) -> int)(frame_2349, exit_2350, frame_2351, i_2352, j_2353, relop_expr_2354) = if relop_expr_2354 == 0 then break_sym_2254(frame_2349, exit_2350, frame_2351, i_2352, j_2353) else let make_seq_expr_arg_2355 : int = 0 in make_while_body_2257(frame_2349, exit_2350, frame_2351, i_2352, j_2353) (break_sym_2254 : (frame_2240*, (int) -> int, frame_2239*, int, int) -> int)(frame_2343, exit_2344, frame_2345, i_2346, j_2347) = let make_while_expr_2348 : int = 0 in if i_2346 < j_2347 then relop_expr_fun_2253(frame_2343, exit_2344, frame_2345, i_2346, j_2347, 1) else relop_expr_fun_2253(frame_2343, exit_2344, frame_2345, i_2346, j_2347, 0) (relop_expr_fun_2253 : (frame_2240*, (int) -> int, frame_2239*, int, int, int) -> int)(frame_2321, exit_2322, frame_2323, i_2324, j_2325, relop_expr_2326) = if relop_expr_2326 == 0 then exit_2322(j_2325) else let a_2327 : item_2241* = frame_2321->a_1053 in let subscript_expr_2328 : (struct { int index; char[10] data; })* = &a_2327[i_2324] in let subscript_expr_2329 : (struct { int index; char[10] data; })* = &frame_2323->subscript_expr_1091 in memcpy(subscript_expr_2329 : item_2241, subscript_expr_2328); let subscript_expr_2330 : (struct { int index; char[10] data; })* = &frame_2323->subscript_expr_1091 in let temp_2331 : (struct { int index; char[10] data; })* = &frame_2323->temp_1092 in memcpy(temp_2331 : item_2241, subscript_expr_2330); let make_var_defs_2332 : int = 0 in let a_2333 : item_2241* = frame_2321->a_1053 in let subscript_expr_2334 : (struct { int index; char[10] data; })* = &a_2333[j_2325] in let subscript_expr_2335 : (struct { int index; char[10] data; })* = &frame_2323->subscript_expr_1094 in memcpy(subscript_expr_2335 : item_2241, subscript_expr_2334); let a_2336 : item_2241* = frame_2321->a_1053 in let subscript_expr_2337 : (struct { int index; char[10] data; })* = &frame_2323->subscript_expr_1094 in let aelim_set_subscript_expr_2338 : (struct { int index; char[10] data; })* = &a_2336[i_2324] in memcpy(aelim_set_subscript_expr_2338 : item_2241, subscript_expr_2337); let a_2339 : item_2241* = frame_2321->a_1053 in let temp_2340 : (struct { int index; char[10] data; })* = &frame_2323->temp_1092 in let aelim_set_subscript_expr_2341 : (struct { int index; char[10] data; })* = &a_2339[j_2325] in memcpy(aelim_set_subscript_expr_2341 : item_2241, temp_2340); let make_scalar_2342 : int = 0 in make_seq_expr_fun_2252(frame_2321, exit_2322, frame_2323, i_2324, j_2325, make_scalar_2342) (make_seq_expr_fun_2252 : (frame_2240*, (int) -> int, frame_2239*, int, int, int) -> int)(frame_2315, exit_2316, frame_2317, i_2318, j_2319, make_seq_expr_arg_2320) = make_if_cont_fun_2251(frame_2315, exit_2316, frame_2317, i_2318, j_2319, make_seq_expr_arg_2320) (make_if_cont_fun_2251 : (frame_2240*, (int) -> int, frame_2239*, int, int, int) -> int)(frame_2309, exit_2310, frame_2311, i_2312, j_2313, make_if_cont_arg_2314) = make_seq_expr_fun_2250(frame_2309, exit_2310, frame_2311, i_2312, j_2313, make_if_cont_arg_2314) (make_seq_expr_fun_2250 : (frame_2240*, (int) -> int, frame_2239*, int, int, int) -> int)(frame_2303, exit_2304, frame_2305, i_2306, j_2307, make_seq_expr_arg_2308) = make_while_body_2262(frame_2303, exit_2304, frame_2305, i_2306, j_2307) (break_sym_2249 : ((int) -> int) -> int)(exit_2301) = let make_while_expr_2302 : int = 0 in make_seq_expr_fun_2248(exit_2301, make_while_expr_2302) (make_seq_expr_fun_2248 : ((int) -> int, int) -> int)(exit_2299, make_seq_expr_arg_2300) = exit_2299(make_seq_expr_arg_2300) (make_seq_expr_fun_2247 : ((int) -> int, int) -> int)(exit_2297, make_seq_expr_arg_2298) = exit_2297(make_seq_expr_arg_2298) (print_int_2246 : ((int) -> int, int) -> int)(exit_2294, v_2295) = let print_int_2296 = $external(%print_int : (int) -> int, v_2295) in exit_2294(print_int_2296) (print_string_2245 : ((int) -> int, char*) -> int)(exit_2291, v_2292) = let print_string_2293 = $external(%print_string : (char*) -> int, v_2292) in exit_2291(print_string_2293) Stage: Deadcode elimination Program: Data segment type: struct { } Init function: init_2290 Types: item_2241 = struct { int index; char[10] data; } frame_2240 = struct { (((int) -> int, item_2241*, item_2241*) -> int)* compare_1054; item_2241* a_1053; } frame_2239 = struct { item_2241 subscript_expr_1111; item_2241 subscript_expr_1101; item_2241 subscript_expr_1094; item_2241 temp_1092; item_2241 subscript_expr_1091; item_2241 x_1065; item_2241 subscript_expr_1064; } frame_2236 = struct { int high_1121; int low_1120; } frame_2235 = struct { int mid_1132; } frame_2231 = struct { int i_1153; item_2241[10] a_1151; } frame_2230 = struct { item_2241 b_1158; item_2241 a_1157; } Strings: make_string_2244 = "a[" make_string_2243 = "].index=" make_string_2242 = "\n" Functions: (init_2290 : ((struct { })*, (int) -> int) -> int)(data_seg_2642, exit_2643) = exit_2643(0) (global %init : () -> int)() = $internal(init_2290) : int (main_2289 : ((struct { })*, (int) -> int, int, char**) -> int)( data_seg_2580, exit_2581, argc_2582, argv_2583) = let frame_2584 : frame_2231* = alloc(frame_2231) in frame_2584->i_1153 : int <- 0; let make_scalar_2587 : int = 7 in let make_scalar_2588 : int = 0 in let a_2589 : item_2241* = &frame_2584->a_1151 in let addr_of_subscript_2590 : item_2241* = &a_2589[make_scalar_2588] in let addr_of_subscript_2591 : item_2241* = addr_of_subscript_2590 in addr_of_subscript_2591->index : int <- make_scalar_2587; let make_scalar_2592 : int = 5 in let make_scalar_2593 : int = 1 in let a_2594 : item_2241* = &frame_2584->a_1151 in let addr_of_subscript_2595 : item_2241* = &a_2594[make_scalar_2593] in let addr_of_subscript_2596 : item_2241* = addr_of_subscript_2595 in addr_of_subscript_2596->index : int <- make_scalar_2592; let make_scalar_2597 : int = 2 in let make_scalar_2598 : int = 2 in let a_2599 : item_2241* = &frame_2584->a_1151 in let addr_of_subscript_2600 : item_2241* = &a_2599[make_scalar_2598] in let addr_of_subscript_2601 : item_2241* = addr_of_subscript_2600 in addr_of_subscript_2601->index : int <- make_scalar_2597; let make_scalar_2602 : int = 12 in let make_scalar_2603 : int = 3 in let a_2604 : item_2241* = &frame_2584->a_1151 in let addr_of_subscript_2605 : item_2241* = &a_2604[make_scalar_2603] in let addr_of_subscript_2606 : item_2241* = addr_of_subscript_2605 in addr_of_subscript_2606->index : int <- make_scalar_2602; let make_scalar_2607 : int = 4 in let make_scalar_2608 : int = 4 in let a_2609 : item_2241* = &frame_2584->a_1151 in let addr_of_subscript_2610 : item_2241* = &a_2609[make_scalar_2608] in let addr_of_subscript_2611 : item_2241* = addr_of_subscript_2610 in addr_of_subscript_2611->index : int <- make_scalar_2607; let make_scalar_2612 : int = 5 in let make_scalar_2613 : int = 5 in let a_2614 : item_2241* = &frame_2584->a_1151 in let addr_of_subscript_2615 : item_2241* = &a_2614[make_scalar_2613] in let addr_of_subscript_2616 : item_2241* = addr_of_subscript_2615 in addr_of_subscript_2616->index : int <- make_scalar_2612; let make_scalar_2617 : int = 0 in let make_scalar_2618 : int = 6 in let a_2619 : item_2241* = &frame_2584->a_1151 in let addr_of_subscript_2620 : item_2241* = &a_2619[make_scalar_2618] in let addr_of_subscript_2621 : item_2241* = addr_of_subscript_2620 in addr_of_subscript_2621->index : int <- make_scalar_2617; let make_scalar_2622 : int = 10 in let make_scalar_2623 : int = 7 in let a_2624 : item_2241* = &frame_2584->a_1151 in let addr_of_subscript_2625 : item_2241* = &a_2624[make_scalar_2623] in let addr_of_subscript_2626 : item_2241* = addr_of_subscript_2625 in addr_of_subscript_2626->index : int <- make_scalar_2622; let make_scalar_2627 : int = 1 in let make_scalar_2628 : int = 8 in let a_2629 : item_2241* = &frame_2584->a_1151 in let addr_of_subscript_2630 : item_2241* = &a_2629[make_scalar_2628] in let addr_of_subscript_2631 : item_2241* = addr_of_subscript_2630 in addr_of_subscript_2631->index : int <- make_scalar_2627; let make_scalar_2632 : int = 11 in let make_scalar_2633 : int = 9 in let a_2634 : item_2241* = &frame_2584->a_1151 in let addr_of_subscript_2635 : item_2241* = &a_2634[make_scalar_2633] in let addr_of_subscript_2636 : item_2241* = addr_of_subscript_2635 in addr_of_subscript_2636->index : int <- make_scalar_2632; let make_scalar_2637 : int = 10 in let closure (compare_2638 : ((int) -> int, item_2241*, item_2241*) -> int) = compare_2276() in let coerce_fun_pointer_2639 : (((int) -> int, item_2241*, item_2241*) -> int)* = (fun *) compare_2638 in let a_2640 : item_2241* = &frame_2584->a_1151 in let closure (cont_apply_expr_fun_2641 : (int) -> int) = cont_apply_expr_fun_2288(exit_2581, frame_2584) in qsort_2273(data_seg_2580, cont_apply_expr_fun_2641, a_2640, coerce_fun_pointer_2639, make_scalar_2637) (global %main : (int, char**) -> int)(argc_2578, argv_2579) = $internal(main_2289, argc_2578, argv_2579) : int (cont_apply_expr_fun_2288 : ((int) -> int, frame_2231*, int) -> int)( exit_2573, frame_2574, apply_expr_2575) = let make_scalar_2577 : int = 0 in frame_2574->i_1153 : int <- make_scalar_2577; make_while_body_2287(exit_2573, frame_2574) (make_while_body_2287 : ((int) -> int, frame_2231*) -> int)( exit_2569, frame_2570) = let make_scalar_2571 : int = 10 in let i_2572 : int = frame_2570->i_1153 in if i_2572 != make_scalar_2571 then relop_expr_fun_2286(exit_2569, frame_2570, 1) else relop_expr_fun_2286(exit_2569, frame_2570, 0) (relop_expr_fun_2286 : ((int) -> int, frame_2231*, int) -> int)( exit_2565, frame_2566, relop_expr_2567) = if relop_expr_2567 == 0 then break_sym_2278(exit_2565) else let closure (cont_apply_expr_fun_2568 : (int) -> int) = cont_apply_expr_fun_2285(exit_2565, frame_2566) in print_string_2245(cont_apply_expr_fun_2568, make_string_2244) (cont_apply_expr_fun_2285 : ((int) -> int, frame_2231*, int) -> int)( exit_2559, frame_2560, apply_expr_2561) = let i_2563 : int = frame_2560->i_1153 in let closure (cont_apply_expr_fun_2564 : (int) -> int) = cont_apply_expr_fun_2284(exit_2559, frame_2560) in print_int_2246(cont_apply_expr_fun_2564, i_2563) (cont_apply_expr_fun_2284 : ((int) -> int, frame_2231*, int) -> int)( exit_2554, frame_2555, apply_expr_2556) = let closure (cont_apply_expr_fun_2558 : (int) -> int) = cont_apply_expr_fun_2283(exit_2554, frame_2555) in print_string_2245(cont_apply_expr_fun_2558, make_string_2243) (cont_apply_expr_fun_2283 : ((int) -> int, frame_2231*, int) -> int)( exit_2544, frame_2545, apply_expr_2546) = let a_2548 : item_2241* = &frame_2545->a_1151 in let i_2549 : int = frame_2545->i_1153 in let addr_of_subscript_2550 : item_2241* = &a_2548[i_2549] in let addr_of_subscript_2551 : item_2241* = addr_of_subscript_2550 in let project_expr_2552 : int = addr_of_subscript_2551->index in let closure (cont_apply_expr_fun_2553 : (int) -> int) = cont_apply_expr_fun_2282(exit_2544, frame_2545) in print_int_2246(cont_apply_expr_fun_2553, project_expr_2552) (cont_apply_expr_fun_2282 : ((int) -> int, frame_2231*, int) -> int)( exit_2539, frame_2540, apply_expr_2541) = let closure (cont_apply_expr_fun_2543 : (int) -> int) = cont_apply_expr_fun_2281(exit_2539, frame_2540) in print_string_2245(cont_apply_expr_fun_2543, make_string_2242) (cont_apply_expr_fun_2281 : ((int) -> int, frame_2231*, int) -> int)( exit_2535, frame_2536, apply_expr_2537) = make_seq_expr_fun_2280(exit_2535, frame_2536, apply_expr_2537) (make_seq_expr_fun_2280 : ((int) -> int, frame_2231*, int) -> int)( exit_2529, frame_2530, make_seq_expr_arg_2531) = let i_2532 : int = frame_2530->i_1153 in let uarith_var_temp_2533 : int = i_2532 + 1 in frame_2530->i_1153 : int <- uarith_var_temp_2533; let i_2534 : int = frame_2530->i_1153 in make_seq_expr_fun_2279(exit_2529, frame_2530, i_2534) (make_seq_expr_fun_2279 : ((int) -> int, frame_2231*, int) -> int)( exit_2526, frame_2527, make_seq_expr_arg_2528) = make_while_body_2287(exit_2526, frame_2527) (break_sym_2278 : ((int) -> int) -> int)(exit_2524) = let make_while_expr_2525 : int = 0 in make_seq_expr_fun_2277(exit_2524, make_while_expr_2525) (make_seq_expr_fun_2277 : ((int) -> int, int) -> int)(exit_2521, make_seq_expr_arg_2522) = let make_scalar_2523 : int = 0 in exit_2521(make_scalar_2523) (compare_2276 : ((int) -> int, item_2241*, item_2241*) -> int)( exit_2508, a_2509, b_2510) = let frame_2511 : frame_2230* = alloc(frame_2230) in let b_2512 : (struct { int index; char[10] data; })* = &frame_2511->b_1158 in memcpy(b_2512 : item_2241, b_2510); let a_2513 : (struct { int index; char[10] data; })* = &frame_2511->a_1157 in memcpy(a_2513 : item_2241, a_2509); let a_2514 : (struct { int index; char[10] data; })* = &frame_2511->a_1157 in let addr_of_var_2515 : (struct { int index; char[10] data; })* = a_2514 in let project_expr_2516 : int = addr_of_var_2515->index in let b_2517 : (struct { int index; char[10] data; })* = &frame_2511->b_1158 in let addr_of_var_2518 : (struct { int index; char[10] data; })* = b_2517 in let project_expr_2519 : int = addr_of_var_2518->index in let binop_expr_2520 : int = project_expr_2516 - project_expr_2519 in make_seq_expr_fun_2275(exit_2508, binop_expr_2520) (make_seq_expr_fun_2275 : ((int) -> int, int) -> int)(exit_2506, make_seq_expr_arg_2507) = exit_2506(make_seq_expr_arg_2507) (qsort_2273 : ((struct { })*, (int) -> int, item_2241*, (((int) -> int, item_2241*, item_2241*) -> int)*, int) -> int)(data_seg_2494, exit_2495, a_2496, compare_2497, len_2498) = let frame_2499 : frame_2240* = alloc(frame_2240) in frame_2499->compare_1054 : (((int) -> int, item_2241*, item_2241*) -> int)* <- compare_2497; frame_2499->a_1053 : item_2241* <- a_2496; let make_scalar_2500 : int = 0 in let make_scalar_2501 : int = 1 in let binop_expr_2502 : int = len_2498 - make_scalar_2501 in let closure (cont_apply_expr_fun_2503 : (int) -> int) = cont_apply_expr_fun_2272(exit_2495) in quicksort_2271(frame_2499, cont_apply_expr_fun_2503, make_scalar_2500, binop_expr_2502) (global %qsort : (item_2241*, (((int) -> int, item_2241*, item_2241*) -> int)*, int) -> int)(a_2491, compare_2492, len_2493) = $internal(qsort_2273, a_2491, compare_2492, len_2493) : int (cont_apply_expr_fun_2272 : ((int) -> int, int) -> int)(exit_2488, apply_expr_2489) = exit_2488(apply_expr_2489) (quicksort_2271 : (frame_2240*, (int) -> int, int, int) -> int)( frame_2481, exit_2482, low_2483, high_2484) = let frame_2485 : frame_2236* = alloc(frame_2236) in frame_2485->high_1121 : int <- high_2484; frame_2485->low_1120 : int <- low_2483; let low_2486 : int = frame_2485->low_1120 in let high_2487 : int = frame_2485->high_1121 in if low_2486 < high_2487 then relop_expr_fun_2270(frame_2481, exit_2482, frame_2485, 1) else relop_expr_fun_2270(frame_2481, exit_2482, frame_2485, 0) (relop_expr_fun_2270 : (frame_2240*, (int) -> int, frame_2236*, int) -> int)(frame_2477, exit_2478, frame_2479, relop_expr_2480) = if relop_expr_2480 == 0 then unot_expr_fun_2269(frame_2477, exit_2478, frame_2479, 1) else unot_expr_fun_2269(frame_2477, exit_2478, frame_2479, 0) (unot_expr_fun_2269 : (frame_2240*, (int) -> int, frame_2236*, int) -> int)(frame_2472, exit_2473, frame_2474, relop_expr_2475) = if relop_expr_2475 == 0 then make_if_cont_fun_2268(frame_2472, exit_2473, frame_2474, 0) else let make_scalar_2476 : int = 0 in exit_2473(make_scalar_2476) (make_if_cont_fun_2268 : (frame_2240*, (int) -> int, frame_2236*, int) -> int)(frame_2465, exit_2466, frame_2467, make_if_cont_arg_2468) = let low_2469 : int = frame_2467->low_1120 in let high_2470 : int = frame_2467->high_1121 in let closure (cont_apply_expr_fun_2471 : (int) -> int) = cont_apply_expr_fun_2267(frame_2465, exit_2466, frame_2467) in partition_2263(frame_2465, cont_apply_expr_fun_2471, low_2469, high_2470) (cont_apply_expr_fun_2267 : (frame_2240*, (int) -> int, frame_2236*, int) -> int)(frame_2456, exit_2457, frame_2458, apply_expr_2459) = let frame_2460 : frame_2235* = alloc(frame_2235) in frame_2460->mid_1132 : int <- apply_expr_2459; let low_2462 : int = frame_2458->low_1120 in let mid_2463 : int = frame_2460->mid_1132 in let closure (cont_apply_expr_fun_2464 : (int) -> int) = cont_apply_expr_fun_2266(frame_2456, exit_2457, frame_2458, frame_2460) in quicksort_2271(frame_2456, cont_apply_expr_fun_2464, low_2462, mid_2463) (cont_apply_expr_fun_2266 : (frame_2240*, (int) -> int, frame_2236*, frame_2235*, int) -> int)(frame_2445, exit_2446, frame_2447, frame_2448, apply_expr_2449) = let make_scalar_2451 : int = 1 in let mid_2452 : int = frame_2448->mid_1132 in let binop_expr_2453 : int = mid_2452 + make_scalar_2451 in let high_2454 : int = frame_2447->high_1121 in let closure (cont_apply_expr_fun_2455 : (int) -> int) = cont_apply_expr_fun_2265(exit_2446) in quicksort_2271(frame_2445, cont_apply_expr_fun_2455, binop_expr_2453, high_2454) (cont_apply_expr_fun_2265 : ((int) -> int, int) -> int)(exit_2442, apply_expr_2443) = make_seq_expr_fun_2264(exit_2442, apply_expr_2443) (make_seq_expr_fun_2264 : ((int) -> int, int) -> int)(exit_2440, make_seq_expr_arg_2441) = exit_2440(make_seq_expr_arg_2441) (partition_2263 : (frame_2240*, (int) -> int, int, int) -> int)( frame_2421, exit_2422, low_2423, high_2424) = let frame_2425 : frame_2239* = alloc(frame_2239) in let a_2426 : item_2241* = frame_2421->a_1053 in let subscript_expr_2427 : (struct { int index; char[10] data; })* = &a_2426[low_2423] in let subscript_expr_2428 : (struct { int index; char[10] data; })* = &frame_2425->subscript_expr_1064 in memcpy(subscript_expr_2428 : item_2241, subscript_expr_2427); let subscript_expr_2429 : (struct { int index; char[10] data; })* = &frame_2425->subscript_expr_1064 in let x_2430 : (struct { int index; char[10] data; })* = &frame_2425->x_1065 in memcpy(x_2430 : item_2241, subscript_expr_2429); let make_scalar_2432 : int = 1 in let binop_expr_2433 : int = low_2423 - make_scalar_2432 in let i_2434 : int = binop_expr_2433 in let make_scalar_2436 : int = 1 in let binop_expr_2437 : int = high_2424 + make_scalar_2436 in let j_2438 : int = binop_expr_2437 in make_while_body_2262(frame_2421, exit_2422, frame_2425, i_2434, j_2438) (make_while_body_2262 : (frame_2240*, (int) -> int, frame_2239*, int, int) -> int)(frame_2415, exit_2416, frame_2417, i_2418, j_2419) = let make_scalar_2420 : int = 1 in if make_scalar_2420 == 0 then break_sym_2249(exit_2416) else make_while_body_2261(frame_2415, exit_2416, frame_2417, i_2418, j_2419) (make_while_body_2261 : (frame_2240*, (int) -> int, frame_2239*, int, int) -> int)(frame_2400, exit_2401, frame_2402, i_2403, j_2404) = let compare_2405 : (((int) -> int, item_2241*, item_2241*) -> int)* = frame_2400->compare_1054 in let compare_2406 : ((int) -> int, item_2241*, item_2241*) -> int = (fun) compare_2405 in let uarith_expr_2407 : int = j_2404 - 1 in let j_2408 : int = uarith_expr_2407 in let a_2409 : item_2241* = frame_2400->a_1053 in let subscript_expr_2410 : (struct { int index; char[10] data; })* = &a_2409[uarith_expr_2407] in let subscript_expr_2411 : (struct { int index; char[10] data; })* = &frame_2402->subscript_expr_1111 in memcpy(subscript_expr_2411 : item_2241, subscript_expr_2410); let subscript_expr_2412 : (struct { int index; char[10] data; })* = &frame_2402->subscript_expr_1111 in let x_2413 : (struct { int index; char[10] data; })* = &frame_2402->x_1065 in let closure (cont_apply_expr_fun_2414 : (int) -> int) = cont_apply_expr_fun_2260(frame_2400, exit_2401, frame_2402, i_2403, j_2408) in compare_2406(cont_apply_expr_fun_2414, subscript_expr_2412, x_2413) (cont_apply_expr_fun_2260 : (frame_2240*, (int) -> int, frame_2239*, int, int, int) -> int)(frame_2392, exit_2393, frame_2394, i_2395, j_2396, apply_expr_2397) = let make_scalar_2399 : int = 0 in if apply_expr_2397 > make_scalar_2399 then relop_expr_fun_2259(frame_2392, exit_2393, frame_2394, i_2395, j_2396, 1) else relop_expr_fun_2259(frame_2392, exit_2393, frame_2394, i_2395, j_2396, 0) (relop_expr_fun_2259 : (frame_2240*, (int) -> int, frame_2239*, int, int, int) -> int)(frame_2385, exit_2386, frame_2387, i_2388, j_2389, relop_expr_2390) = if relop_expr_2390 == 0 then break_sym_2258(frame_2385, exit_2386, frame_2387, i_2388, j_2389) else make_while_body_2261(frame_2385, exit_2386, frame_2387, i_2388, j_2389) (break_sym_2258 : (frame_2240*, (int) -> int, frame_2239*, int, int) -> int)(frame_2379, exit_2380, frame_2381, i_2382, j_2383) = make_while_body_2257(frame_2379, exit_2380, frame_2381, i_2382, j_2383) (make_while_body_2257 : (frame_2240*, (int) -> int, frame_2239*, int, int) -> int)(frame_2364, exit_2365, frame_2366, i_2367, j_2368) = let compare_2369 : (((int) -> int, item_2241*, item_2241*) -> int)* = frame_2364->compare_1054 in let compare_2370 : ((int) -> int, item_2241*, item_2241*) -> int = (fun) compare_2369 in let uarith_expr_2371 : int = i_2367 + 1 in let i_2372 : int = uarith_expr_2371 in let a_2373 : item_2241* = frame_2364->a_1053 in let subscript_expr_2374 : (struct { int index; char[10] data; })* = &a_2373[uarith_expr_2371] in let subscript_expr_2375 : (struct { int index; char[10] data; })* = &frame_2366->subscript_expr_1101 in memcpy(subscript_expr_2375 : item_2241, subscript_expr_2374); let subscript_expr_2376 : (struct { int index; char[10] data; })* = &frame_2366->subscript_expr_1101 in let x_2377 : (struct { int index; char[10] data; })* = &frame_2366->x_1065 in let closure (cont_apply_expr_fun_2378 : (int) -> int) = cont_apply_expr_fun_2256(frame_2364, exit_2365, frame_2366, i_2372, j_2368) in compare_2370(cont_apply_expr_fun_2378, subscript_expr_2376, x_2377) (cont_apply_expr_fun_2256 : (frame_2240*, (int) -> int, frame_2239*, int, int, int) -> int)(frame_2356, exit_2357, frame_2358, i_2359, j_2360, apply_expr_2361) = let make_scalar_2363 : int = 0 in if apply_expr_2361 < make_scalar_2363 then relop_expr_fun_2255(frame_2356, exit_2357, frame_2358, i_2359, j_2360, 1) else relop_expr_fun_2255(frame_2356, exit_2357, frame_2358, i_2359, j_2360, 0) (relop_expr_fun_2255 : (frame_2240*, (int) -> int, frame_2239*, int, int, int) -> int)(frame_2349, exit_2350, frame_2351, i_2352, j_2353, relop_expr_2354) = if relop_expr_2354 == 0 then break_sym_2254(frame_2349, exit_2350, frame_2351, i_2352, j_2353) else make_while_body_2257(frame_2349, exit_2350, frame_2351, i_2352, j_2353) (break_sym_2254 : (frame_2240*, (int) -> int, frame_2239*, int, int) -> int)(frame_2343, exit_2344, frame_2345, i_2346, j_2347) = if i_2346 < j_2347 then relop_expr_fun_2253(frame_2343, exit_2344, frame_2345, i_2346, j_2347, 1) else relop_expr_fun_2253(frame_2343, exit_2344, frame_2345, i_2346, j_2347, 0) (relop_expr_fun_2253 : (frame_2240*, (int) -> int, frame_2239*, int, int, int) -> int)(frame_2321, exit_2322, frame_2323, i_2324, j_2325, relop_expr_2326) = if relop_expr_2326 == 0 then exit_2322(j_2325) else let a_2327 : item_2241* = frame_2321->a_1053 in let subscript_expr_2328 : (struct { int index; char[10] data; })* = &a_2327[i_2324] in let subscript_expr_2329 : (struct { int index; char[10] data; })* = &frame_2323->subscript_expr_1091 in memcpy(subscript_expr_2329 : item_2241, subscript_expr_2328); let subscript_expr_2330 : (struct { int index; char[10] data; })* = &frame_2323->subscript_expr_1091 in let temp_2331 : (struct { int index; char[10] data; })* = &frame_2323->temp_1092 in memcpy(temp_2331 : item_2241, subscript_expr_2330); let a_2333 : item_2241* = frame_2321->a_1053 in let subscript_expr_2334 : (struct { int index; char[10] data; })* = &a_2333[j_2325] in let subscript_expr_2335 : (struct { int index; char[10] data; })* = &frame_2323->subscript_expr_1094 in memcpy(subscript_expr_2335 : item_2241, subscript_expr_2334); let a_2336 : item_2241* = frame_2321->a_1053 in let subscript_expr_2337 : (struct { int index; char[10] data; })* = &frame_2323->subscript_expr_1094 in let aelim_set_subscript_expr_2338 : (struct { int index; char[10] data; })* = &a_2336[i_2324] in memcpy(aelim_set_subscript_expr_2338 : item_2241, subscript_expr_2337); let a_2339 : item_2241* = frame_2321->a_1053 in let temp_2340 : (struct { int index; char[10] data; })* = &frame_2323->temp_1092 in let aelim_set_subscript_expr_2341 : (struct { int index; char[10] data; })* = &a_2339[j_2325] in memcpy(aelim_set_subscript_expr_2341 : item_2241, temp_2340); let make_scalar_2342 : int = 0 in make_seq_expr_fun_2252(frame_2321, exit_2322, frame_2323, i_2324, j_2325, make_scalar_2342) (make_seq_expr_fun_2252 : (frame_2240*, (int) -> int, frame_2239*, int, int, int) -> int)(frame_2315, exit_2316, frame_2317, i_2318, j_2319, make_seq_expr_arg_2320) = make_if_cont_fun_2251(frame_2315, exit_2316, frame_2317, i_2318, j_2319, make_seq_expr_arg_2320) (make_if_cont_fun_2251 : (frame_2240*, (int) -> int, frame_2239*, int, int, int) -> int)(frame_2309, exit_2310, frame_2311, i_2312, j_2313, make_if_cont_arg_2314) = make_seq_expr_fun_2250(frame_2309, exit_2310, frame_2311, i_2312, j_2313, make_if_cont_arg_2314) (make_seq_expr_fun_2250 : (frame_2240*, (int) -> int, frame_2239*, int, int, int) -> int)(frame_2303, exit_2304, frame_2305, i_2306, j_2307, make_seq_expr_arg_2308) = make_while_body_2262(frame_2303, exit_2304, frame_2305, i_2306, j_2307) (break_sym_2249 : ((int) -> int) -> int)(exit_2301) = let make_while_expr_2302 : int = 0 in make_seq_expr_fun_2248(exit_2301, make_while_expr_2302) (make_seq_expr_fun_2248 : ((int) -> int, int) -> int)(exit_2299, make_seq_expr_arg_2300) = exit_2299(make_seq_expr_arg_2300) (print_int_2246 : ((int) -> int, int) -> int)(exit_2294, v_2295) = let print_int_2296 = $external(%print_int : (int) -> int, v_2295) in exit_2294(print_int_2296) (print_string_2245 : ((int) -> int, char*) -> int)(exit_2291, v_2292) = let print_string_2293 = $external(%print_string : (char*) -> int, v_2292) in exit_2291(print_string_2293)